Сохранение и ретрансляция RSTP-видео как прямого UDP

Я пытаюсь написать программу, которая будет подключаться к источнику видео RTSP и перенаправлять видеоданные в другое место с помощью UDP. Я также сохраняю пакеты RTSP, чтобы иметь возможность воспроизвести видеопоток в более поздний момент времени. Прямо сейчас моя программа может подключаться к видеопотоку RTSP, перенаправлять и сохранять, но когда я пытаюсь посмотреть перенаправленное видео, я ничего не получаю с помощью VLC.

В настоящее время программа просто удаляет дейтаграмму из видеопакетов RTSP, которые она получает в своем открытом UDP-сокете, и повторно отправляет их, используя этот код, используя библиотеку boost asio.

newVideoSocket->send_to(&dg.data[0], dg.data.size() ,Endpoint);

Когда я смотрю на трафик с помощью Wireshark, я вижу, что он фактически отправляет данные на новый адрес и распознается как пакет UDP, но когда я пытаюсь просмотреть видео с помощью VLC, ничего не происходит. Видеопоток - Mpeg4 с видео, закодированным как H.264, и VLC может его воспроизводить.

Я пытался подключиться к перенаправленному потоку как UDP и как RTP как по многоадресным, так и по одноадресным адресам, но безуспешно. Нужно ли мне что-то добавить или удалить из дейтаграммы перед повторной отправкой? Или что-то не так с тем, как я пытаюсь просмотреть это в VLC? Спасибо за помощь.


person user1701362    schedule 26.09.2013    source источник
comment
Вы уверены, что VLC может воспроизводить необработанные пакеты UDP? Обычно нужен протокол более высокого уровня, например RTP.   -  person Igor R.    schedule 28.09.2013


Ответы (1)


Для воспроизведения необработанного UDP-потока VLC необходима информация о потоке (эта информация передается через RTSP в сообщениях DESCRIBE и SETUP). Попробуйте создать файл sdp, указав номер порта, тип видео и т. Д. (Вам нужно прочитать ответ DESCRIBE от serer), а затем откройте его в vlc.

Мне удалось заставить его работать, но при использовании такого VLC я столкнулся с проблемами с синхронизацией и выводом видео (видео было сломано).

person stakasha    schedule 30.09.2013