nginx - 转发 HLS 流 - 需要解决方案

标签 nginx ffmpeg wowza http-live-streaming ffserver

我正在接收带有 FFmpeg 的 HLS/AppleHTTP 流。源流如下所示:

Input #0, hls,applehttp, from 'http://example.com/hls/index.m3u8':
   Duration: 00:00:00.09, start: 42870.540944, bitrate: 91 kb/s
   Program 0
   Metadata:
      variant_bitrate : 0
   Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1024x576 [SAR 1:1 DAR 16:9], 12.50 fps, 25 tbr, 90k tbn, 50 tbc
   Stream #0:1: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 114 kb/s
   Stream #0:2: Unknown: none ([21][0][0][0] / 0x0015)

我需要将这种带有 FFmpeg 的流转发到流服务器。我的问题是,如何在没有编码的情况下使用 FFmpeg 并且 CPU 使用率很高(我认为 -video copy -audio copy)。其次,哪个 Streaming Server Software 最好(低 CPU 使用率)接收流并将其作为 HLS 流发送给用户?

最佳答案

HLS 代表 HTTP 直播 .您不需要特殊的服务器将其发送到客户端,只需像 Nginx(您的标签之一)这样的常规 Web 服务器。

你可以做:
ffmpeg -i http://example.com/hls/index.m3u8 -c copy /path/to/web/dir/index.m3u8
该命令将创建播放列表并将片段复制到 /path/to/web/dir它位于 Web 服务器的文档根目录中。客户端只需要新的 URL。

如果输入播放列表是包含多个变体流的主播放列表,事情会变得更加复杂。在这种情况下,您需要将所有单独的流捕获到不同的目录并在您身边编写一个新的主播放列表以重新组合不同的流。

关于nginx - 转发 HLS 流 - 需要解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31976377/

相关文章:

PHPMyAdmin 单点登录身份验证无限重定向循环

Python 3.2 - uWSGI 进程出现段错误

video - 将格式转换为 .mp4 时无法播放此视频

video - 使用 ffmpeg 编码高质量视频

streaming - Wowza Streaming Engine 中的直播中贴片广告注入(inject)

live - 来自实时流的语音到文本

iphone - Wowza:需要将 rtp-live 流式传输到 iPhone

caching - 具有可变参数顺序的 Nginx 缓存

php - 在 Nginx 上安装 Wordpress 时出错

FFmpeg:如何将一个 100GB 的 MP4 文件拆分为多个 1GB 的文件?