You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何远程HTTP流传输无桌面Ubuntu Server上的USB摄像头画面

如何远程HTTP流传输无桌面Ubuntu Server上的USB摄像头画面

嘿,看你已经搞定了VPN SSH和摄像头的基础验证,那咱们直接用Ubuntu Server里现成的开源工具就能搞定HTTP远程流,完全不用掏一分钱买付费服务。给你俩靠谱的方案,都是无桌面环境下能直接跑的:

方案一:用VLC(你已经熟悉的工具)

首先确保VLC已经装了,没装的话SSH进去跑:
sudo apt update && sudo apt install vlc -y

然后直接用这条命令启动HTTP流(参数都给你调好了,适合浏览器访问):

cvlc -I dummy v4l2:///dev/video0 \
  --sout '#transcode{vcodec=h264,scale=1,width=640,height=480,acodec=none}:http{mux=ffmpeg{mux=flv},dst=:8080/stream}' \
  --no-sout-audio

给你拆解下关键参数:

  • -I dummy:强制无界面模式,适合服务器环境
  • v4l2:///dev/video0:指定你的USB摄像头设备(如果有多个摄像头可能是video1,自己调整)
  • transcode{vcodec=h264,...}:把摄像头的原始视频转成浏览器支持的H.264编码,同时关闭音频(你不需要)
  • http{mux=flv,...}:用FLV封装流,通过8080端口对外提供,路径是/stream

如果想让SSH断开后流还能继续跑,就用nohup后台启动:
nohup cvlc -I dummy v4l2:///dev/video0 --sout '#transcode{vcodec=h264,scale=1,width=640,height=480,acodec=none}:http{mux=ffmpeg{mux=flv},dst=:8080/stream}' --no-sout-audio > /dev/null 2>&1 &

然后你在VPN连接状态下,直接在浏览器里输入 http://192.168.0.10:8080/stream 就能看到画面了。

方案二:用FFmpeg(更轻量,低延迟)

如果觉得VLC有点重,试试FFmpeg,同样是开源免费的:
先安装FFmpeg:
sudo apt update && sudo apt install ffmpeg -y

启动HTTP流的命令(用HLS格式,几乎所有浏览器都支持):

ffmpeg -f v4l2 -i /dev/video0 \
  -vcodec libx264 -preset ultrafast -tune zerolatency \
  -f hls -hls_time 2 -hls_list_size 5 -hls_flags delete_segments \
  http://0.0.0.0:8080/stream.m3u8

参数解释:

  • -f v4l2 -i /dev/video0:指定输入为USB摄像头设备
  • libx264 -preset ultrafast -tune zerolatency:用最快的编码速度和低延迟模式,适合实时流
  • -f hls ...:生成HLS切片流,每个切片2秒,只保留最近5个切片(节省磁盘空间)
  • http://0.0.0.0:8080/stream.m3u8:在8080端口对外提供播放列表

同样,后台运行的话加nohup:
nohup ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -preset ultrafast -tune zerolatency -f hls -hls_time 2 -hls_list_size 5 -hls_flags delete_segments http://0.0.0.0:8080/stream.m3u8 > /dev/null 2>&1 &

浏览器访问的话输入 http://192.168.0.10:8080/stream.m3u8 就行,大部分现代浏览器直接支持HLS,要是不行的话装个HLS插件就行。

注意事项

  • 权限问题:如果运行命令时提示无法访问/dev/video0,把你的用户加入video组:sudo usermod -aG video your_username,然后重新登录SSH生效
  • 端口冲突:如果8080端口被占用了,把命令里的8080改成其他闲置端口(比如8081)
  • 带宽:如果VPN网速慢,可以把命令里的width=640,height=480改成更小的分辨率(比如320x240)来降低带宽消耗

备注:内容来源于stack exchange,提问作者scrollout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:39:52