相关疑难解决方法(0)

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
查看次数

让QualComm编码器通过MediaCodec API工作

我正在尝试使用Android MediaCodec API对NV12流进行硬件编码(avc).

当使用OMX.qcom.video.encoder.avc时,分辨率1280x720和640x480工作正常,而其他(即640x360,320x240,800x480)产生输出,其中色度分量似乎移位(请参阅 快照).

我通过将输入图像保存到jpeg文件来仔细检查输入图像是否正确.此问题仅发生在QualComm设备(即三星Galaxy S4)上.

任何人都有这个正常工作?还需要任何额外的设置/怪癖吗?

android video-encoding hardware-acceleration android-hardware mediacodec

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

将图像转换为视频

如何在使用FFmpegJCodec的情况下将图像转换为视频,仅使用android MediaCodec.视频图像是位图文件,可以是ARGB888或YUV420(我的选择).最重要的是视频必须可以在Android设备上播放,最大API是16.我知道API 18 MediaMuxer,我不能使用它.

请帮助我,我坚持了很多天.(JCodec要慢,FFmpeg使用起来很复杂).

video android h.264 android-mediaplayer mediacodec

4
推荐指数
2
解决办法
6415
查看次数