Android Mediacodec编码h264并在不同平台(Android,iOS,Web)中进行解码

时间:2017-06-30 09:26:48

标签: android ios video-streaming h.264 mediacodec

我正在开发一款Android应用(min sdk=21),需要将实时视频(从Android设备相机捕获)流式传输到不同的平台(Android / IOS / web)。 我决定使用Media编解码器将视频编码为h.264,并将原始数据TCP socket发送到其他设备。

我从Media编解码器创建了一个输入表面,并将颜色格式设置为MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface

Android设备应该能够解码这些原始数据,但如果我选择这种颜色格式,是否可以 解码iOS或Web中的原始数据

1 个答案:

答案 0 :(得分:0)

是的,输入颜色类型无关紧要。即使您使用COLOR_FormatSurface,它仍然会被编码为正常的YUV 4:2:0视频,就像您使用其他非表面颜色格式一样。

如果你手动选择一种更为罕见的颜色格式,如YUV 4:4:4(当不使用表面输入时),编码器可以选择实际将其下采样到YUV 4:2:0(并且所有解码器都会支持它)或保持原样并编码成更常见的H264变体,并非所有解码器都能解码。