依存パッケージのインストール
sudo apt-get install dh-autoreconf
recdvbのダウンロード
wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz
# 解凍
tar xvzf recdvb-1.3.1.tgz
# ディレクトリの変更
cd recdvb-1.3.1
より使いやすくするために(非推奨)
そのままビルドするとストリーミングする際、hostsファイルにIPアドレスが記載されていない端末は「gethostbyname failed」が表示され、再生できないので関連するソースコードをコメントアウト及び変更しておく。
同一ネットワーク内の端末すべてからアクセスできてしまうため、セキュリティが大幅に低下する。実行は自己責任で行うこと。
今回ダウンロードしたrecdvd 1.3.1の以下の行を変更・コメントアウトする。
変更
sudo nano recpt1.c
# 変更前
941 fprintf(stderr,"connect from: %s [%s] port %d¥n", peer_host->h_name, inet_ntoa(peer_sin.sin_addr), ntohs(peer_sin.sin_port));
# 変更後(「peer_host->h_name,」を削除)
941 fprintf(stderr,"connect from: %s port %d¥n", inet_ntoa(peer_sin.sin_addr), ntohs(peer_sin.sin_port));
コメントアウト
以下の6行をコメントアウトしておく。
バージョンが異なる場合、記載している行番号と異なる可能性があるので見つからない際は前後のコードも確認してみること。
921 struct hostent *peer_host;
...
934 peer_host = gethostbyaddr((char *)&peer_sin.sin_addr.s_addr,
935 sizeof(peer_sin.sin_addr), AF_INET);
936 if ( peer_host == NULL ){
937 fprintf(stderr, "gethostbyname failed¥n");
938 return 1;
939 }
ビルド・インストール
./autogen.sh
./configure --enable-b25
make
sudo make install
インストールが完了したため、次は動作確認を行う。
物理チャンネル20を10秒間録画する
recdvb –-b25 -–strip 20 10 test.m2ts
完了した後に「test.m2ts」が作成され、再生できたら成功。私はVLCを使用して動作確認を行った。
チャンネルは受信する地域による異なるため、物理チャンネル一覧から自分の地域に合った物理チャンネルを受信すること。
ローカルネットワークにストリーミングで公開
recdvb –-b25 –-strip -–http 8080
今回はVLCで再生する。Macでは「ファイル」->「ネットワーク」に以下のアドレスを入力し、ストリーミング再生できたら成功。
http://[IPアドレス]:8080/[物理チャンネル]
安定して動かすために
動作させるとラズパイ本体・チューナがすごく発熱するため、熱を逃がしやすいケースや冷房が効いている部屋で行うほうがいいだろう。
長時間動かし続けるとハングアップする危険性がある。