mp4-h264 video encoding (Media Foundation) падает на windows 7
От: C0x  
Дата: 18.01.18 16:52
Оценка:
Привет,

Взял с MSDN код, который производит конвертацию видео из AVI в MP4 используя Media Foundation API. Все отлично работает на Windows 10, но при запуске на Windows 7 приложение уходит в бесконечный цикл. После дебага выяснил что проблема начинается после вызова IMFMediaSession::SetTopology(), который в свою очередь вызывает callback Invoke(IMFAsyncResult *pResult) метод и передает ему IMFMediaEvent который возвращает "-1072868846" из метода GetStatus(). Т.е. происходит ошибка при установке топологии. Но что с этим делать дальше пока не могу понять. Где посмотреть, что за ошибки этот метод возвращать в евентах может не нашел и соотвественно причину такого поведения в Windows 7.

Буду признателен, если кто чем поможет и направит на решение.

Идея кода взята отсюда: https://msdn.microsoft.com/en-us/library/windows/desktop/ff819476(v=vs.85).aspx

А это мой cpp: https://gist.github.com/anonymous/8d78059532a9a07913e2f8b836276d21

Компилировал в Visual Studio 2017.

Параметры у программы input.avi output.mp4 0 0.

Спасибо!
Re: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: reversecode google
Дата: 18.01.18 17:46
Оценка:
попробуйте на чистой win7
Re[2]: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: C0x  
Дата: 18.01.18 18:27
Оценка:
Здравствуйте, reversecode, Вы писали:


R>попробуйте на чистой win7


А что это должно дать? Допустим оно даже заработает.как понять в чем причина?
Re[3]: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: reversecode google
Дата: 18.01.18 18:52
Оценка:
топология кодеков может быть уже скручена
ее меняют и всякие видяшные дрова итд

была какая то утилита... не помню, эту топологию можно было посмотреть, даже потестить
Re: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: alexander_r  
Дата: 18.01.18 22:44
Оценка:
У меня на Windows 7, mp4 и wmv файлы нормально перекодируются, avi подходящего формата не нашел, все файлы которые есть подрукой кодированы xvid и неподдерживаются, при вызове MFCreateTranscodeTopology(...) возвращает MF_E_TOPO_CODEC_NOT_FOUND, может дело именно в поддержке avi формата
Re[2]: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: C0x  
Дата: 19.01.18 10:37
Оценка:
Здравствуйте, alexander_r, Вы писали:

_>У меня на Windows 7, mp4 и wmv файлы нормально перекодируются, avi подходящего формата не нашел, все файлы которые есть подрукой кодированы xvid и неподдерживаются


А можешь у себя попробовать вот эту avi конвертнуть https://drive.google.com/file/d/1A1tCHaUcDEihVfPGAO165zfTX4OVU5bb/view?usp=sharing ?
Re[2]: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: C0x  
Дата: 19.01.18 11:39
Оценка:
Здравствуйте, 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
От: alexander_r  
Дата: 19.01.18 19:03
Оценка:
Здравствуйте, 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
От: alexander_r  
Дата: 19.01.18 21:40
Оценка:
Судя по всему проблема в том что исходный test.avi в формате RGB, а для кодирования в h264 нужен YUV, соответственно вот и MF_E_TOPO_CODEC_NOT_FOUND,
я попробовал avi с видео mpeg4 (DivX), все работает, т.е нужно дополнительно настраивать преобразование YUV->RGB

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e90f3cbf-f349-48cc-ae75-f031aa54ccd0/calling-settopology-results-in-mfetopocodecnotfound?forum=mediafoundationdevelopment
Re[3]: mp4-h264 video encoding (Media Foundation) падает на windows 7
От: uuuser  
Дата: 22.01.18 21:08
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Да действительно проблема в avi. А интересно, почему на винде 7 проблема с конвертацией AVI контейнера.


так надо было сначала посмотреть может ли MF воспроизвести этот avi
вообще MF очень капризен, и для таких целей непригоден, как я понял в браузерах пытались через него работать, но в итоге вернулись на DS.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.