我已经构建了一个php crud应用程序,允许用户上传视频并将其排队进行转换,我使用FFMPEG将它们转换为M3U8播放列表格式。我现在需要构建一个流媒体服务器,允许我实时播放这些文件,这样当用户浏览页面时,他们就会看到当前播放的视频。我知道nodejs具有流媒体功能,并且已经对视频流进行了大量的研究,而且还很短。有人能指出我正确的方向吗?我通过使用网络套接字有一个概念,但我找不到一个可以帮助我解决问题的例子。
答案 0 :(得分:2)
如果您想将上传的视频播放为video-on-demand (VOD)
,您只需将生成的细分和 m3u8 播放列表放在可通过网络服务器访问的网络可访问目录中
您可以使用node.js通过提供即时生成的 m3u8 ,根据您的完整播放列表轻松模拟live playlist
。
例如:
i - n
段,其中n
是您所需的滑动窗口大小。如果当前窗口大小小于目标持续时间的三倍,则增加n
。使用i - n
作为#EXT-X-MEDIA-SEQUENCE
值。n
结果段通过正确管理时间偏移,您还可以进行时移等。为了性能,请将播放时间段保存在memcached
之内。
答案 1 :(得分:1)
您正在构建一个视频流平台,这是一件非常难以做到的事情(它不仅仅是简单地将二进制流从节点服务器传送到客户端,而是您所想的)。
您正在考虑使用提供该功能的服务,例如Microsoft Azure Media Services。我了解亚马逊AWS也有这样的服务,但你需要检查一下,我只有微软AMS的经验。
实际上,这样的服务将允许作为直播事件向客户端回放HLS,MP4分段和MPEG-DASH格式,甚至提供针对不同比特率/分辨率的自适应流传输能力。您可以看到示例HERE,并检查这是否是您要查找的内容。