Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 实时流分割_Video_Video Streaming_Html5 Video_Http Live Streaming_Live Streaming - Fatal编程技术网

Video 实时流分割

Video 实时流分割,video,video-streaming,html5-video,http-live-streaming,live-streaming,Video,Video Streaming,Html5 Video,Http Live Streaming,Live Streaming,如果我不需要自适应视频,那么我可以不分段吗?例如,我是否可以打开WebSocket连接并传输视频文件,客户端将在收到新部分后立即播放。这种方法有什么缺点吗?甚至比这更简单。您可以在没有Web套接字的情况下使用普通HTTP进行这种类型的流式传输。客户端类似于: <video src="https://stream-server.example.com/stream"></video> 然后,无论您在服务器端使用什么,都只需要生成一个具有适当初始化信

如果我不需要自适应视频,那么我可以不分段吗?例如,我是否可以打开WebSocket连接并传输视频文件,客户端将在收到新部分后立即播放。这种方法有什么缺点吗?

甚至比这更简单。您可以在没有Web套接字的情况下使用普通HTTP进行这种类型的流式传输。客户端类似于:

<video src="https://stream-server.example.com/stream"></video>

然后,无论您在服务器端使用什么,都只需要生成一个具有适当初始化信息的流,然后是实时流中的任何位置。浏览器将尽快开始播放,一切正常

这是正常的HTTP渐进式流。它一直与音频一起使用,在大多数情况下不需要自适应比特率,并且可以轻松地进行自同步(MP3、ADT等)。如果不需要自适应比特率,您也可以将其用于视频,并且可以发送初始化数据并将流分块到正确的位置。(如果您不确定如何做到这一点,请使用十六进制编辑器和您所使用的任何容器格式的规范。我发现WebM/Matroska非常容易使用,并且以这种方式为Node.js服务器提供了一些EBML NPM包。)

有几件事需要记住:

  • 服务器负责组装流,因此您将无法使用基于标准文件/blob的CDN。对于很多用例来说,这是不相关的,所以您需要决定它是否对您重要
  • 如果流暂停,浏览器将等待这些数据包到达,或者在极端情况下重新连接。您需要能够通过跟踪发送到客户端的字节偏移量来处理重新连接逻辑。客户端将发出一个远程HTTP请求,以继续它停止的位置,并且您需要能够处理它。(或者,使用几行JavaScript进行修复,以便在出错时重置整个程序。)
  • 从正面来看,这是一种高质量且极其简单的流媒体方式
此外,请研究如何在服务器上使用Icecast。我以前用这种方式发送视频。。。几年没试过了,但我想它仍然有效。如果没有,一个简单的Node.js服务器就可以做到