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

参考:使用ffmpeg裁剪和合并视频
参考:ffmpeg:提取音视频、合并音视频
参考:使用FFmpeg合并音视频

posted @ 2020-07-04 12:23  enjoy_jun  阅读(3478)  评论(0编辑  收藏  举报