我想拍摄视频的一部分(做一些事情,在我的示例中忽略了),然后再次将其绘制在视频的另一部分上。裁剪区域的大小取决于时间(或帧)。
ffmpeg -y -i testsrc.mp4 -filter_complex "[0:v]crop=(40+5*n):80:(5*n):500[fg]; [0:v][fg]overlay=00:00[v]" -map "[v]" -c:v libx264 -movflags +faststart testout.mp4
因此,在正确评估位置的同时,大小不正确。我怎样才能达到这样的效果?
修改
使用
ffmpeg.exe -loglevel debug -y -i testsrc.mp4 -filter_complex "[0:v]sendcmd=f='CropCmd.txt', crop=40:80:500:500[fg]; [0:v][fg]overlay=100:100[v]" -map "[v]" testout.mp4
和我的命令文件包含以下行
2.0-2.02 [enter] crop reinit w=80:h=40;
我得到一个Function not implemented
[h264 @ 000002bb3e276340] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[Parsed_sendcmd_0 @ 000002bb3c135e00] [enter] interval #0 start_ts:2.000000 end_ts:2.020000 ts:2.000000
[Parsed_sendcmd_0 @ 000002bb3c135e00] Processing command #0 target:crop command:reinit arg:w=80:h=40
[Parsed_sendcmd_0 @ 000002bb3c135e00] Command reply for command #0: ret:Function not implemented res:
[Parsed_overlay_2 @ 000002bb3c135bc0] n:61.000000 t:2.000000 pos:26992.000000 x:100.000000 xi:100 y:100.000000 yi:100