H.264快速重新编码

时间:2017-05-19 16:56:44

标签: c++ video encoding h.264 recode

我正在开发一种具有视频支持的移动VOIP应用程序。大多数现代智能手机都配备了硬件H.264编码器/解码器。但是,大多数仅支持有限数量的编码配置文件。特别是我对SVC感兴趣,通常不支持SVC。最简单的解决方案是使用软件编码器。但是,显然,它有它的缺点。

最近我想到了创建混合硬件+软件编码器的想法。其中包括硬件编码器和“浅层软件编程器”。

我知道(非常笼统地说)H.264在宏块方面有效。编码流包含宏块的指令:完全重传(以类似jpeg的数据的形式),其运动参数,或者只是没有。

完整的软件重新编码将处理这样的编码流,解析/实现它,并对其图像数据执行,然后对结果图像进行编码,包括处理每个宏块,决策策略,构建运动矢量,最后,编码所有指令。

这个想法是做一个“浅”的重新编码。我虽然要解析传入的编码流,但不是执行其指令 - 只需将它们用作编码器的源,即在H.264复杂编码方案中对其进行编码,具有所需的精度(即比特率)等,而无需实际分析图像,寻找运动矢量等。

在本质上,它使用的是解码器+编码器,但有一个快捷方式,因此实际图像不是由解码器创建的,也不是由编码器分析的。

这听起来可行吗?是否有尝试做类似的事情?

1 个答案:

答案 0 :(得分:0)

我认为这样做不可行。我已经听到了对视频编码有基本了解的人的类似建议,但没有明确了解实际的h264编码。这可能是可能的,但这需要花费很长时间才能取得任何明智的结果。例如,您可以从x264收缩一些最好的开发人员,这可能会花费您大约100K来获得任何结果。验证我的答案的最佳方法是询问x264ffmpeg恶意列表。