![如何通过点击 ffmpeg 中的右箭头键来模拟观众跳过视频?](https://linux22.com/image/1573135/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E7%82%B9%E5%87%BB%20ffmpeg%20%E4%B8%AD%E7%9A%84%E5%8F%B3%E7%AE%AD%E5%A4%B4%E9%94%AE%E6%9D%A5%E6%A8%A1%E6%8B%9F%E8%A7%82%E4%BC%97%E8%B7%B3%E8%BF%87%E8%A7%86%E9%A2%91%EF%BC%9F.png)
我希望这一点显而易见。要么考虑在每 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 过滤器表达式使保留段相邻,从而消除间隙。
音频未经处理,因此如果存在,您将需要音频过滤器。