[英]How can I cut/drop specific undecoded h.264 (Key-)frames from a video using FFmpeg?
我想通过删除关键帧来故意“破坏”视频,以便以下 P 帧引用错误的关键帧。 这也称为 Datamoshing,虽然已经有工具可以为我做到这一点,但我想自己编程。
根据我的理解,我最好的尝试是使用比特流过滤,但这不起作用:
ffmpeg -i Input.mp4 -c copy -bsf:v noise=drop='gt(t\\,30)*key' output.mp4
它确实适用于not(key)
如果我能够将视频拆分为未解码的帧,那就更好了。
然后能够将其重新组合成缺少特定帧或添加其他帧的视频。
对于这个方法,我只发现了这个:
ffmpeg -i input.h264 -c:v libx264 -filter:v "select=gte(n\\,25)" -frames:v 1 -f h264 frame.h264
但它一次只执行一帧,我不知道它是否真的保留了它的帧类型,因为(如果我错了,请纠正我)它是用这个命令解码和编码的。 任何帮助表示赞赏! 甚至完全不同的方法。
抱歉,是我的错。 我没有将t
添加为直接变量。 使用pts*tb
代替它。
ffmpeg -i Input.mp4 -c copy -bsf:v noise=drop='gt(pts/tb\\,30)*key' output.mp4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.