Remux MPEG TS -> RTP MPEG ES - PullRequest
       78

Remux MPEG TS -> RTP MPEG ES

1 голос
/ 01 августа 2011

Пожалуйста, помогите мне достичь следующего результата в моей программе (написанного на C): у меня есть источник потока в виде потока HTTP MPEG TS (кодеки h264 и aac), он имеет 1 видео и 1 аудио подпоток.Мне нужно получить кадры MPEG ES (из тех же кодеков), чтобы отправить их через RTP клиентам RTSP.Будет лучше, если libavformat даст кадры с заголовком RTP.MPEG ES необходим, потому что, как я знаю, медиаплееры на телефонах Blackberry не воспроизводят TS (я пробовал).Хотя, я ценю, если кто-нибудь укажет мне какой-то другой формат, который проще найти в этой ситуации, который может поддерживать h264 и aac и хорошо работает на blackberry и других телефонах.открыть поток и выполнить ремукс в контейнер FLV.

Попытка открыть два контекста выходного формата с форматами "rtp", также получила кадры.Отправлено клиенту.Безуспешно.

Я также пытался записать кадры в "m4v" AVFormatContext, получил кадры, вырезал их по NAL, добавил заголовок RTP перед каждым кадром и отправил клиенту.Клиент отображает 1-й кадр и зависает или воспроизводит секунду видео + аудио (быстрее, чем нужно) каждые 10 секунд и более.В журнале игрока VLC у меня есть это: http://pastebin.com/NQ3htvFi

Я масштабировал временные метки, чтобы они начинались с 0 для простоты.Я сравнил это с тем, что VLC (или Wowza, извините, я не помню) увеличивал аудио TS на 1024, а не 1920, поэтому я сделал дополнительное линейное масштабирование, чтобы быть похожим на другие стримеры.Дамп пакета воспроизведения bigbuckbunny_450.mp4 здесьили VLC.

Как правильно получить то, что мне нужно?Мне также интересно, есть ли какая-нибудь библиотека, похожая на libavformat?Может быть, даже в зачаточном состоянии.

...