我有一个 Creative Live Cam Connect HD (id: 041e:4093),这个网络摄像头有一个板载 H.264 编码器。不幸的是,v4l2 仅输入 MJPG 格式的提要。
$ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
...
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : MJPEG
基本上我需要使用这个网络摄像头来获取 H.264 源。是否有不同的驱动程序可以用来使用板载编码器,而不必使用 Gstreamer 对我的机器上的源进行编码?
由于没有预构建的驱动程序可以完成我想要的操作,因此我正在尝试编写自己的驱动程序。我找到了很多编写 Linux 驱动程序的资源,但不是专门针对网络摄像头的。您能给我指出一些资源或概述我需要做什么吗?我以前从未写过驱动程序。
答案1
从:http://sourceforge.net/p/linux-uvc/mailman/linux-uvc-devel/?viewmonth=201303(~80%)
你使用的是什么内核版本?
据我记得,从 3.2(或者是 3.3?)开始,uvc 驱动程序中应该有 h264 支持。
如果 v4l2-ctl 没有列出除 MJPG 之外的任何内容,则可能是因为相机本身不支持 H264 原始流,而仅支持嵌入 MJPG 帧中的 H264(这是 Skype/Windows 用于 h264 编码相机的内容)。
我建议您尝试使用 uvch64_src (请参阅 http://kakaroto.homelinux.net/2012/09/uvc-h264-encoding-cameras-support-in-gstreamer/)
如果它支持 h264,它应该能够使用它(尽管我从未测试过该相机)。