我想将视频发送到 /dev/video0 上加载的 Ubuntu 上的网络摄像头设备
我已经看到了这个向它发送桌面的命令,但有没有办法向它发送视频?
ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
我应该提到我特别想使用 ffmpeg 命令。
llo*_*gan 35
你可以用v4l2loopback做到这一点。首先你需要安装它:
sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback
Run Code Online (Sandbox Code Playgroud)
这很容易,但旧版本的 v4l2loopback 有一些已知的错误,所以如果遇到任何问题,请考虑编译它。
如果它不在您的 Ubuntu 版本的存储库中,或者您想要最新版本,您可以编译它:
sudo apt-get install build-essential checkinstall
wget https://github.com/umlaeute/v4l2loopback/archive/main.zip
unzip main.zip
cd v4l2loopback-main
make
sudo checkinstall --pkgname=v4l2loopback --pkgversion="$(date +%Y%m%d%H%M)-git" --default
sudo modprobe v4l2loopback
Run Code Online (Sandbox Code Playgroud)
如果要删除编译的包:
sudo apt-get remove v4l2loopback
Run Code Online (Sandbox Code Playgroud)
请注意,实际video数量可能会有所不同,具体取决于现有设备是否已在使用/dev/video0。检查ls /dev/video*或 的输出v4l2-ctl --list-devices。
ffmpeg -f x11grab -framerate 15 -video_size 1280x720 -i :0.0 -f v4l2 /dev/video0
Run Code Online (Sandbox Code Playgroud)
ffmpeg -re -i input.mp4 -map 0:v -f v4l2 /dev/video0
Run Code Online (Sandbox Code Playgroud)
ffmpeg -re -loop 1 -i input.jpg -vf format=yuv420p -f v4l2 /dev/video0
Run Code Online (Sandbox Code Playgroud)
使用绘图文本过滤器:
ffmpeg -f v4l2 -i /dev/video0 -vf "drawtext=text='Hello World':fontsize=12:fontcolor=white:font=Arial:x=w-tw-10:y=h-th-10,format=yuv420p" -f v4l2 /dev/video1
Run Code Online (Sandbox Code Playgroud)
使用chromakey、overlay和format过滤器:
ffmpeg -re -i background.jpg -f v4l2 -i /dev/video0 -filter_complex "[1]chromakey=color=#326964:similarity=0.07:blend=0.02[fg];[0][fg]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:format=auto,format=yuv420p" -f v4l2 /dev/video1
Run Code Online (Sandbox Code Playgroud)
请参阅如何定位叠加层?
ffplayffplay /dev/video0
Run Code Online (Sandbox Code Playgroud)
请参阅此答案以获取解决方案。
| 归档时间: |
|
| 查看次数: |
36079 次 |
| 最近记录: |