Я пытаюсь написать программу, которая будет подключаться к источнику видео 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? Спасибо за помощь.