微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以通过 MPEG-DASH 流式传输 MJPEG 内容? 什么不起作用 有什么作用

如何解决是否可以通过 MPEG-DASH 流式传输 MJPEG 内容? 什么不起作用 有什么作用

我正在尝试使用 ffmpeg 通过破折号重新流式传输 MJPEG 流。

我有一个 ESP32 摄像头模块,它以 192.168.2.128:81/stream(Arduino 代码 here输出 MJPEG 直播。 我可以直接在浏览器中打开此流并实时查看视频,但是当我需要多客户端解决方案时,摄像头一次只允许一个客户端。

什么不起作用

我目前正在尝试实施的一个解决方案是使用运行 apache 和 ffmpeg 的单独服务器(RaspBerry Pi)使用 DASH 重新流式传输 MJPEG 内容
ffmpeg -re -i http://192.168.2.128:81/stream -strict -2 -an -c:v copy -b:v 2000k -f dash -window_size 4 -extra_window_size 0 -min_seg_duration 2000000 -remove_at_exit 1 /var/www/html/out.mpd

在服务器上执行此命令时没有出现错误。 然后我使用这个 ffmpeg-dash.html 在浏览器中显示视频。 不幸的是,这段代码失败了,在 Firefox 中控制台报告错误

[72][Stream] No streams to play.

紧随其后:

Cannot play media. No decoders for requested formats: video/mp4;codecs="mp4v.6c";width="640";height="480"

有什么作用

令我困惑的是,如果我用示例 .mkv 文件替换 MJPEG 直播 url,上面的代码工作正常,所以如果我使用
ffmpeg -re -i /var/www/html/video.mkv -strict -2 -an -c:v copy -b:v 2000k -f dash -window_size 4 -extra_window_size 0 -min_seg_duration 2000000 -remove_at_exit 1 /var/www/html/out.mpd

使用前面提到的 ffmpeg-dash.html 文件,我可以毫无问题地观看直播的示例视频 (video.mkv)。 此外,ffmpeg 似乎可以毫无问题地读取 MJPEG 直播,因为

ffmpeg -t 10 -i http://192.168.2.128:81/stream -filter:v fps=15 -c:v flv test.flv

成功返回一个 10 秒的直播片段。

所以对我来说,问题似乎在于我如何将两者结合起来。我错过了什么?甚至可以通过 MPEG-DASH 流式传输 MJPEG 内容吗? (我是新手,请为我的无知提前道歉)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。