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

Need help saving HD video stream to file

我正在使用 libstreaming。

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

问题似乎是我无法获取两个具有不同设置的独立 Mediacodec 对象。

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

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

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

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

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

您的案例是仅在第二个编码器的设置不同时失败,还是在它们具有相同设置时失败?

如果一个流是低分辨率的,您可以尝试使用 SW 编码器来代替它,同时使用 HW 编码器来处理高分辨率版本。在 Android 6.0 上,SW 编码器 OMX.google.h264.encoder 应该相当不错,而在旧版本上,它几乎无法使用。