Проблема с кодировщиком H264 (окно 10)
hr = MFCreateMediaType(&mediaTypeIn); hr = mediaTypeIn->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video); hr = mediaTypeIn->SetGUID(MF_MT_SUBTYPE, MFVideoFormat_AYUV); hr = mediaTypeIn->SetUINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive); hr = MFSetAttributeSize(mediaTypeIn, MF_MT_FRAME_SIZE, width, height); hr = MFSetAttributeRatio(mediaTypeIn, MF_MT_FRAME_RATE, fps_num, fps_den); hr = MFSetAttributeRatio(mediaTypeIn, MF_MT_PIXEL_ASPECT_RATIO, 1, 1); hr = MFCreateMediaType(&mediaTypeOut); hr = mediaTypeOut->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video); hr = mediaTypeOut->SetGUID(MF_MT_SUBTYPE, MFVideoFormat_H264); hr = mediaTypeOut->SetUINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive); hr = mediaTypeOut->SetUINT32(MF_MT_AVG_BITRATE, bit_rate); hr = mediaTypeOut->SetUINT32(MF_MT_MPEG2_PROFILE, eAVEncH264VProfile_Main) hr = MFSetAttributeSize(mediaTypeOut, MF_MT_FRAME_SIZE, width, height); hr = MFSetAttributeRatio(mediaTypeOut, MF_MT_FRAME_RATE, fps_num, fps_den); hr = MFSetAttributeRatio(mediaTypeOut, MF_MT_PIXEL_ASPECT_RATIO, 1, 1); hr = vx->sinkWriter->AddStream(mediaTypeOut, &vx->streamIndex); hr = vx->sinkWriter->SetInputMediaType(vx->streamIndex, mediaTypeIn, NULL);
SetInputMediaTyp () не удалось и возвращает с ошибкой 'MF_E_INVALIDMEDIATYPE'
Что я уже пробовал:
Этот код отлично работает в windows 7 и не работает в windows 10.
SetInputMediaType () не удалось и возвращает MF_E_INVALIDMEDIATYPE?
В случае с переменным битрейтом (VBR'eAVEncCommonRateControlMode_Quality'), требуемое значение MF_MT_AVG_BITRATE' это?