【发布时间】:2015-09-27 08:40:00
【问题描述】:
我正在尝试使用 MediaCodec API 通过 Android 客户端解码 H264 流。 示例代码:
int decoderStatus = decoder.dequeueOutputBuffer(mBufferInfo, TIMEOUT_USEC);
当远端H264码流分辨率较大时(如:1600*1200),该函数会一直返回-1(MediaCodec.INFO_TRY_AGAIN_LATER),所以解码失败但无法捕获异常。如果分辨率较低(例如 1920*1080、1280*720),则解码机制正常。
这只发生在某些三星设备上:Galaxy S3、Note2 和 note。
我也查了这些支持H264 profile Level的机器,都是Level 4的设备,理论上可以支持最大分辨率大小2048*1024(https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels)。
有人遇到过这个问题吗?我尝试修改queueInputBuffer和dequeueOutputBuffer时的参数,但未能修复。
【问题讨论】:
标签: android h.264 android-mediacodec