video - 激进的 h.264 压缩设置专门用于场景变化非常小的超长场景

标签 video encoding compression ffmpeg h.264

假设我有一个视频流,在很长一段时间(几分钟到几小时)内几乎没有场景变化,并且我正在使用 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/

相关文章:

C++ 使用 libzpaq 压缩到 char* 缓冲区

video - 根据旋转元数据旋转视频并使用 ffmpeg 剥离元数据

android - 如何在使用 GLES20 录制视频时像摄像机一样添加时间戳

Java:从utf-8文件中读取字节

xml - BeautifulSoup 不使用 utf-8 以外的其他编码解析 xml

compression - 允许随机读取/写入文件的最佳压缩算法是什么?

video - ffmpeg 将 mp4 文件流式传输到 Instagram 直播

linux - 如何在网络上编写音频/视频应用程序?

python - 在 Windows 中更改 Python 3 中的 “locale preferred encoding”

python - 使用map函数时出现不可排序类型错误