![v4l2,通过 USB 摄像头进行视频捕获帮助](https://linux22.com/image/868314/v4l2%EF%BC%8C%E9%80%9A%E8%BF%87%20USB%20%E6%91%84%E5%83%8F%E5%A4%B4%E8%BF%9B%E8%A1%8C%E8%A7%86%E9%A2%91%E6%8D%95%E8%8E%B7%E5%B8%AE%E5%8A%A9.png)
因此,我尝试使用此 C 代码通过 vlc 使用我的 USB 摄像头捕捉视频->视频捕获示例。编译并运行到终端后,我有一个文件,它应该是我的视频数据,应该由 VLC 使用(显然它不是视频格式),但我不知道该怎么做。有什么想法吗?
答案1
检查系统是否知道您的网络摄像头的最简单方法是使用命令lsusb
、ls -l /dev/video*
和hwinfo --usb
。对于大多数应用程序,您应该位于用户组视频中。您应该尝试通过命令启动 VLC 以打开您的网络摄像头,以查看 VLC 是否可以从启动时直接使用它:https://help.ubuntu.com/community/Webcam#VLC
在您的 C 代码示例中,main 开头有网络摄像头设备文件“/dev/video0”。您可以通过上面的 VLC 命令对此进行测试。
更多信息:http://www.linuxintro.org/wiki/Set_up_a_Webcam_with_Linux
有file
命令:man 1 file
。这告诉您有关输出文件的什么信息?也许您的 libv4l-example 的输出确实是垃圾。我不明白您的问题,您的 libv4l-C-code-example 与 vlc 有什么关系。在我看来,您的示例正在抓取 RAW 视频数据到输出。这可以通过 vlc 命令进行测试:参见https://stackoverflow.com/questions/20882375/playing-yuv-on-vlc-player