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 in -vn -acodec copy out.m4a

将音频输出为wav

ffmpeg -i in -vn -y -ar 16000 -acodec pcm_s16le ou

将 aac 转换为 wav

ffmpeg -i in -acodec pcm_s16le -ar 16000 ou

-acodec 编码解码库

-ar 调整音频采样率

-vn 不处理视频

-y 覆盖输出

字幕操作

字幕转换

srt转换为ass

ffmpeg -i in ou

ass转换为srt

ffmpeg -i in ou

总结有福利



给视频嵌入字幕

1.直接嵌入到字幕流中

ffmpeg -i in -i -c copy out

作者直接使用这个方法没有成功显示

2.使用subtitles filter ,将直接将字幕烧写入视频流

ffmpeg -i in -vf subtitles="in" out

3.使用 ass filter ,将直接将字幕烧写入视频流

ffmpeg -i in -vf ass="; out

注意使用subtitles,ass 填写文件字幕文件路径时需要加转以符号:

如:C:\Users\xdh\Desktop\test\In,应为

ffmpeg -i in -vf ass="C\\:\\\\Users\\\\xdh\\\\Desktop\\\\test\\\\Introduction\\\.ass" ou


3. 提取字幕(Extract Subtitle)

提取字幕流
1)原始文本输出
ffmpeg -i ou -an -vn -bsf:s mov2textsub -scodec copy -f rawvideo
ffmpeg -i ou -an -vn -c:s copy -f rawvideo -map 0:s
2)ass格式输出
ffmpeg -i ou -an -vn -scodec copy

如何用 ffmpeg 获取多音轨视频文件的各个音轨

增加字幕流
ffmpeg -i video.avi -i -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,嵌入式等。。。。。相关资料

1.《(ass字幕怎么导入mp4)ass字幕怎么导入mkv》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《(ass字幕怎么导入mp4)ass字幕怎么导入mkv》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/3229645.html