This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

8168编码的问题,如何编出baseline profile 3.1的H264码流

目前对于720p的数据 编译出来baseline 4.1格式  能否编出baseline 3.1格式的720p的H264码流

  • 有没有类似dm365一样的levelIdc参数

  • 你好;

    在DVRRDK_03.00.00.00/dvr_rdk/mcfw/src_bios6/links_m3video/codec_utils/src/utils_encdec.c文件可以配置;

    Int Utils_encdecGetCodecLevel(UInt32 codingFormat,
                                  UInt32 maxWidth,
                                  UInt32 maxHeight,
                                  UInt32 maxFrameRate,
                                  UInt32 maxBitRate, Int32 * pLevel,
                                  Bool   isEnc)
    {
        Int retVal = UTILS_ENCDEC_S_SUCCESS;
    
        (Void) maxWidth;
        (Void) maxHeight;
        (Void) maxFrameRate;
        (Void) maxBitRate;
    
        switch (codingFormat)
        {
            case IVIDEO_H264BP:
            case IVIDEO_H264MP:
            case IVIDEO_H264HP:
                switch (Utils_encdecGetResolutionClass(maxWidth, maxHeight))
                {
                    case UTILS_ENCDEC_RESOLUTION_CLASS_16MP: 
                    case UTILS_ENCDEC_RESOLUTION_CLASS_9MP: 
                    case UTILS_ENCDEC_RESOLUTION_CLASS_5MP:
                    case UTILS_ENCDEC_RESOLUTION_CLASS_4MP: 
                        if (isEnc)
                            *pLevel = IH264_LEVEL_51;
                        else
                            *pLevel = IH264VDEC_LEVEL51;
                        break;
                    case UTILS_ENCDEC_RESOLUTION_CLASS_1080P:
                    case UTILS_ENCDEC_RESOLUTION_CLASS_720P:
                        if (isEnc)
                            *pLevel = IH264_LEVEL_50;
                        else
                            *pLevel = IH264VDEC_LEVEL5;
                        break;
                    case UTILS_ENCDEC_RESOLUTION_CLASS_CIF:
                        if (isEnc)
                            *pLevel = IH264_LEVEL_30;
                        else
                            *pLevel = IH264VDEC_LEVEL3;
                        break;
                    case UTILS_ENCDEC_RESOLUTION_CLASS_D1:
                        if (isEnc)
                            *pLevel = IH264_LEVEL_31;
                        else
                            *pLevel = IH264VDEC_LEVEL31;
                        break;
                    default:
                        if (isEnc)
                            *pLevel = IH264_LEVEL_41;
                        else
                            *pLevel = IH264VDEC_LEVEL41;
                        break;
                }
                break;
            case IVIDEO_MPEG4SP:
            case IVIDEO_MPEG4ASP:
                switch (Utils_encdecGetResolutionClass(maxWidth, maxHeight))
                {
                    case UTILS_ENCDEC_RESOLUTION_CLASS_16MP: 
                    case UTILS_ENCDEC_RESOLUTION_CLASS_9MP: 
                    case UTILS_ENCDEC_RESOLUTION_CLASS_5MP:
                    case UTILS_ENCDEC_RESOLUTION_CLASS_4MP:
                    case UTILS_ENCDEC_RESOLUTION_CLASS_1080P:
                        if (isEnc)
                            *pLevel = IMPEG4ENC_SP_LEVEL_6;
                        break;
                    case UTILS_ENCDEC_RESOLUTION_CLASS_CIF:
                        if (isEnc)
                            *pLevel = IMPEG4ENC_SP_LEVEL_4A;
                        break;
                    case UTILS_ENCDEC_RESOLUTION_CLASS_720P:
                    case UTILS_ENCDEC_RESOLUTION_CLASS_D1:
                        if (isEnc)
                            *pLevel = IMPEG4ENC_SP_LEVEL_5;
                        break;
                    default:
                        if (isEnc)
                            *pLevel = IMPEG4ENC_SP_LEVEL_5;
                        break;
                }
            break;
            default:
                *pLevel = IVIDENC2_DEFAULTLEVEL;
                retVal = UTILS_ENCDEC_E_UNKNOWNCODINGTFORMAT;
                break;
        }
        return retVal;
    }

    在这个函数里面配置就可以了