教你简单 提取fmpeg 视频,音频,字幕 方法
ffmpeg 提取 视频,音频,字幕 方法
(How to Extract Video, Audio, Subtitle from Original Video?)
1. 提取视频 (Extract Video)
任务:需要把一个视频文件的每一帧提取出来,每帧存储成单独的文件。
以前用Matlab处理过这个问题,可是感觉比较慢,而且最近正在逐步转向使用开源的东西。因此搜到ffmpeg这个好东西。
ffmpeg可用来处理视频文件的提取和各种转换,跨平台,官网上有LINUX,WINDOWS和MAC版本。
以下是windows 命令行下使用ffmpeg提取视频帧的方法:
其中-i 后面是输入文件,-q:v 2 q代表质量quality, v代表视频流,2是控制质量的参数。-f指定输出的格式是image2. %07d是图片命名的pattern
2. 提取音频(Extract Audio)
音频操作
如果不转换,直接输出aac
ffmpeg -i input.mp4 -vn -acodec copy out.m4a
将音频输出为wav
ffmpeg -i input.mp4 -vn -y -ar 16000 -acodec pcm_s16le output.wav
将 aac 转换为 wav
ffmpeg -i input.m4a -acodec pcm_s16le -ar 16000 output.wav
-acodec 编码解码库
-ar 调整音频采样率
-vn 不处理视频
-y 覆盖输出
https://blog.csdn.net/hy119/article/details/81632662
字幕操作
字幕转换
srt转换为ass
ffmpeg -i input.srt output.ass
ass转换为srt
ffmpeg -i input.srt output.ass
总结有福利
给视频嵌入字幕
1.直接嵌入到字幕流中
ffmpeg -i input.mp4 -i subtitles.srt -c copy output.mp4
作者直接使用这个方法没有成功显示
2.使用subtitles filter ,将直接将字幕烧写入视频流
ffmpeg -i input.mp4 -vf subtitles="input.srt" output.mp4
3.使用 ass filter ,将直接将字幕烧写入视频流
ffmpeg -i input.mp4 -vf ass="subtitles.ass" output.mp4
注意使用subtitles,ass 填写文件字幕文件路径时需要加转以符号:
如:C:\Users\xdh\Desktop\test\Introduction.ass,应为
ffmpeg -i input.mp4 -vf ass="C\\:\\\\Users\\\\xdh\\\\Desktop\\\\test\\\\Introduction\\\.ass" outass.mp4
https://blog.csdn.net/u013699869/article/details/48162417/
http://trac.ffmpeg.org/ticket/3334
、
3. 提取字幕(Extract Subtitle)
提取字幕流
1)原始文本输出
ffmpeg -i output.mkv -an -vn -bsf:s mov2textsub -scodec copy -f rawvideo sub.txt
ffmpeg -i output.mkv -an -vn -c:s copy -f rawvideo -map 0:s sub2.txt
2)ass格式输出
ffmpeg -i output.mkv -an -vn -scodec copy sub3.ass
如何用 ffmpeg 获取多音轨视频文件的各个音轨
增加字幕流
ffmpeg -i video.avi -i sub.ass -map 0:0 -map 0:1 -map 1 -c:a copy -c:v copy -c:s copy video.mkv、
1. 先用ffmpeg查看视频文件信息:
2. 转制音频文件
可以看到Audio的Stream有2-7个,分别获取这几个audio音轨的命令是:
a.%d.wav (2-7) 即是输出的几个音轨的音频文件。
总结;关注+私信可以免费领取C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,ffmpeg,TCP/IP,协程,DPDK,嵌入式等。。。。。相关资料