7.10. 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.10.1. 功能

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

  • 在硬件支持的情况下,进行 FM 广播的硬件 mpeg2 采集。

  • 支持 NTSC、PAL、SECAM 制式,带立体声。

  • 支持 SAP 和双语传输。

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

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

  • 支持原始 YUV 和 PCM 输入。

7.10.2. PVR-350(基于 CX23415)的附加功能

  • 提供硬件 mpeg2 播放。

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

  • 提供帧缓冲(允许 X 应用程序出现在视频设备上)。

  • 支持原始 YUV 输出。

重要提示:如果遇到问题,请首先阅读此页面:

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

7.10.3. 另请参阅

https://linuxtv.org

7.10.4. IRC

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


7.10.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.10.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 数据发送到视频输出连接器。