拉流¶
拉流指的是从某个网络源(通常是一个实时流媒体服务器)获取媒体流(视频或音频流)并进行处理或保存的过程。
方案一:使用opencv直接处理摄像头视频流¶
opencv本身就可以直接与摄像头交互,而其实Opencv内部调用了FFmpeg库来处理视频流。
Python | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
方案二: 利用libuvc进行拉流¶
1. 安装库文件 libuvc.so¶
Bash | |
---|---|
1 2 3 4 5 6 7 |
|
Tip
上面编译过程中需要安装libusb-1.0
sudo apt-get install libusb-1.0-0-dev
如果存在版本依赖问题,强制安装与libusb-1匹配的版本环境。sudo apt-get install libusb-1.0-0=2:1.0.25-1ubuntu1
2.设置USB权限¶
当插入一个新的摄像头设备时,系统将自动按照这条规则调整设备的用户组和权限,使得所有用户都可以访问设备,而不再需要使用 sudo。这样,可以在不使用 sudo 的情况下运行程序来访问摄像头。
- 在
/etc/udev/rules.d
下新建文件99-usbcam.rules
- 打开文件
sudo vim 99-usbcam.rules
, 添加SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="08cc", MODE="0666"
- 保存文件并退出
- 重新加载udev规则:
sudo udevadm control --reload-rules
sudo udevadm trigger
这将重新加载所有的udev
规则,并立即应用新的规则.