Android 如何使用MediaCodec类解码H.264流
我被要求在android中显示一个视频流(该流不是来自HTTP),该流是原始的H.264,在PC中记录和编码,我通过WIFI获得Android 如何使用MediaCodec类解码H.264流,android,video,h.264,decoder,Android,Video,H.264,Decoder,我被要求在android中显示一个视频流(该流不是来自HTTP),该流是原始的H.264,在PC中记录和编码,我通过WIFI获得 当我获得流时,可以使用MediaCodec解码器解码流并显示它吗?请参阅视频编码建议是。将MediaCodec配置为“视频/avc”解码器,并将输出表面传递给Configure()调用 MediaCodecodeAPI是相当低级的,并且没有很多可用的示例代码。使用MediaPlayer可能更容易 更新: 现在有一堆示例代码。它大部分都使用了安卓4.3(API 18)的
当我获得流时,可以使用MediaCodec解码器解码流并显示它吗?请参阅视频编码建议是。将MediaCodec配置为“视频/avc”解码器,并将输出表面传递给Configure()调用 MediaCodecodeAPI是相当低级的,并且没有很多可用的示例代码。使用
MediaPlayer
可能更容易
更新:
现在有一堆示例代码。它大部分都使用了安卓4.3(API 18)的功能,但如果你不需要
MediaMuxer
或MediaCodec
的表面输入,它将在API 16上工作。但是,我找不到一种方法来用MediaPlayer处理H.264流。有什么理想吗?让我再补充一步。具体的格式是什么——基本流,PES。。。?MediaCodec接受基本流数据,但不接受它是流;它需要一系列“访问单元”,因此如果它是基本流,则需要保留或恢复“数据包”边界。您还需要确保传入的第一个缓冲区具有它所需的编解码器信息,而这些信息目前没有文档记录。您的最佳选择可能是将PC端的流转换为MediaPlayer可以处理的内容。