我正在从我的 PC 中的网络摄像头捕获视频,并在运行中将其转换为 FLV(使用 ffmpeg)。 因此,我有一个不断增长的 .FLV 文件。 现在我想把它作为直播来播放。 我正在尝试 VLC,但它播放文件的时间不超过初始化时从文件读取的持续时间。 直播FLV可以用什么播放器? 我正在使用 Ubuntu 16.04。
预先感谢您的回答!
最佳答案
你不能直接播放直播的FLV,但是在中国的直播平台上流行一种叫做“http-flv”的棘手的协议(protocol),可以在http框架内播放直播的flv。
为什么是 http-flv?
- HLS/Dash 的延迟很长。大约需要 10 到 20 多秒。
- Http-flv 将端到端延迟减少到 ~5 秒。它可以在支持 MSE 的浏览器上播放。
它是如何工作的?
- FLV 是一个简单的容器,它“支持”基于文件的渐进式流式传输,因为可以在 flv 视频中获取部分字节范围并仍然播放它(对于 mp4,您需要 moov 等元数据来播放。)
- 对于文件服务器,托管一个不断增长的 flv 文件并删除 HTTP 响应 header “内容长度”,这样当客户端请求该文件时,它不知道响应正文的大小。它将保持连接并接收视频片段,直到连接结束。
- 在客户端,使用 flv.js 仅获取 flv 文件的最新片段并执行播放。
- 许多其他可以使管道正常工作的技巧。
网上有很多资源可供您使用。以下是一些引用资料:
关于live-streaming - 如何播放实时 FLV 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43071489/