使用 ffmpeg 修剪视频尾部

使用 ffmpeg 修剪视频尾部

我有这个ffmpeg命令,它可以检测运动并将帧保存到输出视频中。

ffmpeg -t 60 -i $lores -vf "select='gt(scene\,0.018)',setpts=N/(25*TB)" -acodec aac -vcodec libx265 $outfile-$tnow-x.mp4 

一般情况下,60秒内大概只能检测到20-30帧(最多持续2-3秒),输出视频会停留在最后一帧,直到60秒结束。

有什么方法可以重新过滤或修剪视频的长尾并仅保留移动的帧?

我现在的想法是这么做的。

ffmpeg -t 60 -i $lores -vf "select='gt(scene\,0.018)',setpts=N/(25*TB)" -an -vcodec libx265 -f nut - | ffmpeg -i - -vf "select='gt(scene\,0.018)',setpts=N/(25*TB)" $outfile-$tnow-x.mp4 

注意:$lores 是 rtsp 流。

根据@Ricardo 的意见,我有一些以下替代方案。''' ffmpeg -t 300 -i $hires -an
-vf "select='gt(scene,0.02)',setpts=N/(25*TB)" -f nut - |
ffmpeg -i - -vf "mpdecimate" -codec libx265 $outfile-$tnow-fm.mp4'''

我也尝试过这个。'''ffmpeg -t 300 -i $hires -an
-vf "select='gt(scene,0.02)',setpts=N/(25*TB),mpdecimate" -codec libx265 $outfile-$tnow-fm.mp4'''这会产生最大的文件大小。

相关内容