根据需要转码相机流

问题描述 投票:1回答:1

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

cvlc -vvv -Idummy -q rtsp://user:password@hostname:554 --sout '#transcode{vcodec=MJPG,venc=ffmpeg{strict=1}}:standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8081/}'

这很好用。

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

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

非常感谢你!

http streaming vlc
1个回答
1
投票

我想你问你是否可以从你的服务器运行上面的命令行命令 - 如果是这样,那么它确实取决于服务器和语言,但一般来说是的,你可以。

您的服务器逻辑将是这样的:

当客户端连接时:

  • 如果这是第一个客户端,请运行命令以启动转码
  • 提供到客户端的流的链接

当客户端断开连接时:

  • 如果这是最后一个客户端,请停止转码

由于流被缓冲,第一个客户端会有延迟,但我猜你已经知道了。

运行命令的方式取决于服务器,但您通常可以找到示例 - 例如for Node:qazxsw poi

如果你正在使用Java,那么关于从Java运行cmd行的文章也是非常有用的 - 即使你没有使用Java,它也是很好的阅读:Execute a command line binary with Node.js

© www.soinside.com 2019 - 2024. All rights reserved.