7.9. ivtv 驱动程序

作者:Hans Verkuil <hverkuil@xs4all.nl>

这是 Conexant cx23415/6 MPEG 编码器/解码器的 v4l2 设备驱动程序。cx23415 可以进行编码和解码,cx23416 只能进行 MPEG 编码。目前,唯一具有完整解码支持的卡是 Hauppauge PVR-350。

注意

  1. 此驱动程序需要最新的编码器固件(版本 2.06.039,大小为 376836 字节)。从此处获取固件

    https://linuxtv.org/downloads/firmware/#conexant

  2. “普通”电视应用程序不适用于此驱动程序,您需要一个可以处理 MPEG 输入的应用程序,例如 mplayer、xine、MythTV 等。

IVTV 项目的主要目标是为基于 iCompression iTVC15 或 Conexant CX23415/CX23416 MPEG 编解码器的视频采集卡提供一个“干净的”Linux 开源驱动程序实现。

7.9.1. 功能

  • 通过调谐器或 S-Video/复合视频和音频线路输入进行广播视频(和声音)的硬件 mpeg2 捕获。

  • 在存在硬件支持的情况下,硬件捕获 FM 收音机的 mpeg2

  • 支持具有立体声的 NTSC、PAL、SECAM

  • 支持 SAP 和双语传输。

  • 支持原始 VBI(隐藏字幕和图文电视)。

  • 支持切片 VBI(隐藏字幕和图文电视),并且能够将其插入捕获的 MPEG 流中。

  • 支持原始 YUV 和 PCM 输入。

7.9.2. PVR-350(基于 CX23415)的其他功能

  • 提供硬件 mpeg2 回放

  • 提供全面的 OSD(屏幕显示:即覆盖在视频信号上的图形)

  • 提供帧缓冲区(允许 X 应用程序显示在视频设备上)

  • 支持原始 YUV 输出。

重要提示:如果出现问题,请先阅读此页面

https://help.ubuntu.com/community/Install_IVTV_Troubleshooting

7.9.3. 另请参阅

https://linuxtv.org

7.9.4. IRC

irc://irc.freenode.net/#v4l


7.9.5. 设备

目前最多允许 12 个 ivtv 板。

不具有视频输出功能的卡(即非 PVR350 卡)缺少 vbi8、vbi16、video16 和 video48 设备。它们也不支持用于 OSD 的帧缓冲区设备 /dev/fbx。

radio0 设备可能会也可能不会存在,具体取决于该卡是否有无线电调谐器。

这是基本 v4l 设备的列表

crw-rw----    1 root     video     81,   0 Jun 19 22:22 /dev/video0
crw-rw----    1 root     video     81,  16 Jun 19 22:22 /dev/video16
crw-rw----    1 root     video     81,  24 Jun 19 22:22 /dev/video24
crw-rw----    1 root     video     81,  32 Jun 19 22:22 /dev/video32
crw-rw----    1 root     video     81,  48 Jun 19 22:22 /dev/video48
crw-rw----    1 root     video     81,  64 Jun 19 22:22 /dev/radio0
crw-rw----    1 root     video     81, 224 Jun 19 22:22 /dev/vbi0
crw-rw----    1 root     video     81, 228 Jun 19 22:22 /dev/vbi8
crw-rw----    1 root     video     81, 232 Jun 19 22:22 /dev/vbi16

7.9.6. 基本设备

对于您拥有的每张额外的卡,数字都会增加一。例如,/dev/video0 列为“基本”编码捕获设备,因此我们有

  • /dev/video0 是第一张卡(卡 0)的编码捕获设备

  • /dev/video1 是第二张卡(卡 1)的编码捕获设备

  • /dev/video2 是第三张卡(卡 2)的编码捕获设备

请注意,如果第一张卡没有某个功能(例如没有解码器,因此没有 video16),则第二张卡仍将使用 video17。简单的规则是“将卡号添加到基本设备号”。如果您有其他首先被检测到的捕获卡(例如 WinTV PCI),那么您必须告诉 ivtv 模块,它将从 1(或 2,或任何数字)开始计数。否则,设备编号可能会令人困惑。可以使用 ivtv “ivtv_first_minor” 模块选项。

  • /dev/video0

    编码捕获设备。

    只读。

    从此设备读取会得到 MPEG1/2 程序流。示例

    cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit)
    
  • /dev/video16

    解码器输出设备。

    只写。仅当存在 MPEG 解码器(即 CX23415)时才存在。

    发送到此设备的 mpeg2 流将显示在选定的视频显示器上,音频将显示在线路输出/音频输出上。它仅适用于支持视频输出的卡。示例

    cat my.mpg >/dev/video16
    
  • /dev/video24

    原始音频捕获设备。

    只读

    来自当前选定的调谐器或音频线路输入的原始音频 PCM 立体声流。从此设备读取会产生原始(有符号 16 位小端,48000 Hz,立体声 pcm)捕获。此设备仅捕获音频。将来应将其替换为 ALSA 设备。请注意,没有相应的原始音频输出设备,解码器固件不支持此功能。

  • /dev/video32

    原始视频捕获设备。

    只读

    来自当前视频输入的原始 YUV 视频输出。YUV 格式是 16x16 线性平铺 NV12 格式 (V4L2_PIX_FMT_NV12_16L16)

    请注意,YUV 和 PCM 流没有同步,因此它们的用途有限。

  • /dev/video48

    原始视频显示设备。

    只写。仅当存在 MPEG 解码器(即 CX23415)时才存在。

    将 YUV 流写入卡的解码器。

  • /dev/radio0

    无线电调谐器设备。

    无法读取或写入。

    用于启用无线电调谐器并调谐到某个频率。您无法使用此设备读取或写入音频流。使用此设备调谐无线电后,请使用 /dev/video24 读取原始 pcm 流或使用 /dev/video0 获取具有黑色视频的 mpeg2 流。

  • /dev/vbi0

    “垂直消隐间隔”(图文电视、CC、WSS 等)捕获设备。

    只读

    捕获在垂直消隐间隔期间发送的原始(或切片的)视频数据。此数据用于编码图文电视、隐藏字幕、VPS、宽屏信号、电子节目指南信息和其他服务。

  • /dev/vbi8

    已处理的 vbi 反馈设备。

    只读。仅当存在 MPEG 解码器(即 CX23415)时才存在。

    嵌入在 MPEG 流中的切片 VBI 数据在此设备上重现。因此,在 /dev/video16 上回放录制内容时,您可以从 /dev/vbi8 读取嵌入的 VBI 数据。

  • /dev/vbi16

    vbi “显示”设备。

    只写。仅当存在 MPEG 解码器(即 CX23415)时才存在。

    可用于将切片的 VBI 数据发送到视频输出连接器。