3

Я пытаюсь использовать ffmpeg для получения потока h264 через RTSP и пересылки этого потока в качестве многоадресного потока rtp. Я могу получить поток и вывести его как многоадресный поток rtp, используя следующую команду:ffmpeg -i rtsp://10.255.11.203/ProfileToken_1_1 -vcodec copy -an -f rtp rtp://230.255.10.25:50000

Входящий поток содержит пакеты SPS PPS и SEI. Я не могу сделать ffmpeg для вывода, а также.

Я экспериментировал с параметром -flags global_header для включения и выключения глобального заголовка, и я попытался добавить -bsf h264_mp4toannexb который не работает, поскольку входящий поток уже является Annex-B.

1 ответ1

0

Содержит ли их входящий поток или они просто не нужны?

Если вы принимаете поток через RTSP, вы, вероятно, получаете поток RTP, в котором нет этих пакетов. Ваш клиент подключился бы через RTCP, чтобы получить SDP, описывающий эти потоки, потому что PPS и SPS обычно используются один раз для каждого потока, если только вы не меняете разрешение, частоту кадров и т.д.

Запустите команду, которую вы выполняли, но в выводе ffmpeg вы увидите такой раздел:

SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 239.100.200.100
t=0 0
a=tool:libavformat 56.40.101
m=video 10000 RTP/AVP 96
b=AS:3027
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAM6xyBEB4AiflwEQAAAMABAAAAwDAPGDGEYA=,aOhDssiw; profile-level-id=640033

Все, что находится после строки SDP, нужно сохранить в filename.sdp. Чтобы подключиться к потоку, кому-то просто нужно открыть файл:

ffplay -i filename.sdp

Если вы поместите файл на сервер, они могут открыть адрес:

ffplay -i http://yourhost/filename.sdp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .