Взял с MSDN код, который производит конвертацию видео из AVI в MP4 используя Media Foundation API. Все отлично работает на Windows 10, но при запуске на Windows 7 приложение уходит в бесконечный цикл. После дебага выяснил что проблема начинается после вызова IMFMediaSession::SetTopology(), который в свою очередь вызывает callback Invoke(IMFAsyncResult *pResult) метод и передает ему IMFMediaEvent который возвращает "-1072868846" из метода GetStatus(). Т.е. происходит ошибка при установке топологии. Но что с этим делать дальше пока не могу понять. Где посмотреть, что за ошибки этот метод возвращать в евентах может не нашел и соотвественно причину такого поведения в Windows 7.
Буду признателен, если кто чем поможет и направит на решение.
У меня на Windows 7, mp4 и wmv файлы нормально перекодируются, avi подходящего формата не нашел, все файлы которые есть подрукой кодированы xvid и неподдерживаются, при вызове MFCreateTranscodeTopology(...) возвращает MF_E_TOPO_CODEC_NOT_FOUND, может дело именно в поддержке avi формата
Re[2]: mp4-h264 video encoding (Media Foundation) падает на windows 7
Здравствуйте, alexander_r, Вы писали:
_>У меня на Windows 7, mp4 и wmv файлы нормально перекодируются, avi подходящего формата не нашел, все файлы которые есть подрукой кодированы xvid и неподдерживаются
Здравствуйте, alexander_r, Вы писали:
_>У меня на Windows 7, mp4 и wmv файлы нормально перекодируются, avi подходящего формата не нашел, все файлы которые есть подрукой кодированы xvid и неподдерживаются, при вызове MFCreateTranscodeTopology(...) возвращает MF_E_TOPO_CODEC_NOT_FOUND, может дело именно в поддержке avi формата
Да действительно проблема в avi. А интересно, почему на винде 7 проблема с конвертацией AVI контейнера.
Re[3]: mp4-h264 video encoding (Media Foundation) падает на windows 7
Здравствуйте, C0x, Вы писали:
C0x>Здравствуйте, alexander_r, Вы писали:
_>>У меня на Windows 7, mp4 и wmv файлы нормально перекодируются, avi подходящего формата не нашел, все файлы которые есть подрукой кодированы xvid и неподдерживаются
C0x>А можешь у себя попробовать вот эту avi конвертнуть https://drive.google.com/file/d/1A1tCHaUcDEihVfPGAO165zfTX4OVU5bb/view?usp=sharing ?
не работает pSession->GetEncodingPosition(&pos) возвращает MF_E_CLOCK_NO_TIME_SOURCE
Re: mp4-h264 video encoding (Media Foundation) падает на windows 7
Судя по всему проблема в том что исходный test.avi в формате RGB, а для кодирования в h264 нужен YUV, соответственно вот и MF_E_TOPO_CODEC_NOT_FOUND,
я попробовал avi с видео mpeg4 (DivX), все работает, т.е нужно дополнительно настраивать преобразование YUV->RGB
Здравствуйте, C0x, Вы писали:
C0x>Да действительно проблема в avi. А интересно, почему на винде 7 проблема с конвертацией AVI контейнера.
так надо было сначала посмотреть может ли MF воспроизвести этот avi
вообще MF очень капризен, и для таких целей непригоден, как я понял в браузерах пытались через него работать, но в итоге вернулись на DS.