需要帮助将高清视频流保存到文件

时间:2016-10-06 23:58:07

标签: android mediacodec

我正在使用libstreaming。

我想发起两个具有不同设置和比特率的MediaCodec(一个低质量 - 将通过HTTP传输,一个高传输保存到SDCARD)。

问题似乎是我无法使用不同的设置获取两个单独的Mediacodec对象。

高比特率版本保存为仅包含绿色背景*的视频,除非尺寸设置为< 352x288,但低比特率版本已成功(并且正确)流式传输到网络。

我真的希望我做的事情显然是错误的,并且有一种简单的方法可以将流的HD版本保存到磁盘。

code block where I initiate the MediaCodecs

1 个答案:

答案 0 :(得分:1)

一般来说,这应该适用于大多数设备 - 我在许多设备上都没有问题。

但是有些设备的编码器驱动程序对此有限制 - 特别是,有些设备在一个处于活动状态时拒绝创建第二个编码器实例。 (三星Galaxy Note 3 10.1浮现在脑海中 - 不确定所有其他基于英特尔的产品是否存在同样的问题,或者只是其中的一部分。)

不幸的是,即使Android CTS测试有测试来确保硬件编码器正常工作,也没有测试可以保证您可以同时激活多个编码器。

只有在第二个编码器上有不同的设置,或者它们具有相同的设置时,您的情况是否会失败?

如果一个流具有低分辨率,则可以尝试使用SW编码器,而使用HW编码器作为高分辨率版本。在Android 6.0上,SW编码器OMX.google.h264.encoder应该相当不错,而在旧版本中,它几乎无法使用。