如何播放直播FLV流?

use*_*454 2 flv live-streaming

我正在从 PC 中的网络摄像头捕获视频,并即时将其转换为 FLV(使用 ffmpeg)。因此,我的 .FLV 文件不断增长。现在我想以直播的形式播放它。我正在尝试 VLC,但它播放文件的时间不超过初始化时从文件读取的持续时间。我可以使用什么播放器来现场播放 FLV?我正在使用 Ubuntu 16.04。

预先感谢您的回答!

Fei*_*Fei 6

您无法直接播放直播 FLV,但中国直播平台中有一个流行的棘手协议,称为“http-flv”,可以在 http 框架内播放直播 FLV。

为什么选择 http-flv?

  1. HLS / Dash 的延迟很长。大约10到20秒以上。
  2. Http-flv 将端到端延迟减少至约5 秒。它可以在支持 MSE 的浏览器上播放。

怎么运行的?

  1. FLV 是一个简单的容器,它“支持”基于文件的渐进式流媒体,因为人们可以在 flv 视频中获取部分字节范围并仍然播放它(对于 mp4,您需要像 moov 等元数据才能播放。)
  2. 对于文件服务器,托管一个不断增长的 flv 文件并删除 HTTP 响应标头“内容长度”,以便当客户端请求该文件时,它不知道响应正文大小。它将保持连接并接收视频片段,直到连接结束。
  3. 在客户端,使用 flv.js 仅获取 flv 文件的最新片段并执行播放。
  4. 许多其他技巧可以使管道正常工作。

网上有很多资源可供您使用。以下是一些参考:

  1. https://github.com/Bilibili/flv.js/
  2. https://github.com/winshining/nginx-http-flv-module
  3. 关于如何实现这一点的博客:https://www.yanxurui.cc/posts/server/2017-11-25-http-flv/