Почему RTP / RTSP вмешиваются в мои NAL H.264? - PullRequest
1 голос
/ 28 сентября 2011

Я посмотрел в RFC, и замечание может объяснить, почему происходит следующее (хотя декодер все еще может создавать исходный фильм).

Я передал файлы H.264 / AVC с использованием кодера VSS h.264,поток байтов выглядел примерно так: E5 46 0E 4F FF A0 23 ...

когда я читаю данные фильма на стороне приемника после приемника RTP Broadcaster / RTSP, я получаю дополнительные неизвестные данные, но всегда вто же самое место, 8 байтов добавляются перед префиксом стартового кода (0x00000001), и 2 байта добавляются после префикса стартового кода, это выглядит примерно так:

XX XX XX XX XX XX XX XX 00 00 01 XX XXЗатем я смотрю в Wireshark и вижу, что RTP добавляет байты к полезной нагрузке данных.

Почему это происходит, почему?и почему декодер, кажется, хорошо справляется с этими дополнительными байтами?!

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Это какой-то испорченный поток ... И вы можете запутать его еще больше, и он все равно будет работать, потому что декодер анализирует его на 0x000001 стартовый код, пропуская байты, которые добавляются в начале.Эти два новых байта в конце должны быть байтами фрагментации H264 ... или чем-то связанным с H264, поскольку они работают.

Таким образом, в основном это происходит из-за неисправного фильтра источника пакетирования / RTSP.Я предполагаю, что если вы ASCII кодируете эти 8 байтов, вы получите имя поставщика исходного фильтра RTSP ... xD

0 голосов
/ 28 сентября 2011

Как я уже упоминал в другом посте Изменение NALU h.264 / avc для включения RTP , H.264 передается по RTP, как определено в RFC 3984. Это, в частности, определяет, насколько точно большие блоки NALразбит на более мелкие части, которые соответствуют меньшим размерам сообщений, например размер дейтаграммы UDP.То есть фрагментация.

Receiver депакетирует данные и восстанавливает NALU, и он использует эту дополнительную информацию для выполнения работы.

Так что вам по сути нужно сравнить необработанные данные, которые у вас есть, с форматом RFC 3984.Кроме того, Wireshark уже частично делает это для вас, разбивая трафик на удобочитаемые элементы.

...