小编Alb*_*ert的帖子

Mediacodec和相机,色彩空间不正确

通过参考Aegonis的工作1工作2,我也得到了H.264流,但颜色不正确.我正在使用HTC Butterfly进行开发.这是我的代码的一部分:

相机:

parameters.setPreviewSize(width, height);
parameters.setPreviewFormat(ImageFormat.YV12);
parameters.setPreviewFrameRate(frameRate);
Run Code Online (Sandbox Code Playgroud)

MediaCodec:

mediaCodec = MediaCodec.createEncoderByType("video/avc");
MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 320, 240);
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 500000);
mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15);
mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar);
mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);   
mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); 
mediaCodec.start();   
Run Code Online (Sandbox Code Playgroud)

使用COLOR_FormatYUV420Planar时,错误显示"[OMX.qcom.video.encoder.avc]不支持颜色格式19",因此我只能使用" COLOR_FormatYUV420SemiPlanar ".有谁知道为什么没有支持?

通过使用得到它:

int colorFormat = 0;
    MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mimeType);
    for (int i = 0; i < capabilities.colorFormats.length && colorFormat == 0; i++) {
        int format = capabilities.colorFormats[i];
        Log.e(TAG, "Using color format " + format);           
    }
Run Code Online (Sandbox Code Playgroud)

我们可以有21种颜色格式(COLOR_FormatYUV420SemiPlanar)和2130708361(没有相应的格式),我认为格式会改变取决于设备.

然后,我尝试了 …

android colors h.264

6
推荐指数
1
解决办法
7548
查看次数

标签 统计

android ×1

colors ×1

h.264 ×1