Преобразование потока RTP (OPUS) в поток HLS (AAC) с помощью ffmpeg или gstreamer

#ffmpeg #gstreamer

#ffmpeg #gstreamer

Вопрос:

В настоящее время у меня есть поток протокола RTP в кодеке OPUS, который воспроизводится локально на rtp: // 127.0.0.1:5006

Я хотел бы преобразовать этот поток в протокол HLS с кодеком AAC (или другими, если проще), чтобы он был более доступен для устройств только с браузером.

Я знаю, что ffmpeg и gstreamer способны на это, но я просто потерялся среди различных аргументов / параметров.

В настоящее время у меня есть SDP-файл, который описывает мой поток (не уверен, правильно ли это, я написал его после простого поиска / чтения спецификации)

 v=0
t=0 0
m=audio 5006 RTP/AVP 98
c=IN IP4 127.0.0.1
a=recvonly
a=rtpmap:98 opus/48000/2
a=fmtp:98 stereo=0; sprop-stereo=0; useinbandfec=1c
 

Есть идеи?

Ответ №1:

Я смог заставить это работать, используя приведенную ниже команду. Файл SDP, похоже, также работал без проблем.

 ffmpeg -protocol_whitelist file,udp,rtp -i input.sdp -c:a aac -b:a 128k -ac 2 -f hls -hls_time 4 -hls_playlist_type event outputstream.m3u8
 

Если у кого-то еще были проблемы с пониманием аргументов, как у меня, просто найдите время для поиска аргументов в https://ffmpeg.org/ffmpeg.html и понять их. Тогда все становится намного проще.