SDB:Dvsource-alien howto
从 [github/jnweiger/dvswitch 分支 susedevel] 下载源代码,从 [pmbs://home:jnweiger] 下载二进制文件
dvsource-alien 是 Jürgen Weigert 编写的 dvswitch 扩展。它允许将 dvswitch 系统与非火线设备连接。大多数这些设备比官方推荐的 Canon HV30 或 Twinpact 100 更便宜或更容易购买。目前支持两种设备类型
- V4L2 设备 - 这些设备在您的系统中显示为 /dev/video*,包括
- USB 网络摄像头(作为广角备用摄像头非常有用)
- VGA2USB 帧采集器(非常有用,可以替代稀有且昂贵的 twinpact 100 设备)。
- 复合视频采集器。
- 远程网络摄像头 - 可以通过 stdin 或(借助 curl)从 HTTP URL 接收 MJPEG 流。
大多数这些设备不符合 DV-PAL 或 DV-NTSC 的严格视频性能要求。以下问题通常会阻止这些设备与 dvswitch 一起使用
- 帧速率通常较低。低于 25fps (30fps) 并且随时间不完全恒定。这对于远程网络摄像头尤其如此,它们通常每秒只能生成 10 到 15 帧。帧速率也可能(暂时)高于 DV 系统速率。
- 延迟较高。可以看到明显的延迟。通常这是由于缓冲区随时间而填满造成的。
- 音频要么未提供,要么采样率不正确。
Dvsource-alien 完全将设备与 dvswitch 系统分离,无论帧速率、分辨率、宽高比和音频如何。帧以设备可以产生的最快速度捕获,以任何分辨率。作为一种很好的副作用,这有效地防止了缓冲区填满,从而使延迟出奇地低。如果存在音频,则忽略音频,并以完全 48000hz 的频率提供合成静音音频轨道。(版本 0.6 尚未支持 32000hz 采样率。)
DV 视频数据(包括音频)使用 dvsource-file 中的高精度计时器代码进行时钟同步。请注意,目前没有进行时间插值。帧会根据需要被丢弃或重复。视频分辨率将被重新缩放以满足 DV 系统的确切帧格式。libswscale 中的快速双线性算法用于执行此空间插值。
这些设备已成功使用 dvsource-alien 进行测试
Epiphan KVM2USB
这是一个非常可靠的帧采集器。Epiphan 为 SUSE Linux 提供了专有的 [设备驱动程序]。他们的支持热线 (info@epiphan.com) 非常响应迅速且乐于助人。应要求,他们提供特殊内核风味或版本的驱动程序(感谢 Pavel,支持 SUSE Linux。)Raspbian 也受支持,请参阅下文。
他们的 v4l2 驱动程序以 1024x768 的视频发送。屏幕左边缘可能会丢失一些像素,而右边缘会添加一小条黑色边框。我们使用以下裁剪来调整图像以完全匹配
dvsource-alien -c -12:13:1:5 /dev/video0
请注意 -12 的负填充,这仅允许因为我们牺牲了顶部的一个像素,以便完全保留在视频内存中(否则立即发生段错误)。
另请注意电源要求。KVM2USB 没有电源,但从 USB 端口汲取 1A 的电流。建议使用 Y 型电缆。(RaspberryPI 的 USB 端口非常弱。如果没有额外的电源,可能根本无法工作。)
Logitech C 270
- 驱动程序:uvcvideo,
- 设备:UVC 1.00 Camera
黑色外壳,镜头附近标有“HD 720”。此网络摄像头可以提供高达 1184x656 的分辨率。在 dvswitch 中看到的延迟约为 300 毫秒。出色的品质!
Logitech C 110
此网络摄像头可以提供高达 1024x768 的分辨率,但与默认提供的 640x480 分辨率相比,锐度几乎没有提高。
这些命令会使图像变暗或变暗
v4lctl bright 5 v4lctl contrast 5 v4l2-ctl -c contrast=30 -c brightness=80
这些会使其更亮更硬
v4lctl bright 15 v4lctl contrast 15 v4l2-ctl -c contrast=80 -c brightness=160
相机可以直接发送 MJPEG。这是 WiRC 使用的功能,但 dvsource-alien 目前尚未支持,它当前要求 V4L2 提供未压缩的 PIC_FMT_RGB24。
Logilink VG0001
此适配器可以接收模拟复合视频或 Y/C 视频以及立体声音频。默认情况下,它以 NTSC 模式启动,不确定为什么。分辨率为 720x480。(芯片组 SAA71)
USB ID "05e1:0408", Internal name: Syntek EasyCAP.
Linux 驱动程序:stk1160 saa715(都需要)
v4lctl setnorm pal v4lctl setinput S-Video v4lctl setinput Composite0
有时会出错,例如
stk1160: cannot alloc 196608 bytes for tx[0] buffer
这些命令帮助了我
# disconnect usb rmmod stk1160 rmmod saa7115 # connect usb sudo v4lctl setnorm pal sudo v4lctl setinput S-Video xawtv
Canon PowerShot SX210
这款袖珍照相机在其迷你 USB 端口上具有模拟复合输出(需要特殊的佳能 6 针 USB 电缆)。视频输出包含来自背板 LCD 的叠加层,并在相机闲置一段时间后切换为黑色。
dvsource-alien -g 1024 -c 70:115:68:60
可用于裁剪屏幕边缘附近的全部叠加显示。在摄像机模式或自动拍照模式下,除非用户缩放或操作对焦,否则不会显示叠加层。可以从菜单中禁用闲置时缩回镜头、闲置时关闭电源。但闲置时切换为黑色的最长时间为 3 分钟。
半按快门键会重新启动 3 分钟计时器。也许 CHDK 可以用来绕过这个限制?由于可用的裁剪分辨率有限,因此最好将其用作 PIP 插入。
GOPRO Hero 3 Black
这款相机在其迷你 USB 连接器上具有模拟复合视频输出。这与佳能不兼容,需要特殊的电缆。无法测试。
超广角镜头使其成为一个很有前途的设备。
USBVision USB VIDEO ADAPTER
- 驱动程序:usbvision
- 设备:USBGear USBG-V1
- 芯片组:saa7115
此适配器可以接收模拟 Y/C 视频以及单声道音频通道 - 可以修改复合输入。驱动程序提供最大 320x240,并冻结。
v4l-info 也会冻结。
无法使用。
Android IP Webcam
此应用程序在 Samsung Galaxy S2 上流畅运行,默认分辨率为 640x480。更高的分辨率是可能的,但可能会占用 WLAN 的过多带宽。
要连接到该应用程序,智能手机应与运行 dvsource-alien 的计算机位于同一 WLAN 中。智能手机的屏幕在底部附近显示一个 IP 地址和端口号。例如 149.44.171.12:8080。在那里提供了一个网页,解释了如何连接的各种选项。Firefox 可以正常工作。可以进行多个连接。
在 dvsource-alien 的 0.6 版本中,可以使用以下命令进行连接
dvsource-alien http://149.44.171.12:8080/video curl -s http://149.44.171.12:8080/video | dvsource-alien -
帧速率非常高,提供流畅清晰的视频,如果应用程序设置为“尽可能快”。
这可用于在演讲者在桌子前进行演示时进行特写拍摄。智能手机真正充当极其轻便便携的摄像头。
请注意,智能手机在运行 IP 网络摄像头应用程序 10 分钟或更长时间后会变热。电池寿命可能会成为一个问题。
Dension WiRC
WiRC 官方作为 RC 接收器单元出售,通过您的 iPhone 或 Android 智能手机控制 RC 模型汽车。在 WiRC 盒子里,一个嵌入式 Linux 系统在 240 MHz ARM CPU 上运行。该盒子具有两个 USB 端口和 8 个 rc 伺服端口以及其他 I/O。
一个 USB 端口接收 USB WLAN 适配器。Dension 推荐并销售 TP-Link WN727N 150Mbps。使用此适配器,WiRC 创建一个 WLAN 接入点,您的智能手机可以连接到该接入点。
另一个 USB 端口连接 Logitech Logitech C170 网络摄像头,该网络摄像头将视频流回智能手机(或其他地方)。
视频流为 MJPEG 352 x 288,15 FPS。可以同时连接多个接收器。例如,一个控制汽车的智能手机和 dvsource-wirc。Dvsource-wirc 是从 dension 支持团队发送的官方 SDK 中的 wrc_client 的一个简单改编。
请注意,dvsource-wirc 的这个简单版本不会自动启动摄像头。在它启动后,您需要在“>”提示符后键入两个额外的命令
dvsource-wirc | dvsource-alien ... - > connect 0 > camera 0 start
dvsource-wirc 的源代码 在此
我的 wirc 设备是电池供电的。出于某种原因,它在正确初始化摄像头时遇到问题。也许电压不够稳定。当 dvsource-wirc 或智能手机连接到设备时,摄像头上的绿色 LED 应亮起。如果未亮起,请重新启动电源。
初始化摄像头后,它将完美稳定地工作。另请参阅 http://jorygen.wordpress.com/2012/04/07/wirc-an-inexpensive-fpv-system/
Raspbery PI
这个廉价的 Linux 主机没有足够的计算能力来运行 dvsource-alien。它需要通过 epiphan 的 KVM2USB 捕获 VGA 帧,将其编码为 PAL-DV,并通过以太网发送到 dvswitch 混音器。
使用 logitech C110 网络摄像头和 dvsource-alien 进行测试:我们只有 2-3 帧/秒。也不好。
我们应该尝试像 http://wolfpaulus.com/jounal/embedded/raspberrypi_webcam 中所示的 mjpeg 流动器方法 -- 这可能会获得更好的结果,以便 dvsource-alien(DV 编码器)可以在其他地方运行。
Raspicam
未测试。
Raspberry PI 摄像头板提供来自固定焦距广角镜头的图像。
raspivid -t 999999 -o – | nc ...
可以将其用于以最快的速度流式传输视频。与 DV 格式相比,过高的分辨率应允许软件平移/倾斜/缩放。视频录制的默认大小为 1080p (1920x1080)。摄像头具有 5MP