作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个视频流,在很长一段时间(几分钟到几小时)内几乎没有场景变化,并且我正在使用 FFmpeg 之类的东西将原始视频转码为 h.264,我可以播放什么设置可以利用巨型冗余吗?
是否像将最小关键帧间隔设置为最大(无论是什么)一样简单?
h.264 规范中是否有空间来增强 FFmpeg 以进一步利用没有场景变化的很长一段时间?
最佳答案
首先,请注意 FFmpeg 本身并不编码 h264,而是编码 x264
是的,定义了一个异常长的 keyframe应该大大减少长时间很少或没有运动的视频的大小。为什么?因为“关键帧”是包含所有视频数据的帧——快照,如果你愿意的话。所有其他帧都将是关键帧的差异。这样做的一个警告是,如果中间帧有任何损坏,那么视频将被损坏,直到出现下一个关键帧。
要在使用 FFmpeg 编码时明确设置关键帧间隔,请使用 -g
开关。如果您的视频是每秒 25 帧,并且您希望关键帧每分钟视频显示一次,请将 -g 1500
添加到您的 FFmpeg 命令行。 (25 英尺/秒 x 60 秒 = 1500 英尺)
关于您可能感兴趣的关键帧,您还可以控制其他有趣的方面,其中许多都记录在此处:x264 ffmpeg mapping and options guide
关于video - 激进的 h.264 压缩设置专门用于场景变化非常小的超长场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4419271/
我是一名优秀的程序员,十分优秀!