我希望这一点显而易见。要么考虑在每 M 帧后跳过 N 帧,要么像某些视频编辑器中的抖动效果一样调节帧速率。
我尝试过类似的方法,但仍然会在跳过的帧的位置暂停:
ffmpeg -i input.avi -filter:v select='lt(mod(n\,30)\,10)' -y edit/output.avi
答案1
使用
ffmpeg -i input.avi -filter:v select='lt(mod(n\,30)\,10)',setpts=N/FRAME_RATE_TB -y edit/output.avi
select 过滤器不会改变保留帧的时间戳,因此在“间隙”期间,大多数玩家会认为前一个保留段的最后一帧处于冻结状态。setpts 过滤器表达式使保留段相邻,从而消除间隙。
音频未经处理,因此如果存在,您将需要音频过滤器。