功能目标
将本地视频文件输出为 虚拟摄像头,让 Zoom、Teams、OBS、Chrome 等应用像使用真实摄像头一样调用视频流。
1️⃣ 安装依赖
Ubuntu / Debian 系统(使用 apt)
sudo apt update
sudo apt install ffmpeg v4l-utils v4l2loopback-dkms
Fedora 系统(使用 dnf)
安装基本工具
sudo dnf install ffmpeg v4l-utils
安装 v4l2loopback
方法 1:使用 RPM Fusion(推荐)
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install kmod-v4l2loopback v4l2loopback-utils
方法 2:源码编译
sudo dnf install kernel-devel gcc make git
git clone https://github.com/umlaeute/v4l2loopback.git
cd v4l2loopback
make
sudo make install
2️⃣ 创建虚拟摄像头
sudo modprobe v4l2loopback devices=1 video_nr=10 card_label="VirtualCam" exclusive_caps=1
说明:
devices=1:创建 1 个虚拟摄像头video_nr=10:虚拟摄像头设备路径/dev/video10card_label:摄像头名称exclusive_caps=1:兼容 Zoom、Chrome 等应用
验证设备:
ls /dev/video*
v4l2-ctl --list-devices
3️⃣ 将视频输出到虚拟摄像头
假设视频文件为 video.mp4:
ffmpeg -re -i video.mp4 \
-f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10
参数说明:
-re:按视频原始帧率播放-f v4l2:输出到 V4L2 设备-vcodec rawvideo -pix_fmt yuv420p:确保兼容大多数应用
4️⃣ 可选优化
循环播放
ffmpeg -stream_loop -1 -re -i video.mp4 \
-f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10
调整分辨率
ffmpeg -re -i video.mp4 -vf scale=1280:720 \
-f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10
指定帧率
ffmpeg -re -i video.mp4 -r 30 \
-f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10
5️⃣ 测试虚拟摄像头
- 使用 ffplay:
ffplay /dev/video10
- 在 Zoom、Teams、OBS、Chrome 等应用中选择摄像头
VirtualCam。
6️⃣ 小贴士
- Fedora 内核更新后,可能需要重新加载
v4l2loopback或使用akmod-v4l2loopback自动重建模块。 - Chrome/Zoom 等应用无法识别虚拟摄像头时,请确保
exclusive_caps=1已设置。 - 无限循环播放适合做演示或虚拟会议背景。