我有一台连接了 USB 网络摄像头的电脑。我目前使用 OBS 全天候向远程流媒体服务进行直播。
但是,如果我尝试从同一台相机使用 ffmpeg 或 opencv 来实现不同的目的,/dev/video0当 OBS 进行流式传输时将不可用/繁忙。
我如何使用 ffmpeg 来制作/dev/video0网络摄像头的供稿可用(未压缩/原始)在同一台计算机上运行的多个客户端/进程,同时最好将耗费资源的编码/解码/重新编码的需求降至最低?(PC 是半土豆)
ffplay -f video4linux2 -list_formats 全部/dev/video0
给我:
[video4linux2,v4l2 @ 0x7ffa10000bc0] Raw : yuyv422 : YUYV 4:2:2 : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360 752x416 800x448 800x600 864x480 960x544 960x720 1024x576 1184x656 1280x720 1280x960
[video4linux2,v4l2 @ 0x7ffa10000bc0] Compressed: mjpeg : Motion-JPEG : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360 752x416 800x448 800x600 864x480 960x544 960x720 1024x576 1184x656 1280x720 1280x960
一些可能相关的说明:
- 相机的进给分辨率1280x720 @~25帧/秒对于我的用例来说是不必要的,然后可能就不需要被缩小到那个分辨率了。
- ffmpeg v4l2/video4linux 文档:https://ffmpeg.org/ffmpeg-devices.html#toc-video4linux2_002c-v4l2
- 如何列出 Linux 中 USB 网络摄像头可用的视频模式?
此外,如果有比使用 ffmpeg 更好的软件解决方案来实现此目的,我也会很感激任何有关此方面的提示。