Преобразование потока MJPEG RTP в поток MP4 RTP с помощью FFMPEG - как? - PullRequest
0 голосов
/ 02 февраля 2019

Я уже несколько дней ищу решение, как преобразовать поток MJPEG rtp в поток MP4 rtp.

Уже пробовал что-то вроде этого:

ffmpeg -i rtsp://192.168.10.8:554/stream1/mobotix.mjpeg -rtsp_transport tcp -f H264 udp://192.168.10.5:8554

ffmpeg показывает, что он что-то делает ...

frame= 612 fps= 11 q=25.0 size= 3243kB time=00:00:56.00 bitrate= 474.4kbits/s dup=275 drop=0 speed=0.981x

Затем я попытался с помощью VLC открыть udp: //192.168.10.5: 8554, но ничего не открываетсяпанель работает влево / вправо навсегда.

Нужно ли мне что-то вроде простого RTP-сервера (https://github.com/ossrs/srs) и затем поток на него?

Лучше всего было бы, когда ffmpeg могсам хост rtp ...

1 Ответ

0 голосов
/ 02 февраля 2019

Вот что я использовал для потоковой передачи локального mkv в RTP

ffmpeg -re -thread_queue_size 4 -i input.mkv -strict -2 -vcodec copy -an -f rtp rtp://127.0.0.1:6005 -acodec copy -vn -sdp_file my_sdp_file -f rtp rtp://127.0.0.1:7005

Затем мне пришлось скопировать сгенерированный файл sdp на клиент и использовать ffmpeg для сохранения потока на диск

ffmpeg -protocol_whitelist "file,rtp,udp" -i my_sdp_file -strict -2 saved_rtp_stream.mp4

Для полноты, вот содержимое файла sdp

$ cat my_sdp_file
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
t=0 0
a=tool:libavformat 57.83.100
m=video 6005 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AHuiAWh7f+AEAANiAAAH0gABdwHAwABAFgABVc0lGAPFi0SA=,aOvssg==; profile-level-id=4D401E
m=audio 7005 RTP/AVP 97
c=IN IP4 127.0.0.1
a=rtpmap:97 MPEG4-GENERIC/48000/2
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1190
...