【问题标题】:iOS to browser live streamingiOS到浏览器直播
【发布时间】:2016-02-27 20:39:25
【问题描述】:

我正在尝试从手机 (iOS) 捕获实时流并将其显示在浏览器中。

我已经开始捕获工作,我可以看到在我的服务器上创建了大约 2 秒的 mp4 文件块。

这就是我卡住的地方。我该怎么做才能创建流并在浏览器中显示?有很多关于ffmpeg 的好信息,但我不太了解流程。我该如何处理这些小的 mp4 文件并创建一个流?我可以使用<video>标签吗?

我发现这个:Streaming via RTSP or RTP in HTML5rtp://myserver.com/path/to/stream 在答案中被提及。如何从这些 mp4 文件创建这样的流?

谢谢。

【问题讨论】:

    标签: ios live-streaming


    【解决方案1】:

    我认为对您来说最简单的解决方案可能是使用媒体服务器,一个很好的例子是 wowza 流媒体引擎,有了它,您可以使用支持的编码技术之一轻松摄取实时视频(rtmp 是一个常见且易于访问的示例) 并选择您喜欢的输出格式,然后您可以使用适当的格式在您的浏览器或其他设备中播放

    更新:你也可以使用 ffmpeg 捕获输入并将其转换为 HLS,示例命令

    ffmpeg -i INPUT -y -threads 4 -c:a aac -strict -2 -b:a 128000 -ac 2 -s 640x360 -c:v libx264 -b:v 800000 -vprofile baseline -preset medium -x264opts level=31 -hls_time 3 -hls_list_size 10 -hls_wrap 30 -start_number 1 output.m3u8
    

    这将创建一个您可以在浏览器上轻松播放的 HLS 流

    【讨论】:

    • Wowza 不是免费的,对吧?我认为必须有一些使用ffmpeg concat 和/或ffserver 的解决方案。 Apache 也有用于直播的模块。 Wowww 听起来很简单,但需要一个免费的解决方案。例如,Twitch 或其他直播应用程序如何做?用flv播放器怎么样?通过 flv 播放器对 flv 文件进行直播可以做什么?谢谢!
    • 我正在使用示例 ffmpeg 命令更新我的答案,希望对您有所帮助
    • 谢谢,我会试试这个命令,并相应地更新/接受。
    • 这样ffmpeg 命令将创建该输出播放列表文件,但对于直播,我有不断添加到输入的文件。如果我确实有<video src="....m3u8">,即使我将新的 mp4 文件附加到播放列表,浏览器也不会知道,对吧?所以,这只是解决方案的一半。
    • 我一直在尝试使用 node.js fs createReadStream,并提供 startend 选项。标题是:206Content-Range: bytes start-end/total。用我的movie1.mp4,效果很好!当<video> 到达缓冲电影的末尾时,它会自动请求下一个块。多个文件会出现问题:movie1.mp4、movie2.mp4 等。我不知道这是否可能,但是一旦范围超出movie1.mp4,我就会将movie2.mp4 的数据发回。不过这里有一些问题。感谢您的帮助。
    猜你喜欢
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多