我正在开发一款Android应用(min sdk=21)
,需要将实时视频(从Android设备相机捕获)流式传输到不同的平台(Android / IOS / web)。
我决定使用Media编解码器将视频编码为h.264,并将原始数据TCP socket
发送到其他设备。
我从Media编解码器创建了一个输入表面,并将颜色格式设置为MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface
。
Android设备应该能够解码这些原始数据,但如果我选择这种颜色格式,是否可以 解码iOS或Web中的原始数据 ?
答案 0 :(得分:0)
是的,输入颜色类型无关紧要。即使您使用COLOR_FormatSurface
,它仍然会被编码为正常的YUV 4:2:0视频,就像您使用其他非表面颜色格式一样。
如果你手动选择一种更为罕见的颜色格式,如YUV 4:4:4(当不使用表面输入时),编码器可以选择实际将其下采样到YUV 4:2:0(并且所有解码器都会支持它)或保持原样并编码成更常见的H264变体,并非所有解码器都能解码。