【问题标题】:Http Live Streaming without encodingHttp Live Streaming 无编码
【发布时间】:2015-01-12 13:17:54
【问题描述】:

我有直播电视频道的 MPEG-TS H.264 视频流,我想为 iPhone 直播,但由于 HLS 需要制作分段(例如:10 秒)分段并使用 M3u8 发送。为此,我目前正在使用互联网上提供的 ffmpeg 和 m3u8-segmenter。但我不想使用 ffmpeg 进行转码,因为我的硬件有内存 + 处理器限制。是否有可能我只能制作 MPEG-TS 视频的片段并直接发送到 iPhone。

我尝试了很多方法,但无法做到。我正在使用基于 Linux 的系统。

请帮帮我,不转码视频直播到iphone的流程是什么。

谢谢

【问题讨论】:

  • 在这种情况下你用 ffmpeg 做什么?如果它已经以 MPEG-TS 的形式出现,您应该可以直接将其提供给 m3u8-segmenter。您能否发布您用于 ffmpeg 和 m3u8-segmenter 的示例代码和调用?
  • @JeffreyPfau 我正在使用这种格式:
    ffmpeg -i [link]localhost:6954/myvideo.ts -f mpegts -(所有其他编码参数)| ./m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u [link]domain.com
    因为我的视频已经是 MPEG-TS 格式,所以我只是想要制作该视频的片段并使用 m3u8 将其发送到我的 iPhone。我不确定,该怎么做。
  • 我也试过这个:./m3u8-segmenter -i(MPEG-TS 视频的 URL)-d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u(域前缀)

标签: ios iphone video-streaming m3u8 http-live-streaming


【解决方案1】:

解决此问题的最佳方法是完全删除 FFmpeg。虽然您可以强制 FFmpeg 不转码(通过使用 -c copy),但由于视频已经直接从直播流中采用 MPEG-TS 格式,因此最好直接使用它。

由于视频看起来是通过 HTTP 传输的,您可以使用 curl 将其打印到标准输出:

curl http://localhost:6954/myvideo.ts | ./m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://domain.com

或者如果你想使用wget而不是curl,类似

wget -O - http://localhost:6954/myvideo.ts | ./m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://domain.com

wgetcurl 可能已经安装在您的系统上。

【讨论】:

  • 太棒了!好主意。我会做。我希望它能解决我的问题。谢谢朋友
  • @Jeffery:这在 VLC 上运行良好。但它没有在 ipad 上播放。它继续加载。我也在模拟器和设备上尝试过。现在文件大小很大。转码后文件大小在 1-2mb 之间,现在根据原始视频,文件大小要大得多 3-15mb。
  • 对于 HLS 是否有 iOS 设备可以理解的特殊格式。因为 VLC 正在播放格式,而 ios 没有。
  • @ZainRaza 看起来 MPEG-TS 流的配置文件或比特率太高,无法在您的设备上播放,您可能最终还是需要对其进行转码。如需更多信息,请参阅this question 了解更多信息。
猜你喜欢
  • 2011-12-13
  • 2014-01-21
  • 1970-01-01
  • 2011-09-20
  • 2013-12-25
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多