読者です 読者をやめる 読者になる 読者になる

コピペでできる録画サーバー on Linux with PT2 (recpt1 録画編)

AV関連 Hardware
  1. コピペでできる録画サーバー on Linux with PT2 (ハードウェア編)
  2. コピペでできる録画サーバー on Linux with PT2 (OSインストール編)
  3. コピペでできる録画サーバー on Linux with PT2 (recpt1 録画編)
  4. コピペでできる録画サーバー on Linux with PT2 (epgrec 番組表編)
  5. コピペでできる録画サーバー on Linux with PT2 (再生編)
  6. コピペでできる録画サーバー on Linux with PT2 (エンコード編)

※2015/5/9更新
CentOS7で再構築した際に追加した手順を追記

※2013/6/16更新
recpt1を公式版から各種パッチ用の適用や機能の追加が行われているSTZ版に変更しました。
またPT3ドライバ導入手順も追加しました。



前回でOSのインストールは終了しました。
いよいよ録画の設定に入ります。
この章ではコマンドからPT2を利用して番組を録画して、その番組を他のWindowsPCから再生できるようにします。
がその前に最低限のOSの設定をしておきましょう。


ここからはLinuxの設定に入っていきますが、環境によってはエラーなどが発生するかもしれません。
その場合はコメントに実行したコマンドとエラー出力を貼り付けていただければ、解決のお手伝いをさせて頂きます。

基本的に作業はrootユーザーで行います。

su -

httpとsambaのポートに対して同一サブネットからアクセスできるように設定します。(だいぶ先で使います)

  • A INPUT -s 192.168.1.0/24 -j SUBNETの部分は、自宅のサブネットに合わせて変更してください。

192.168.0.Xだったら、-A INPUT -s 192.168.0.0/24 -j SUBNETになります。

cat << '_EOF_' > /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SUBNET - [0:0]
# lo
-A INPUT -i lo -j ACCEPT
# SUBNET
-A INPUT -s 192.168.1.0/24 -j SUBNET
# All
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
# SUBNET
-A SUBNET -p tcp -m tcp --dport 80 -j ACCEPT
-A SUBNET -p tcp -m tcp --dport 445 -j ACCEPT
COMMIT
_EOF_
/etc/init.d/iptables restart

32bitライブラリを削除

yum -y remove *-devel.i386

updateから32bit関連を除外

echo "exclude=*-devel.i386" >> /etc/yum.conf

update

yum -y update

とりあえず再起動

reboot

ここからはとうとうPT2関連の設定に入ってきます。

ICカードリーダー

/etc/init.d/pcscd start
chkconfig pcscd on

ICカードリーダー動作確認ツール

mkdir -p /usr/local/src/PT2/scan
cd /usr/local/src/PT2/scan
wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/x86_64/os/Packages/pcsc-perl-1.4.6-2.fc8.x86_64.rpm
wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/x86_64/os/Packages/pcsc-tools-1.4.10-1.fc8.x86_64.rpm
rpm -ivh pcsc-perl-1.4.6-2.fc8.x86_64.rpm --nodeps
rpm -ivh pcsc-tools-1.4.10-1.fc8.x86_64.rpm --nodeps
wget http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt --output-document=/root/.smartcard_list.txt
pcsc_scan

pcsc_scanで以下の記述が見つかればICカードリーダーは正常に動作しています。

Sun Dec 12 19:15:34 2010
Reader 0: SCM SCR 3310 NTTCom
Card state: Card inserted,

OSがPT2を認識しているか確認

lspci |grep Multimedia

こんな感じに表示されていればOK

  • PT2

05:00.0 Multimedia controller: Xilinx Corporation Unknown device 222a (rev 01)

  • PT3

20:00.0 Multimedia controller: Altera Corporation Device 4c15 (rev 01)

gitのインストール

yum -y install git

DVB版ドライバを無効化

  • 今回利用するのはchardev版ですが、現在のLinuxにはDVB版のドライバが標準で搭載されているので、これを無効化します。
echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf

ドライバのインストール

  • PT1,PT2の場合
cd /usr/local/src/PT2/
git clone https://github.com/stz2012/recpt1.git
cd recpt1/driver/
make
make install
modprobe pt1_drv
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr.conf
  • PT3の場合
