Синтезируйте SPS и PPS для неполного потока H264 для iOS VideoToolbox - PullRequest
1 голос
/ 19 марта 2019

У меня есть IP-камера AXIS (M1054), которая отправляет поток H264 / RTP через RTSP.

К сожалению, они вообще не отправляют NALU SPS и PPS, они только передают (фрагментированные) фрагменты кодека.

Я пытаюсь декодировать этот поток с помощью фреймворка iOS VideoToolbox, для которого требуется кортеж H264 SPS и PPS для правильной настройки CMFormatDescription.

. Интересно, как я могу синтезироватьнеобходимые наборы параметров для просмотра фактических срезов H264?

Обновление : я записал пример сеанса, в котором mplayer удается отобразить поток через Wireshark.Файл захвата находится здесь , и вы можете увидеть всю настройку RTSP, а также пару секунд RTP.

1 Ответ

1 голос
/ 19 марта 2019

RTP состоит из 3 наборов потоков.

  1. RTP для СМИ
  2. RTSP для управления соединением
  3. RTCP для подтверждения отправителя и отметок времени.

Хотя SPS / PPS часто находится в полосе внутри потока и транспортируется через RTP - он не должен быть там (и, возможно, не должен быть там). SPS / PPS передается как часть процесса настройки (RTSP). Я обычно рекомендую запускать http://www.live555.com/ в отладчике, чтобы узнать подробности процесса, но http://www.live555.com/ в настоящее время не работает.

В очень редких случаях вы можете воссоздать SPS / PPS из хорошо известного ограниченного потока H.264. Но в целом вы не можете. Таким образом, SPS / PPS - это метаданные потока H.264, которые нигде не хранятся с избыточностью.

Так что, если вы ознакомитесь с процессом установки - RTSP - это будет довольно очевидно.

...