![avconv -g参数说明](https://linux22.com/image/966497/avconv%20-g%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E.png)
这是参数的官方描述:
‘-g[:stream_specifier] integer (output,video)’
set the group of picture (GOP) size
我想说的是,这些信息不太有用。
有人能解释一下它实际上起什么作用以及最佳值是多少吗?
那么 moov 原子大小取决于什么?
答案1
共和党:
视频质量和压缩率取决于图片组 (GOP)结构。GOP结构也会影响视频流因数据包丢失而产生的失真灵敏度。
增加 GOP 长度也会提高视频质量。但达到最高 GOP 长度后PSNR(峰值信噪比)开始下降,在开始上升阶段,高效编码起主要作用,GOP 长度越大,质量越好。在 GOP 设置达到最优之后,当视频质量达到最高时,错误传播效应更加显著,因此使用较高帧内帧(I 帧或关键帧)间隔,由于严重的失真,误差将会扩散。来源
每种类型的视频都有不同的最佳 GOP,取决于其特点。
关键帧和动画:
视频或移动图像 - 我们只是在欺骗我们的大脑;它们只是快速连续显示的静止图像!如果下一帧出现在 1/2 秒或之前,幻觉会变得更好、更流畅,1/25
这是人眼后像持久时间间隔,也是运动感知。
图1:(来源:维基百科)
图:视频帧序列,由两个关键帧(I)、一个前向预测帧(P)和一个双向预测帧(B)组成。
(您可能注意到,在上图中,GOP 的值为-g
3,即一个关键帧和两个补充帧。)
图2:(来源:维基百科)
图:通过关键帧创建的非常简单的动画。动画缺乏流畅性,因为每个帧都完全独立于任何其他帧。
可能的问答:
问:关键帧还不够吗?为什么我们需要补充/中间帧P 帧、B 帧?
A。是的...但是使用这样的中间帧可以减小文件(视频)的整体大小。
为了更好的质量视频/流媒体,你会希望使用低压缩比但高帧率,这意味着高-g
价值avconv
(最佳 GOP 值几乎是帧/秒)。显然,的值-g
必须根据编码器、压缩比、帧速率用于转码/流式传输目的;它是一个相对量,因此没有可以用于所有输入的通用值。
根据此链接 对于大多数媒体来说,GOP 的值大约是帧速率值的一半所以关键帧大约是0.5
秒分开,并能产生高质量的视频。我们还可以注意到其他链接如图所示,PSNR 在测试帧速率约为一半时达到恒定值。
但最优值似乎在1/6
至1/4
测试帧率。
是的,所以你应该寻找-g
在范围内或范围内的值1/6
至1/4
以便关键帧每隔0.17
到0.25
秒;并且可能会发表评论以改进答案:)
参考:
答案2
您有几个使用示例官方 avconv 文档。
从部分提示:
avconv -g 3 -r 3 -t 10 -b 50k -s qcif -f rv10 /tmp/b.rm
如果您的计算机速度不够快,您可以以牺牲压缩率为代价来加快压缩速度。您可以使用“-me zero”来加快运动估计,使用“-g 0”来完全禁用运动估计(您只有 I 帧,这意味着它与 JPEG 压缩一样好)。