LoginSignup
1
4

More than 3 years have passed since last update.

Raspberry piで地デジサーバ構築:09_録画・ストリーミング再生パッケージのインストール

Last updated at Posted at 2019-08-29

依存パッケージのインストール

端末
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
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行をコメントアウトしておく。
バージョンが異なる場合、記載している行番号と異なる可能性があるので見つからない際は前後のコードも確認してみること。

recpt1.c
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では「ファイル」->「ネットワーク」に以下のアドレスを入力し、ストリーミング再生できたら成功。

url
http://[IPアドレス]:8080/[物理チャンネル]

安定して動かすために

動作させるとラズパイ本体・チューナがすごく発熱するため、熱を逃がしやすいケースや冷房が効いている部屋で行うほうがいいだろう。
長時間動かし続けるとハングアップする危険性がある。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4