2015-03-08 6 views
1

У меня есть топология MF, которая захватывает видео и аудио и кодирует ее в H264, а затем записывает ее в раковину MPEG4. Однако проблема в том, что мой кодер H264 (Intel QuickSync H264 Encoder) не определяет значение для MF_MT_MPEG_SEQUENCE_HEADER в своих типах вывода. Таким образом, когда я поставил видео типа носителя моего MPEG4 раковины, нет заголовка последовательности не определен и раковина не может корректно завершить работу, как указан в документации MPEG4 Sink:Как вычислить MF_MT_MPEG_SEQUENCE_HEADER для конвертера MPEG4 в Win7?

https://msdn.microsoft.com/en-us/library/windows/desktop/dd757763(v=vs.85).aspx

После поиска вокруг, я узнал, что Мне нужно получить значения PPS SPS & для атрибута MF_MT_MPEG_SEQUENCE_HEADER. Я не уверен, как их получить. Мое приложение предназначено только для Windows 7, но в Windows 8 кажется, что вы можете просто установить атрибут MF_MPEG4SINK_SPSPPS_PASSTHROUGH, чтобы приемник захватил SPS & PPS из входных выборок (см. Ссылку выше). У меня нет интереса к отдельным образцам кадров, кроме как для получения этого значения, и в настоящее время мой код приложения не рассматривает отдельные образцы H264.

Что такое простой способ получить значения SPS & PPS из потока MF H264 в Windows 7?

ответ

1

Я мог бы объяснить, как это сделать. Но я верю, что это будет путать, если вы не поймете, почему. У меня есть еще одна должность, которая объясняет эти понятия довольно неплохо, и писать код для выполнения этого должен быть тривиальным после понимания формата битового потока.

Вы должны обратить особое внимание на раздел AVCC

Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream