繁体   English   中英

按需转码摄像机流

[英]Transcoding camera stream on demand

我正在使用 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 内核。

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

非常感谢!

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

您的服务器逻辑将类似于:

当客户端连接时:

  • 如果这是第一个客户端,运行命令开始转码
  • 向客户端提供流的链接

当客户端断开连接时:

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

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

运行命令的方式取决于服务器,但您通常可以找到示例 - 例如对于 Node:使用 Node.js 执行命令行二进制文件

如果您使用的是 Java,还有一篇关于从 Java 运行 cmd 行的众所周知且有用的文章 - 即使您不使用 Java,这也是一个很好的阅读: https : //www.javaworld.com/article/2071275/core -java/when-runtime-exec---won-t.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM