我正在使用此代码将两个文件组合在一起(覆盖文件覆盖原始文件):
ffmpeg -r 60 \
-i originalfile.webm -i overlayfile.mov \
-filter_complex " \
[0:v]setpts=PTS-STARTPTS[base]; \
[1:v]setpts=PTS-STARTPTS+0.5/TB, \
format=yuva420p,colorchannelmixer=aa=0.7[overlay]; \
[base][overlay]overlay=x=(W-w)/2:y=0[v]" -map "[v]" -map 0:a -c:a copy -c:v libvpx-vp9 -lossless 1 -threads 4 -quality realtime -speed 8 -tile-columns 6 -frame-parallel 1 -vsync 1 -shortest resultfile.webm
编码速度也不错,质量输出也不错,但是经过一段时间后,视频图片可能会冻结几秒钟,然后再次播放,然后再次冻结。
我如何优化此代码以使原始文件具有最高质量的快速速度而不会冻结图像?
谢谢
答案 0 :(得分:1)
为了避免重新定时webm并从顶部和底部裁剪10%的叠加层,请运行
ffmpeg \
-i originalfile.webm -i overlayfile.mov \
-filter_complex " \
[0:v]setpts=PTS-STARTPTS[base]; \
[1:v]crop=iw:0.80*ih,setpts=PTS-STARTPTS+0.5/TB, \
format=yuva420p,colorchannelmixer=aa=0.7[overlay]; \
[base][overlay]overlay=x=(W-w)/2:y=0[v]" \
-map "[v]" -map 0:a -c:a copy -c:v libvpx-vp9 -lossless 1 -threads 4 -quality realtime \
-speed 8 -tile-columns 6 -frame-parallel 1 -vsync 2 -shortest resultfile.webm
默认情况下,裁剪过滤器将裁剪窗口居中,因此裁剪到80%时,顶部和底部的10%将被切断。