yum -y install kernel-devel.x86_64
cd /usr/local/src/PT2/
git clone https://github.com/m-tsudo/pt3.git
cd pt3
make
make install
modprobe pt3_drv
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr.conf

CentOS7.1では以下の作業も実施しました。

yum -y install epel-release
yum -y install dkms
chmod +x dkms.install
./dkms.install

pt1_thread runとなっていればOK

  • PT2の場合
[root@pt2 ~]# dmesg |grep pt1
pt1-pci.c: 1.1.0 2010-01-27
pt1_thread run
  • PT3の場合
[root@pt3 pt3]# dmesg |grep pt3
PT3: pt3_drv 0.0.1rev99 2013-08-05
pt3_drv 0000:20:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
pt3_drv 0000:20:00.0: setting latency timer to 64

暗号化解除b25 arib25

法律改正によって暗号を解除して記録することが違法?になったようです。
紹介も幇助と受け取られかねないので省略させて頂きます。

暗号化したまま保存をしておき再生時にデコードするためには、Marumo ISDB splitterを使いましょう。
これでTVと同じ仕組みとなります。
以降暗号を解除しない場合には--b25オプションを削ってください。

必要なライブラリをインストール

yum -y install ld-linux.so.2
yum -y install autoconf automake

PT2録画ツールのインストール

cd /usr/local/src/PT2/recpt1/recpt1
sh autogen.sh
./configure --enable-b25
make
make install

地上波録画テスト

cd ~
cat << '_EOF_' > record.sh
#!/bin/sh
for ((i=10;i<40;i++))
do
echo 5 seconds recording channel $i 
/usr/local/bin/recpt1 --b25 --strip --sid hd $i 5 test$i.ts
done
_EOF_
sh record.sh

録画中にこんな表示がされる場合もあるけど無視でOK

/usr/local/bin/recpt1: unrecognized option `--b25'
/usr/local/bin/recpt1: unrecognized option `--strip'

こんな感じに録画できていればOK

[root@pt2 ~]# ls *.ts
test17.ts  test20.ts  test22.ts  test24.ts  test26.ts  test28.ts  test32.ts
test18.ts  test21.ts  test23.ts  test25.ts  test27.ts  test30.ts

コマンド解説 b25で暗号解除、27ch(NHK)を10秒ハイビジョン放送だけ録画する

recpt1 --b25 --strip --sid hd 27 10 test.ts

以上でコマンドから録画できるようになりました。
サーバ側がCUIしかインストールしていない場合、これでは再生できないのでWindowsにファイルを渡すためのファイル共有の設定をします。

SELinuxの無効化

perl -pi -e 's|^SELINUX(.)+|SELINUX=disabled|' /etc/selinux/config

再起動

reboot

こうなればOK

[root@pt2 ~]# getenforce
Disabled

Sambaのインストール

yum -y install samba3x
or
yum -y install samba

ユーザーの作成

Linuxの一般ユーザーを作成していない場合はuseraddで作成

useradd ユーザー名
passwd
パスワード入力

次にsamba用のユーザーをpdbeditで作成

pdbedit -a ユーザー名 
パスワード入力

共有フォルダの作成

mkdir -p /home/services/samba
chmod 777 /home/services/samba

Sambaの設定

netbios nameには、環境に合わせてhostnameを設定してください。hosts allowもクライアントのサブネット環境に統一してください。クライアントのIPアドレスが192.168.0.1ならhosts allowは、hosts allow = 127. 192.168.0.となります。

cat << '_EOF_' > /etc/samba/smb.conf
[global]
        workgroup = WORKGROUP
        server string = Samba Server Version %v
        smb ports = 445
        netbios name = pt2
        hosts allow = 127. 192.168.1.

        security = user
        passdb backend = tdbsam
        wins support = yes
        load printers = no

        # for Mac config
        unix extensions = no
        wide links = yes

[public]
        comment = Public Stuff
        path = /home/services/samba
        public = yes
        writable = yes
_EOF_

起動

/etc/init.d/smb start
chkconfig smb on

WindowsからLinuxを参照

Windowsのエクスプローラを開き ツール -> ネットワークドライブの割り当て -> \\サーバのIPアドレス\でWindowsから/home/services/sambaを参照できるようになります。