1.1.4 Digital TV

1.1.4.1 Using the Digital TV Framework

Introduction

数字电视和模拟电视之间一个重要的区别是,尽管 DVB-T 卡的组件结构与模拟电视卡基本相似,但它们的功能方式却大不相同。这一点可能会让像我这样的不谨慎的人疏忽。

模拟电视的目的是接收和显示模拟电视信号。模拟电视信号(也称为复合视频)是通过交织技术栅格化一系列图像帧(欧洲每秒25帧)的模拟编码。因为交替采用两个场来表示一个帧,所以 PC 的模拟电视卡的目的如下:

• 调谐接收广播信号

• 解调广播信号

• 解复用模拟视频信号和模拟音频信号。

注意:有些国家使用嵌入在调制复合模拟信号中的数字音频信号,使用 NICAM 信令。

• 将模拟视频信号数字化,使得产生的数据流能够被传输到数据总线上。

模拟电视卡产生的数字数据流是由卡上的电路生成的,并且通常以未压缩的形式呈现。对于以每秒25帧、分辨率为768x576、采用24位色彩像素编码的 PAL 电视信号来说,产生了相当数量的数据,必须在 PC 上进行处理后才能在视频监视器屏幕上显示。一些用于 PC 的模拟电视卡配备了内置的 MPEG2 编码器,可允许原始数字数据流以编码和压缩的形式呈现给 PC,类似于数字电视中使用的形式。

简单预算的数字电视卡(DVB-T、C或S)的目的非常简单,仅包括以下几点:

• 调谐接收广播信号。

• 从广播信号中提取编码数字数据流。

• 将编码数字数据流(MPEG2)提供给数据总线。

两者之间的显著区别在于模拟电视卡上的调谐器输出模拟信号,而数字电视卡上的调谐器输出压缩的编码数字数据流。由于信号已经被数字化,所以可以轻松地将此数据流传递到 PC 数据总线上,只需要进行最少量的附加处理,然后提取数字视频和音频数据流,并将它们传输到适当的软件或硬件进行解码和播放。

Getting the card going

在 Linux 下,用于 DVB 的设备驱动程序 API 会通过 devfs 文件系统提供以下设备节点:

• /dev/dvb/adapter0/demux0

• /dev/dvb/adapter0/dvr0

• /dev/dvb/adapter0/frontend0

/dev/dvb/adapter0/dvr0 设备节点用于读取 MPEG2 数据流,/dev/dvb/adapter0/frontend0 设备节点用于调谐前端调谐器模块。/dev/dvb/adapter0/demux0 用于控制将接收哪些节目。

根据卡的功能集,设备驱动程序 API 还可以公开其他设备节点。

• /dev/dvb/adapter0/ca0

• /dev/dvb/adapter0/audio0

• /dev/dvb/adapter0/net0

• /dev/dvb/adapter0/osd0

• /dev/dvb/adapter0/video0

/dev/dvb/adapter0/ca0 用于解码加密的频道。其他设备节点仅在使用 av7110 驱动程序的设备上找到,这个驱动程序已经过时,同时其它额外的 API 也被这些设备所使用,现在已不再推荐使用。

Receiving a digital TV channel

这一节试图解释它的工作原理以及它如何影响数字电视卡的配置。

在这个例子中,我们考虑调谐澳大利亚墨尔本地区的 DVB-T 频道。

目前 Mount Dandenong 发射机广播的频率如下:

表1. Mount Dandenong, Vic, Aus的传输频率。

数字电视扫描工具(如 dvbv5-scan)使用各个国家和地区的一组编译默认值。这些默认值目前作为一个名为 dtv-scan-tables 的单独软件包提供。它的 Git 树位于 LinuxTV.orgdtv-scan-tables.git - Digital TV scan tables

如果没有适合您的表,请在命令行中指定包含传输频率的数据文件。以下是一个示例文件,其中包含上述频道转播器的旧“频道”格式:

# Data file for DVB scan program

#

# C Frequency SymbolRate FEC QAM

# S Frequency Polarisation SymbolRate FEC

# T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier

T 177500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE

T 184500000 7MHz AUTO AUTO QAM64 8k 1/8 NONE

T 191625000 7MHz AUTO AUTO QAM64 8k 1/16 NONE

T 219500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE

T 226500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE

T 557625000 7MHz AUTO AUTO QPSK 8k 1/16 NONE

