Запись потока h264 в контейнер Mpeg с использованием directshow - PullRequest
0 голосов
/ 27 июня 2011

У меня есть фильтр источника, который выдвигает поток "h264". Я хочу записать этот поток в контейнер MPEG4 (или может быть AVI).

SourceFilter[output = H264]  ---> X--->Y ....--->FileWriter[record.mpeg4]

Как я могу сделать это с DirectShow? (также откройте альтернативные решения, которые не используют DirectShow)

С наилучшими пожеланиями

П.С .: Кстати, что лучше? формат контейнера для потоков H264?

Обновление для MPEG-4 Mux

Ну, я просто попробую MPEG-4 Mux (www.gdcl.co.uk/mpeg4). Мой фильтр источника RTSP и MUX не может быть подключен. Intelligent Connect пытается поместить декодер FFdshow между фильтром источника и мультиплексором.

Это не выдает ошибку в graphEdt, но записанный поток - "O" BYTE. Нет записи. Я не могу что-то сделать ... Но что это?

enter image description here enter image description here

1 Ответ

1 голос
/ 27 июня 2011

В исходной форме доступен фильтр mux mpeg-4 по адресу www.gdcl.co.uk/mpeg4.Это часто используется для H264.

Вам нужно проверить, какой формат вы предоставляете.Существует два варианта: либо формат байтового потока (с начальными кодами 00 00 01 перед каждым NALU) и с добавлением длины (с полем длины перед каждым NALU, как хранится в файлах MP4).Мультиплексор должен принимать оба, но вам может потребоваться проверить, что используемый вами указатель fourcc / subtype означает то же самое для мультиплексора, что и для вашего источника.

G

...