ffmpeg提取音频视频,合并音频视频
0.提取音频视频
提取视频文件(提取出的视频无声音):
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
提取视频中的音频(提取出单独的音频文件)
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
ffmpeg -i input.mp4 -f wav -ar 16000 -vn output.wav
ffmpeg -i input.mp4 -vn -ab 256k output.m4a
1.合并音频和视频
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
音频和视频的格式应该没有限制,我使用webm视频和webm音频同样可以合成,但是输出格式是 mp4
如果视频中已经包含
了音频,这个时候还可以替换
视频中的音频,使用下面命令行。
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 output.mp4
2.使用ffmpeg裁剪和合并视频
2.1 剪切视频
使用 -ss
和 -t
选项,从第0
秒开始,向后截取31
秒视频,并保存
ffmpeg -ss 00:00:00 -i video.mp4 -vcodec copy -acodec copy -t 00:00:31 output1.mp4
从第01:33:30 开始,向后截取 00:47:16 视频,并保存
ffmpeg -ss 01:33:30 -i video.mp4 -vcodec copy -acodec copy -t 00:47:16 output2.mp4
2.2 合并视频
把剪切得到的两个视频合并成一个视频
使用 TS格式拼接视频
先将 mp4 转化为同样编码形式的 ts
流,因为 ts流是可以 concate
的,先把 mp4 封装成 ts ,然后 concate ts 流, 最后再把 ts 流转化为 mp4。
ffmpeg -i output1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb output1.ts
ffmpeg -i output2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb output2.ts
为了减少命令的输入,需要一个filelist.txt文件,里面内容如下
file 'output1.ts'
file 'output2.ts'
合并视频命令
ffmpeg -f concat -i filelist.txt -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4