live-streaming - 如何播放实时 FLV 流?

标签 live-streaming flv

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

预先感谢您的回答!

最佳答案

你不能直接播放直播的FLV,但是在中国的直播平台上流行一种叫做“http-flv”的棘手的协议(protocol),可以在http框架内播放直播的flv。

为什么是 http-flv?

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

它是如何工作的?

  1. FLV 是一个简单的容器,它“支持”基于文件的渐进式流式传输,因为可以在 flv 视频中获取部分字节范围并仍然播放它(对于 mp4,您需要 moov 等元数据来播放。)
  2. 对于文件服务器,托管一个不断增长的 flv 文件并删除 HTTP 响应 header “内容长度”,这样当客户端请求该文件时,它不知道响应正文的大小。它将保持连接并接收视频片段,直到连接结束。
  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/

关于live-streaming - 如何播放实时 FLV 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43071489/

相关文章:

flash - Adobe 连接视频 : FLV to MP4 (export, 转换)

linux - 使用 ffmpeg 和 red5 直播预先录制的 flv 视频

youtube - 仅将 Youtube 嵌入到我自己的网站

php - 通过流网络摄像头。 Wowza 流媒体服务器

FFmpeg 错误 m4v 到 flv 请求的比特率太低

php - FFMpeg 在命令行中工作但不在 PHP 脚本中工作

opencv - FFmpeg/OpenCV 强制忽略带有 rtsp 的输入帧持续时间?

ffmpeg - 使用 ffmpeg 流式传输到 youtube

flash - 使用ffmpeg生成具有完全相同关键帧位置的多个分辨率

php - 如何使用 PHP 和 FFMPEG 分割和转换视频