使用FFMPEG将MJPEG RTP流转换为MP4 RTP流-怎么样?

时间:2019-02-02 11:08:11

标签: ffmpeg stream mp4 rtp mjpeg

几天来我一直在寻找解决方案,如何将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 :(得分:0)

这是我用来将本地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