ffmpeg - 使用 FFMPEG 将 MJPEG RTP 流转换为 MP4 RTP 流 - 如何?

标签 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
但它不会打开任何东西,只是酒吧永远向左/向右运行。

我需要像 Simple RTP-Server ( https://github.com/ossrs/srs ) 这样的东西然后流式传输到那个吗?

最好是,当 ffmpeg 可以自己托管 rtp 时......

最佳答案

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

关于ffmpeg - 使用 FFMPEG 将 MJPEG RTP 流转换为 MP4 RTP 流 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54492452/

相关文章:

python - 使用 filedialog 时 Tkinter 窗口和脚本卡住

C# WebStream 寻求下载 "Chunks"中的文件

c++ - 从文件中取出两个十六进制字符并存储为具有相关十六进制值的字符

google-chrome - 像素格式 yuvj420p 的 mp4 无法在 Chrome 17 中播放,但可以在 Safari、IE 等中播放

c++ - Windows Phone 8 的 MP4/h264 解码库

image - 如何使用 ffmpeg 替换图像的一部分

ios - 通过连接DVR的视频监控应用

ffmpeg - 如何将视频列表推送到 rtmp 服务器并保持连接

linux - 有什么方法可以将/dev/urandom 生成的字符流拆分成不同的子流吗?

ios - 使用 AVFoundation 将 AAC 音频和 h.264 视频流复用到 mp4