Android中多个实例的MediaCodec用作视频编码器

3

是否可以使用两个Android MediaCodec实例作为视频编码器同时编码两个视频?

我知道MediaCodec本身可以拥有多个实例,用于视频/音频编解码。但是除了性能影响之外,对于编码多个视频,是否存在硬件/Android版本上的任何限制?

更具体地说,如果仅考虑Android版本4.3或更高版本,多个视频编码器实例是否有效,还是与设备相关?

1个回答

2

根据我的经验,这完全取决于设备。有些设备只能同时支持一个视频编码器实例。


1
它也可能取决于分辨率。例如,在视频编辑器中,您可以做的更具挑战性的事情之一是在1080p下进行交叉淡入淡出 - 您必须同时解码两个1080p视频流并编码一个1080p流。有些设备没有足够的带宽来完成所有这些操作,尽管它们能够执行两个1080p解码和一个720p编码。 - fadden
非常好的评论,谢谢。由于CTS测试没有1080p编码测试,并且Google尚未要求1080p编码,因此许多设备无法通过MediaCodec正确支持1080p编码,因此现在最好不要使用1080p分辨率进行编码,或者添加额外的图片质量检查以了解设备是否正确处理1080p。 - Marlon
一些设备甚至可能不支持720p。您可以通过MediaCodec的能力查询来检查级别。例如,可以检查http://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel.html#AVCLevel31 来测试720p支持。(当前的CTS测试不检查此项;这在未来可能会改变。) - fadden
谢谢你们两位。我会更加小心地测试我的应用程序中的设备功能。 - Mark
@fadden 我认为更好的做法是有一个 getAvailableInstancesCount() 方法,可以报告当前可用的资源以适应不同的使用情况。 - LightYearsBehind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接