我长期以来一直使用Yawcam来满足我的基本网络摄像头流媒体需求,并取得了巨大的成功。最近,我遇到了一个非营利组织的项目,我自愿参加该项目,他们希望在他们的公共页面上流式传输网络摄像头。当我最终无法再支持它时,我正在尝试使系统尽可能简单和得到很好的支持。
考虑到这一理念,我正在尝试过渡到 VLC,因为它的支持在整个网络上都非常棒。我写了一个似乎可以完成工作的小命令(我是新手,所以如果写得不好,我深表歉意):
"C:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy dshow:// :dshow-vdev="HD 720P Webcam" :dshow-adev=:live-caching=300 :sout=#transcode{vcodec=theo,vb=800,scale=1,width=600,height=480,acodec=mp3}:http{mux=ogg,dst=127.0.0.1:8081/desktop.ogg} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep
我从网络上的几个不同来源和 VLC 生成的命令中获取了这些元素。
我的 HTML 文件非常简单,并且使用了video标签。
<!DOCTYPE html>
<html>
<head>
<title>Video Test</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</head>
<body>
<video id="video" src="http://localhost:8081/desktop.ogg" type="video/ogg; codecs=theora" autoplay="autoplay">
</body>
</html>
这很好用!我当前的机器上大约有 2 秒的延迟,但这对于当前的应用程序来说并不重要(尽管非常欢迎关于如何将其减少到大约 100-200 毫秒的建议)。
我不知道该怎么做(我是嵌入式系统工程师,而不是 Web 开发人员),是使用这些概念使许多用户一次有效地访问系统。根据它现在的工作方式,我假设这是一个点对点连接。因此,网络摄像头需要连接到服务器(目前只是我桌子上的一台 PC)。显然,我没有托管可以处理他们希望的那种流量的服务器。是否有一些服务器端代码可以在连接到网络摄像头的地方运行并将流转发给任何请求访问的人?我没有看过他们的服务器,但我很确定他们在动物收容所外托管了某种 linux 计算机。
我希望使架构:
PC 运行网络摄像头托管单个流 -> Web 服务器读取流并转发给请求者 -> 用户接收流
我知道我有很大的知识差距,但如果有人能指出我的参考资料,可能会引导我走向正确的方向,我会快速学习!
非常感谢您的任何建议!