现今,我们更倾向于使用一种较新的格式,这种格式更加冗长并且更易于理解。

使用新格式,“Seven”频道转播器的数据表示如下:

[Seven]

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = AUTO

CODE_RATE_LP = AUTO

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE

INVERSION = AUTO

完整表格的最新版本,请参见:

au-Melbourne\dvb-t - dtv-scan-tables.git - Digital TV scan tables

当数字电视扫描工具运行时,它将输出一个文件,其中包含卡前端可以锁定到的每个频道转播器中存在的所有音频和视频节目的信息(即强度足够在天线处接收到的信号)。

以下是从墨尔本进行的频道扫描的 dvbv5 工具输出信息的示例:

[ABC HDTV]

SERVICE_ID = 560

VIDEO_PID = 2307

AUDIO_PID = 0

DELIVERY_SYSTEM = DVBT

FREQUENCY = 226500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 3/4

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[ABC TV Melbourne]

SERVICE_ID = 561

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 226500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 3/4

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[ABC TV 2]

SERVICE_ID = 562

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 226500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 3/4

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[ABC TV 3]

SERVICE_ID = 563

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 226500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 3/4

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[ABC TV 4]

SERVICE_ID = 564

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 226500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 3/4

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[ABC DiG Radio]

SERVICE_ID = 566

VIDEO_PID = 0

AUDIO_PID = 2311

DELIVERY_SYSTEM = DVBT

FREQUENCY = 226500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 3/4

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital]

SERVICE_ID = 1585

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital 1]

SERVICE_ID = 1586

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital 2]

SERVICE_ID = 1587

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital 3]

SERVICE_ID = 1588

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital]

SERVICE_ID = 1589

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital 4]

SERVICE_ID = 1590

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital]

SERVICE_ID = 1591

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN HD]

SERVICE_ID = 1592

VIDEO_PID = 514

AUDIO_PID = 0

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[TEN Digital]

SERVICE_ID = 1593

VIDEO_PID = 512

AUDIO_PID = 650

DELIVERY_SYSTEM = DVBT

FREQUENCY = 219500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[Nine Digital]

SERVICE_ID = 1072

VIDEO_PID = 513

AUDIO_PID = 660

DELIVERY_SYSTEM = DVBT

FREQUENCY = 191625000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[Nine Digital HD]

SERVICE_ID = 1073

VIDEO_PID = 512

AUDIO_PID = 0

DELIVERY_SYSTEM = DVBT

FREQUENCY = 191625000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[Nine Guide]

SERVICE_ID = 1074

VIDEO_PID = 514

AUDIO_PID = 670

DELIVERY_SYSTEM = DVBT

FREQUENCY = 191625000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 3/4

CODE_RATE_LP = 1/2

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/16

HIERARCHY = NONE



[7 Digital]

SERVICE_ID = 1328

VIDEO_PID = 769

AUDIO_PID = 770

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[7 Digital 1]

SERVICE_ID = 1329

VIDEO_PID = 769

AUDIO_PID = 770

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[7 Digital 2]

SERVICE_ID = 1330

VIDEO_PID = 769

AUDIO_PID = 770

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[7 Digital 3]

SERVICE_ID = 1331

VIDEO_PID = 769

AUDIO_PID = 770

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[7 HD Digital]

SERVICE_ID = 1332

VIDEO_PID = 833

AUDIO_PID = 834

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[7 Program Guide]

SERVICE_ID = 1334

VIDEO_PID = 865

AUDIO_PID = 866

DELIVERY_SYSTEM = DVBT

FREQUENCY = 177500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[SBS HD]

SERVICE_ID = 784

VIDEO_PID = 102

AUDIO_PID = 103

DELIVERY_SYSTEM = DVBT

FREQUENCY = 536500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[SBS DIGITAL 1]

SERVICE_ID = 785

VIDEO_PID = 161

AUDIO_PID = 81

DELIVERY_SYSTEM = DVBT

FREQUENCY = 536500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[SBS DIGITAL 2]

SERVICE_ID = 786

VIDEO_PID = 162

AUDIO_PID = 83

DELIVERY_SYSTEM = DVBT

FREQUENCY = 536500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[SBS EPG]

SERVICE_ID = 787

VIDEO_PID = 163

AUDIO_PID = 85

DELIVERY_SYSTEM = DVBT

FREQUENCY = 536500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[SBS RADIO 1]

SERVICE_ID = 798

VIDEO_PID = 0

AUDIO_PID = 201

DELIVERY_SYSTEM = DVBT

FREQUENCY = 536500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE



[SBS RADIO 2]

SERVICE_ID = 799

VIDEO_PID = 0

AUDIO_PID = 202

DELIVERY_SYSTEM = DVBT

FREQUENCY = 536500000

INVERSION = OFF

BANDWIDTH_HZ = 7000000

CODE_RATE_HP = 2/3

CODE_RATE_LP = 2/3

MODULATION = QAM/64

TRANSMISSION_MODE = 8K

GUARD_INTERVAL = 1/8

HIERARCHY = NONE

1.1.4.3 FAQ

注意:

1. 在数字电视中,单个物理信道可能内部有不同的内容。规格将每个称为服务。这就是电视用户所说的“频道”。因此,为了避免混淆,在本常见问题解答中我们将传输器称为物理信道,将服务称为逻辑信道。

2. LinuxTV社区维护一些Wiki页面,其中包含许多与媒体子系统相关的信息。如果您在这里找不到您需要的答案,那么您很可能会从这里获取有用的信息。它托管在:LinuxTVWiki

关于Linux数字电视支持的一些非常常见的问题:

1. 调谐后几秒钟信号似乎就消失了。

这不是一个错误,而是一种特性。由于前端具有相当大的功率需求(因此会非常热),如果它们未被使用(即如果前端设备关闭),它们将被关闭。dvb-core模块参数 dvb_shutdown_timeout 允许您更改超时时间(默认为5秒)。将超时时间设置为0将禁用超时功能。

2. 如何观看电视?

与Linux内核一起,数字电视开发人员支持一些简单的实用程序,主要用于测试和演示DVB API的工作原理。这称为 DVB v5 工具,可与 v4l-utils git 存储库一起进行分组:

v4l-utils.git - media (V4L2, DVB and IR) applications and libraries

您可以在LinuxTV wiki中找到更多信息:

DVBv5 Tools - LinuxTVWiki

第一步是获取传输的服务列表。

使用几个现有的工具来完成这项任务。例如,您可以使用 dvbv5-scan 工具。您可以在以下网址找到有关它的更多信息:

dvbv5-scan - LinuxTVWiki

有一些其他的应用程序比如w_scan可以进行盲扫描,尝试找到所有可能的频道,但是这需要大量的时间来运行。同时,一些应用程序,如kaffeine,有其自己的代码来扫描服务,因此您不需要使用外部应用程序获得这样的列表。

大多数此类工具都需要一个包含您的地区可用的信道转换器列表的文件。因此,LinuxTV开发人员维护数字电视信道转换器表格,接收社区的补丁以使它们保持最新。该列表托管在:

dtv-scan-tables.git - Digital TV scan tables

并打包在多个发行版中。

Kaffeine对一些地面标准具有一定的盲扫描支持。尽管它内部包含其自己的副本,但它仍然依赖于DTV扫描表格(如果用户要求,它将下载更新版本)。

如果您很幸运,可以使用提供的信道转换器之一。否则,您可能需要在互联网上寻找此类信息并创建新文件。有几个网站包含物理通道列表。对于有线和卫星电视,通常只需知道如何调谐到一个单独的频道即可使扫描工具识别出其他频道。在某些地方,这也适用于地面传输。

一旦您拥有信道转换器列表,您需要使用类似dvbv5-scan这样的工具生成服务列表。几乎所有现代数字电视卡都没有内置硬件MPEG解码器。因此,由应用程序获取MPEG-TS流,然后将其拆分为音频、视频和其他数据进行解码。

3.数字TV应用有哪些?

有多个媒体播放器应用程序可以调谐数字电视信道,包括Kaffeine、Vlc、mplayer和MythTV。

Kaffeine旨在非常用户友好,并由其中一位内核驱动程序开发人员维护。这些和其他应用程序的综合列表可在以下网址找到:

TV Related Software - LinuxTVWiki

以下是一些最受欢迎的应用程序的链接:

https://apps.kde.org/kaffeine/ KDE媒体播放器,专注于数字电视支持

VDR Wiki Klaus Schmidinger的Video Disk Recorder

LinuxTV.org - Television with LinuxLinuxTV GIT repositories数字电视和其他媒体相关应用程序和内核驱动程序。v4l-utils软件包包含多个与数字电视一起使用的瑞士军刀工具。

以下是一些其他数字电视应用程序的链接:

DVB tools download | SourceForge.net Dave Chapman的dvbtools软件包,包括dvbstream和dvbtune

http://www.dbox2.info/在dBox2上的LinuxDVB

http://www.tuxbox.org/ TuxBox CVS许多有趣的DVB应用程序和dBox2 DVB源代码

MPSYS MPSYS:一个MPEG2系统库和工具

Official download of VLC media player, the best Open Source player - VideoLAN Vlc

Entering MPlayer homepage MPlayer

http://xine.sourceforge.net/xine - A Free Video Player - Home Xine

MythTV, Open Source DVR MythTV-模拟电视和数字电视PVR

dvbsnoop - DVB Stream Analyzer, MPEG Analyzer DVB嗅探器程序,用于监视、分析、调试、转储或查看dvb/mpeg/dsm-cc/mhp流信息(TS、PES、SECTION)

4.如果你无法正确调整信号

可能有很多问题。根据我的个人经验,通常电视卡需要比电视机更强的信号,并且更容易受到噪音的影响。因此,也许你只需要更好的天线或电缆。但是,这也可能是一些硬件或驱动程序问题。

例如,如果你正在使用一个没有模拟模块的Technotrend/Hauppauge DVB-C卡,你可能需要使用模块参数adac=-1(dvb-ttpci.o)。

请参阅linuxtv.org的FAQ页面,这里可能包含一些有价值的信息:

FAQ & Troubleshooting - LinuxTVWiki

如果这些方法都不起作用,可以查看linux-media ML档案,看看其他人是否有类似的问题,而你的硬件和/或数字电视服务提供商:

linux-media.vger.kernel.org archive mirror

如果以上所有措施都不能解决问题,你可以尝试发送电子邮件到linux-media ML,看看其他人能否给出一些解决方案。该邮箱为:

linux-media AT vger.kernel.org

5.如果dvb_net设备根本没有给你任何数据包

请在dvb0_0接口上运行tcpdump。这会将接口设置为混杂模式,以接受与使用dvbnet实用程序配置的PID相匹配的任何数据包。检查是否有具有你已经使用ifconfig或ip addr配置的IP地址和MAC地址的数据包。

如果tcpdump没有给出任何输出,请检查ifconfig或netstat -ni输出的统计信息。(注意:如果MAC地址错误,dvb_net将不会有任何输入;因此在检查统计信息之前必须先运行tcpdump。)如果根本没有数据包,那么可能PID是错误的。如果有错误数据包,则PID可能是错误的或者流不符合MPE标准(EN 301 192,ETSI - Welcome to the World of Standards!)。你可以使用例如dvbsnoop进行调试。

6.dvb_net设备无法接收到任何多播数据包

如果你的dvb_net设备无法接收到任何多播数据包,首先请检查你的路由是否包括多播地址范围。此外,请确保“通过反向路径查找进行源验证”的功能已禁用:

$ "echo 0 > /proc/sys/net/ipv4/conf/dvb0/rp_filter"

7.这些模块需要加载什么?

为了使它更加灵活并支持不同的硬件组合,媒体子系统是以模块化方式编写的。因此,除了用于主芯片组的数字电视硬件模块外,它还需要加载前端驱动程序和数字电视核心。如果板子还带有遥控器,则还需要远程控制器核心和远程控制器表。如果该板子还支持模拟电视,则需要加载video4linux的核心支持模块。

实际模块名称是Linux内核版本特定的,因为不时会进行更改,以使媒体支持更加灵活。

1.1.4.4 References

数字电视驱动程序的主要开发站点和GIT存储库是https://linuxtv.org

DVB邮件列表linux-dvb托管在vger上。有关详细信息,请参见Majordomo Lists at VGER.KERNEL.ORG

还有一些其他旧的列表托管在:LinuxTV.org - Mailing Lists。如果出于历史原因您对此感兴趣,请查看The linux-dvb Archives中的存档。

媒体子系统Wiki托管在LinuxTVWiki上。在那里,您将找到许多关于媒体板的开发和使用的信息。在在邮件列表或IRC频道上询问新手问题之前,请先查看它。

API文档记录在内核树中。您可以在LinuxTV.org - Documentation上以html和pdf格式与其他有用的文档一起找到它。

您还可以在LinuxTV.org - Television with Linux上找到有用的材料。

为了使一些驱动程序正常工作而获得所需的固件,内核树中有一个脚本scripts/get_dvb_firmware。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值