Видеопоток RTP: обязательно ли наличие SDP-файла?

#video-streaming #rtp

#потоковое видео #rtp

Вопрос:

Я реализовал необработанный rtp-поток. Я хочу воспроизвести его с помощью VLC или Mplayer. Но, похоже, видеопроигрыватели не могут воспроизводить этот поток.

Например, MPlayer говорит:

 Stream not seekable!
Stray packet (seq[6]=1013 seq=987, newseq=-26 found at 12)
  

Я не имею ни малейшего представления, что мне нужно сделать, чтобы сделать видео читаемым этими видеоплеерами.
Должен ли я добавить SDP? Или эти проигрыватели могут воспроизводить необработанный rtp-поток?

Спасибо

Ответ №1:

SDP не требуется, пока получателю известен формат потоков. Поток, недоступный для поиска, означает, что пакеты не поступают на приемник последовательно, как ожидалось. Попробуйте увеличить время буферизации проигрывателей.

Комментарии:

1. Спасибо за ответ! Итак, это означает, что я устанавливаю неправильный порядковый номер в заголовок RTP?

2. Необязательно, пакеты, поступающие на приемник, не синхронизированы. Вы можете проверить это с помощью wireshark. Проверьте три поля. Номер последовательности, временная метка и бит маркера.

3. «при условии, что получателю известен формат потоков». Ну, строго говоря, это точно, но разве SDP не является стандартным способом сообщить VLC или mplayer «формат потоков»? Для меня это все равно что сказать: «нет, вам не нужна документация для использования tool X, если вы уже знаете, как им пользоваться».

Ответ №2:

Добавьте буфер дрожания для обработки переупорядочивания неупорядоченных пакетов в приемник. Обратите внимание, что если данные достаточно сильно не в порядке (особенно если они запоздали), вам нужно будет удалить их вместо пересылки в декодер. Декодер должен обрабатывать потерянные пакеты.