【问题标题】:Live video feed from ffmpeg to html with minimum latency从 ffmpeg 到 html 的实时视频源,延迟最小
【发布时间】:2020-10-01 01:50:17
【问题描述】:

我目前正在开展一个项目,该项目需要我从树莓派相机获取实时视频并将其流式传输到 html 页面。目前我正在使用 ffmpeg 创建 *.m3u8 和 *.ts 文件并以这种方式流式传输视频。在 html 页面中,我运行了 hls.js,它接收视频并通过视频标签显示它。这确实工作得很好,但是延迟是一个问题......浏览器中的视频总是延迟几秒钟到几分钟。这是不可接受的。

我目前正在使用以下命令运行ffmpeg:

ffmpeg -loglevel quiet -y -i - -c:v copy -preset veryfast -hls_wrap 2 -hls_time 1 -g 1 stream.m3u8

我还尝试了 -hls_time 和 -g 的其他值,包括 0 到 1 之间的值。

我现在正在寻找不存在此问题的替代解决方案,或者将延迟减少到最多 2 秒的方法。视频本身以 h264 格式传输到 ffmpeg。 html 网页使用 apache2 托管在同一个树莓派上。

有没有办法在不安装单独的流媒体服务器的情况下实现这一点?

此外,这一切都必须在没有互联网连接的情况下运行。这意味着 pi 和正在查看 html 页面的智能手机/计算机在同一个 wifi 上,但该 wifi 并不总是连接到互联网,也不需要连接。

所以基本上我想将 h264 视频放入 ffmpeg,然后以某种方式放入 html 标签。该流还应该可以通过另一种方式访问​​,因为我在页面上有一个按钮,可以开始和停止将流录制到 mp4 文件。目前这个录制也是使用 ffmpeg 完成的。

我在这里而不是在树莓派 stackexchange 论坛上问这个问题,因为这是一个普遍问题,问题本身与树莓派无关。

【问题讨论】:

    标签: javascript html video ffmpeg


    【解决方案1】:

    没有。目前还没有广泛部署的低延迟 HLS 标准。 Apple 标准最近才最终确定,尚未在 Apple 设备上提供。而且还没有足够的时间将其实现到 ffmpeg 或播放器中。

    已经开发了一些自定义解决方案,但没有一个是开源的或免费提供的。

    您现在所拥有的就是无需编写大量代码即可做到的最好的事情。

    【讨论】:

    • 好的。它不一定是HLS。如果有另一个可以使用的协议,那也很好。我曾考虑过 rtmp 或 rtsp,但对于他们来说,我需要安装一个单独的流媒体服务器......
    • 您也不能在浏览器中使用 rtmp 或 rtsp。如果你需要浏览器支持,你唯一的选择是 webrtc,你需要一个流媒体服务器。或者通过网络套接字自定义的东西。
    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2020-11-24
    • 2013-05-15
    • 1970-01-01
    • 2019-02-10
    相关资源
    最近更新 更多