Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Http 按需转码摄像机流_Http_Streaming_Vlc - Fatal编程技术网

Http 按需转码摄像机流

Http 按需转码摄像机流,http,streaming,vlc,Http,Streaming,Vlc,我使用VLC通过以下命令将rtsp流从IP摄像机转换为http mjpg流: cvlc-vvv-Idummy-qrtsp://user:password@主机名:554--sout'#transcode{vcodec=MJPG,venc=ffmpeg{strict=1}}:标准{access=http{mime=multipart/x-mixed-replace;boundary=-7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8081/}

我使用VLC通过以下命令将rtsp流从IP摄像机转换为http mjpg流:


cvlc-vvv-Idummy-qrtsp://user:password@主机名:554--sout'#transcode{vcodec=MJPG,venc=ffmpeg{strict=1}}:标准{access=http{mime=multipart/x-mixed-replace;boundary=-7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8081/}'

这个很好用

我不需要一直对流进行转码,只需要对其中的一小部分进行转码。 即使没有连接客户端,VLC也在进行代码转换。它一直在我的服务器上使用整个CPU核心

是否有可能仅在至少一个客户端连接时才开始转码,而在最后一个客户端断开连接时停止转码


多谢各位

我想您是在问是否可以从服务器上运行上面的命令行命令-如果可以,那么它确实取决于服务器和语言,但通常是可以的

您的服务器逻辑类似于:

当客户端连接时:

  • 如果这是第一个客户端,请运行命令以启动代码转换
  • 向客户端提供流的链接
当客户端断开连接时:

  • 如果这是最后一个客户端,请停止转码
当流被缓冲时,第一个客户端会有延迟,但我猜您已经知道了

运行命令的方式取决于服务器,但通常可以找到示例-例如,对于节点:

如果您正在使用Java,还有一篇关于从Java运行cmd行的非常广为人知且有用的文章——即使您没有使用Java,阅读这篇文章也很不错: