Linuxで衛星放送チャンネルを受信する

良い一日。

Linuxで衛星のエンコードされていないTVチャネルの受信を設定し、それらをローカルネットワークにブロードキャストすることについてお伝えしたいと思います。

ソースデータは、ある程度調整された衛星放送受信アンテナ(たとえばwww.lyngsat.com/amos2.html )とlinuxを実行しているコンピューターの存在であると想定しています(私の場合、Slackwareがどのディストリビューションであっても)。 このタスクは私たちの時代に非常に興味深く、関連性があります。



理論のビット



信号を受信するには、次のプログラムが必要です。

scan-トランスポンダーのチャネルをスキャンします。

szap-タンポンポンからのデータの受信を確認します。

vlc-受信およびブロードキャスト用。



最初の2つのユーティリティは、linuxtv-dvb-appsパッケージに含まれています。 それらをインストールするには、配布キットのパッケージマネージャーを使用するか、 LinuxTVにアクセスしてソースをダウンロードしてコンパイルします。

vlcは、パッケージマネージャーを使用して、または公式のVLC Webサイトからインストールすることもできます。



frec-周波数またはトランスポンダー

sr(シンボルレート)-シンボルレート

fec-エラー修正頻度

V、H、L、R-分極

受信できる信号は、CバンドとKuバンド、直線偏光(v、h)および円偏光(l、r)になります。



信号をキャッチ



まず、システムでdvbカードが定義されているかどうかを確認する必要があります。

見つけるのは非常に簡単です。lspciを実行して、同様の行を見つけてください。



03:05.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)

03:06.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)

03:05.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)

03:05.2 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)

03:05.4 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05)







1番目のデバイス-skystar3

2番目のデバイス-skystar2

3番目、4番目、5番目のデバイス-Twinhan 1027



これは私にとってどのように見えるかです:

root@sat:/# lspci

00:00.0 Host bridge: ATI Technologies Inc Unknown device 7910

00:01.0 PCI bridge: ATI Technologies Inc Unknown device 7912

00:07.0 PCI bridge: ATI Technologies Inc Unknown device 7917

00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA

00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)

00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)

00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)

00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)

00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)

00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)

00:14.0 SMBus: ATI Technologies Inc SB600 SMBus (rev 14)

00:14.1 IDE interface: ATI Technologies Inc SB600 IDE

00:14.2 Audio device: ATI Technologies Inc SB600 Azalia

00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge

00:14.4 PCI bridge: ATI Technologies Inc SB600 PCI to PCI Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:05.0 VGA compatible controller: ATI Technologies Inc Radeon X1200 Series

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)

03:05.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)

03:06.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)









次のステップは、これらのdvbカードのカーネルモジュールを起動することです。

必要なモジュールはdvbカードのチップセットに依存しますが、dvb_coreとdvb_pllの2つの必須モジュールがあります。

SkyStar 2の場合:b2c2_flexcop

SkyStar 3の場合:budjet

Twinhan 1027の場合:cx88_dvb



100のうち99のケースでは、必要なモジュールがシステム起動時にロードされました。 lsmodをチェックするのが非常に簡単かどうか grep dvb

これは同じシステムでどのように見えるかです:

root@sat:/# lsmod | grep dvb

dvb_pll 15876 2 b2c2_flexcop,lgh06xf

dvb_core 74280 5 b2c2_flexcop,budget,lgdt330x,budget_core,stv0299









モジュールが正常に起動すると、/ dev / dvbディレクトリに新しいデバイスが表示されます。

root@sat:/# ls /dev/dvb/

adapter0/ adapter1/









さて、信号をキャッチする必要があります。

まず第一に、利用可能なトランスポンダーのいずれかをスキャンし、受信できるチャネルを見つける必要があります。

私たちがインストールしたスキャンユーティリティが役立ちます。

トランスポンダーをスキャンし、利用可能なチャンネルに関する情報を標準出力ストリームに提供します。

パラメーターから、構成ファイルへのパス、スキャンするdvbアダプターの番号を転送し、円偏光の周波数を手動で設定する必要があります。



スキャン構成ファイルは、 lyngsat.comの情報を使用して簡単に作成できます。 その上で、設定した程度まで衛星を見つけ、この衛星からトランスポンダーを選択する必要があります。

この例www.lyngsat.com/amos2.htmlでは、トランスポンダー(freq)10759、水平(H)偏光、シンボルレート(sr)30000およびエラー修正周波数(fec)3/4を選択します。 スキャン用の構成ファイルは次のようになります。



S 10759000 H 30000000 3/4









次のように使用します。

root@sat:/etc/sat/test# scan -a 0 /path/to/trans.conf

scanning /path/to/trans.conf

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

initial transponder 10759000 H 30000000 3

>>> tune to: 10759:h:0:30000

Network Name 'NET'

0x0000 0x0001: pmt_pid 0x0020 Spacecom -- KIEV STB (running, scrambled)

0x0000 0x0002: pmt_pid 0x0030 Spacecom -- M1 (running, scrambled)

0x0000 0x0003: pmt_pid 0x0040 Spacecom -- TONIS (running, scrambled)

0x0000 0x0005: pmt_pid 0x0060 Spacecom -- ICTV (running, scrambled)

0x0000 0x0006: pmt_pid 0x0070 Spacecom -- M2 (running, scrambled)

0x0000 0x0008: pmt_pid 0x1079 Spacecom -- NEWS 24 (running, scrambled)

0x0000 0x0009: pmt_pid 0x0200 Spacecom -- Radio Antoshka (running, scrambled)

0x0000 0x000a: pmt_pid 0x0100 Spacecom -- MTV UKRAINE (running, scrambled)

0x0000 0x000b: pmt_pid 0x0080 Spacecom -- QTV (running, scrambled)

dumping lists (9 services)

KIEV STB:10759:h:0:30000:33:34:1

M1:10759:h:0:30000:49:50:2

TONIS:10759:h:0:30000:65:66:3

ICTV:10759:h:0:30000:97:98:5

M2:10759:h:0:30000:113:114:6

NEWS 24:10759:h:0:30000:4194:4195:8

Radio Antoshka:10759:h:0:30000:0:513:9

MTV UKRAINE:10759:h:0:30000:257:258:10

QTV:10759:h:0:30000:129:130:11

Done.







円偏光の場合、値10750.10750.0の-lスイッチを追加する必要があります



scan -a 0 /path/to/trans.conf -l 10750,10750,0









データを受信するようにカードを設定してみましょう。 このためには、szapの構成ファイルが必要です。 取得するのは非常に簡単です:

root@sat:~# scan -a 0 ~/trans36.conf -l 10750,10750,0 > ~/channels.conf

root@sat:~# cat ./channels.conf

Sport 1:11727:h:0:27500:101:201:1

Sport 2:11727:h:0:27500:102:202:2

First Automotive:11727:h:0:27500:103:203:3

BIZ TV:11727:h:0:27500:104:204:4

Che-Pe_INFO:11727:h:0:27500:105:205:5

TBi:11727:h:0:27500:106:206:6

TV3:11727:h:0:27500:107:207:7

CHANSON:11727:h:0:27500:108:208:8

TOPSHOP TV:11727:h:0:27500:109:209:9

Expert test:11727:h:0:27500:110:210:10

Football test:11727:h:0:27500:111:211:11

Engineer_1:11727:h:0:27500:114:214:14









次に、この構成ファイルをszapにスリップします。

root@sat:~# szap -c ./channels.conf -n 1 -x -l 10750,10750,0

reading channels from file './channels.conf'

zapping to 1 'Sport 1':

sat 0, frequency = 11727 MHz H, symbolrate 27500000, vpid = 0x0065, apid = 0x00c9

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

status 00 | signal 6262 | snr fcfc | ber 00000000 | unc 00000000 |

status 1f | signal 4d4d | snr 3535 | ber 00000000 | unc 00000006 | FE_HAS_LOCK







「FE_HAS_LOCK」という碑文が表示された場合、すべてが正常であり、正しく調整されています。

szapのパラメーターは、スキャンのパラメーターに似ています。

-c /path/to/channels.conf-チャネルを含む構成ファイルへのパス。

-n Xは、channels.confファイルのチャネル番号です。Xは1から始まる番号です。

-x-szapがロックされるとすぐに終了します。

-l 10750.10750.0-円偏波アンテナに必要です。



ネットワークで放送します



そのため、トランスポンダーで使用可能なチャネルのリストを取得しました。

周波数、偏光、および目的のチャネルのpid(各行の最後の桁、チャネルm1 = 2のpid)がわかったので、ストリームを直接受信することができます。

これを行うには、全能のvlcプレーヤーを使用します。



起動時に渡されるパラメーターは多数あり、毎回入力するのは無意味です。vlc起動コマンド全体をシェル実行可能ファイルに書き込むことをお勧めします。

#!/bin/bash

/usr/bin/vlc -vvv --color --ttl 12 --ts-es-id-pid --dvb-adapter=0 --programs=1,2,3,6,8,10,11 dvb:

--dvb-frequency=10759000 --dvb-srate=30000000 --dvb-voltage=18 --dvb-fec=9 -d --sout '#duplicate{

dst="standard{access=http,mux=ts,url=0.0.0.0:8011}",select="program=1"

dst="standard{access=http,mux=ts,url=0.0.0.0:8012}",select="program=2"

dst="standard{access=http,mux=ts,url=0.0.0.0:8013}",select="program=3"

dst="standard{access=http,mux=ts,url=0.0.0.0:8014}",select="program=6"

dst="standard{access=http,mux=ts,url=0.0.0.0:8015}",select="program=8"

dst="standard{access=http,mux=ts,url=0.0.0.0:8016}",select="program=10"

dst="standard{access=http,mux=ts,url=0.0.0.0:8017}",select="program=11"}'








パラメーターについて少し:

-vvv-デバッグに役立つ詳細なメッセージ出力。

--color-メッセージ出力を色分けし、重要なメッセージを赤で強調表示します。-vvvを使用すると非常に便利です。

--dvb-adapter-コンピュータに複数のインストールがある場合、/ dev / dvb /からのdvbアダプタ番号。

--programs-受信する必要があるチャネルのPID。

-d-デーモンとして動作します。

--dvb-fec-fec 1/2 9の値-自動的に決定されます

dst = "標準{access = http、mux = ts、url = 0.0.0.0:8011}"、select = "program = 1"



これらの各行は、チャネルpidをコンピューターポートに接続します。 この場合、pid 1のチャネルはポート8011でブロードキャストされます。



確認するだけです。

クライアントから始めて見てみましょう:

mplayer h_t_t_p://10.16.0.12:8012








All Articles