最新在高一写视频编辑,有了两个视频要合并,就找来了mkvtoolnix,可是合并是报错的,发现好像两个视频音频是不同的,一个是ac3 一个是aac,如果下载格式转换器那很麻烦,想到用ffmpeg ,果然很好用啊。
比如
#提取mkv中的ac3音频
ffmpeg -i /Volumes/mac2/video/01.mkv -vn -acodec copy audio.ac3
#把ac3 转换成 aac(m4a是aac的一种格式)
ffmpeg -i audio.ac3 output.m4a
#多个mpg文件合并成转换成一个mp4文件
ffmpeg -i "concat:1.mpg|2.mpg|3.mpg" output.mp4
把一个文件剪辑多个片段并输出:
ffmpeg -i new_1989.mkv -filter_complex \
"[0:v]trim=start=0:end=2383,setpts=PTS-STARTPTS[v0]; \
[0:a]atrim=start=0:end=2383,asetpts=PTS-STARTPTS[a0]; \
[0:v]trim=start=2436:end=4180,setpts=PTS-STARTPTS[v1];
[0:a]atrim=start=2436:end=4180,asetpts=PTS-STARTPTS[a1]; \
[v0][a0][v1][a1]concat=n=2:v=1:a=1[out]" \
-map "[out]" test_1989.mkv
这种写法很好看,但实际发现并不是无损的切割和合并,它重新编码了。
无损切割视频
ffmpeg -ss 00:03:00 -i video.mp4 -t 60 -c copy cut.mp4
网上有的教程说 -t 后面写的是结束时间,这是错的,-t是指 -ss作为起始时间,然后持续的时间,它是指间隔,千万不要弄错。
详情参考:https://trac.ffmpeg.org/wiki/Seeking