Gstreamer - команда rtph264pay - PullRequest
0 голосов
/ 16 октября 2019

Мне нужно выяснить механизм, стоящий за командой rtph264pay. Я получил его вывод, но я не понимаю, как его прочитать. Где начало кадра? Если я заменяю filesink на udpsink, кадры отправляются по сети. Как udpsink определяет, где начинается и заканчивается кадр.

c:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe filesrc location=%string:\=/% ^
    ! decodebin ! x264enc ^
    ! "video/x-h264, stream-format=(string)avc, alignment=(string)au, profile=(string)baseline" ^
    ! h264parse ^
    ! rtph264pay ^
    ! filesink ^
    location=video.txt

1 Ответ

0 голосов
/ 27 октября 2019

Элемент rtph264pay принимает данные H264 в качестве входных данных и преобразует их в пакеты RTP. RTP - это стандартный формат, используемый для отправки по сети многих типов данных, включая видео. RTP формально изложен в RFC 3550 , а конкретную информацию о том, как он используется с H264, можно найти в RFC 6184 .

Как определяет udpsinkгде кадр начинается и заканчивается.

udpsink не нужно знать, где начинаются и заканчиваются кадры, он просто отправляет пакеты RTP, созданные rtph264depay, по UDP. У него нет особого понимания формата RTP. Получатель этих данных должен понимать RTP, чтобы распаковывать его и декодировать.

Поскольку RTP - это формат, предназначенный для отправки по сети, несколько необычно сохранять их в файл сfilesink.

...