用 FFmpeg 视频源给 Neko 挂一个循环播放的虚拟摄像头:3 步跑通教程
【免费下载链接】nekoA self hosted virtual browser that runs in docker and uses WebRTC.项目地址: https://gitcode.com/GitHub_Trending/ne/neko
机器上没有摄像头,却要让应用持续读到一段固定画面。Neko 是一个跑在 Docker 里的自托管虚拟浏览器,下面带你把视频文件接成虚拟摄像头,并让它一直循环播放。
🧩 它为什么能做到
Neko 在 Docker 里跑着一套真实桌面。开启虚拟摄像头功能后,系统里会出现一个虚拟摄像设备,你只需把视频信号持续写进这个设备,需要摄像头的应用就会从它那里取画面。换句话说:不插摄像头,用视频文件当信号源。
🛠️ 从准备到跑通
启动 Neko 服务器
先在机器上装好 Docker 和 Docker Compose,拉取 Neko 镜像并启动,具体步骤见 安装文档。
docker compose up -d打开浏览器访问http://localhost:8080,默认密码是neko,能登录就说明服务端跑起来了。
加载虚拟摄像设备
服务端需要 v4l2loopback 内核模块,它负责在系统里造出一个虚拟摄像设备。注意要带exclusive_caps=1启动,这样多个应用可以同时读它。命令示例见 音频与视频捕获文档 的 Webcam 一节。
如果 Neko 跑在容器里,还得把设备节点挂进容器:
services: neko: devices: - /dev/video0:/dev/video0指定视频文件作为摄像头输入源
现在用 FFmpeg 把本地视频读出来,一路写进刚造好的虚拟设备。输出路径和挂载的节点保持一致,输入源换成你自己的视频文件即可。
ffmpeg -re -i sample.mp4 -f v4l2 /dev/video0让视频一直循环并启用虚拟摄像头
在上面的 FFmpeg 命令里加上-stream_loop -1,视频播完就会自动从头再来,画面不会中断。接着在 Neko 的配置里打开虚拟摄像头,设备指向/dev/video0,分辨率按需调整,默认是 1280x720:
capture: webcam: enabled: true device: "/dev/video0"🔍 卡住时查这里
- 系统里没有 /dev/video0:确认 v4l2loopback 模块是否加载成功,以及是否带了
exclusive_caps=1。 - 摄像头画面黑屏:确认 FFmpeg 进程还在运行,输出路径和 Neko 配置里的设备一致。
- Neko 里读不到摄像头:确认容器已挂载设备节点,配置里
enabled为true。
✅ 收尾
到这里,你已经有了一台不需要实体摄像头的 Neko 服务器,视频文件作为输入源可以无限循环。下一步可以调一下虚拟摄像头的分辨率,或者把输入源换成直播流,更多细节可查 音频与视频捕获文档 和 服务端配置源码。
【免费下载链接】nekoA self hosted virtual browser that runs in docker and uses WebRTC.项目地址: https://gitcode.com/GitHub_Trending/ne/neko
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考