FFMPEG:剪切视频并包括结束视频/图像

时间:2016-11-06 20:28:21

标签: ffmpeg

我正在使用此命令行在视频结尾处添加五秒图像:

ffmpeg -i "f:\output\input.mov" -loop 1 -t 5 -i "f:\output\taff.jpg" -f lavfi -t 5 -i anullsrc -filter_complex "[0:v] [0:a] [1:v] [2:a] concat=n=2:v=1:a=1 [v] [a]" -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4

效果很好,但有时我想剪切视频,然后添加五秒钟。因此,制作120秒的视频110秒,然后添加5秒的结束。

可能在一个命令行中?我试着把它分成两部分,从剪切视频开始,但是如果我尝试重新编码我使用ffmpeg剪切的视频,我会得到“无法解析选项值”-1“像素格式”错误这样:

ffmpeg -i f:\output\input.mov -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:01:50.000 f:\output\output.mov

如果我尝试针对它运行第一个命令行,那么输出视频将会出错。

所有反馈都赞赏缩短视频,然后添加结尾。

干杯! 莱恩

1 个答案:

答案 0 :(得分:1)

使用

ffmpeg -t 110 -i "f:\output\input.mov"
       -loop 1 -t 5 -i "f:\output\taff.jpg"
       -f lavfi -t 5 -i anullsrc
       -filter_complex "[0:v][0:a][1:v][2:a]concat=n=2:v=1:a=1[v][a]"
       -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4

使用scale2ref,它应该是

ffmpeg -t 110 -i "f:\output\input.mov"
       -loop 1 -t 5 -i "f:\output\taff.jpg"
       -f lavfi -t 5 -i anullsrc
       -filter_complex "[1][0]scale2ref[2nd][ref];[ref][0:a][2nd][2:a]concat=n=2:v=1:a=1[v][a]"
       -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4

如果图像具有不同的宽高比,请使用

ffmpeg -t 110 -i "f:\output\input.mov"
       -loop 1 -t 5 -i "f:\output\taff.jpg"
       -f lavfi -t 5 -i anullsrc
       -filter_complex "[0]split[base][full];[base]trim=0:5,drawbox=t=fill[base];[1][base]scale2ref='if(lt(mdar,dar),oh*mdar/sar,iw)':'if(lt(mdar,dar),ih,ow*sar/mdar)'[2nd][base];[base][2nd]overlay='(W-w)/2':'(H-h)/2'[padded];[full][0:a][padded][2:a]concat=n=2:v=1:a=1[v][a]"
       -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4

这最后一个命令需要ffmpeg版本> = 3.4