Epgrec
目次
epgrecとは
日経Linux誌2009年7月売り号(8月号)に掲載するために開発した録画予約システムで、その後も実際に使いながらぼちぼちと機能を追加していっています。tomy氏のepgdumpr2を使ってMPEG2-TSデータから番組を抽出、MySQLデータベースで番組表を保持します。Linuxを録画サーバとして利用している人のために作成されており、複数チューナ+キーワード自動録画によって大量の録画予約を自動的に行ったりもできます。
詳しくは http://www.mda.or.jp/epgrec/
必要な機器
USB接続するTVチューナー
HDD(データ容量が半端ないので必須)
必要なプログラム
epgrec Webから予約を受け付けるプログラム
recfsusb2n チューナーからデータを受け取る
epgdump 受信データから番組表を取り出す
ffmpeg 取り込んだデータを圧縮する
その他、at cron等が必要だがパッケージで準備されているのでapt-getしてインストールする
recfsusb2nのコンパイル、設置
recfsusb2nは、コンパイルしてインストールする必要が有ります。
まず、コンパイルに必要なツールと後に必要なコマンドをインストールします。
ターミナルで接続し
sudo su apt-get install yasm g++ libboost-thread-dev libboost-filesystem-dev at cron git make usbutils
展開し、コンパイル
make clean make cp recfsusb2n /usr/local/bin
epgdumpのコンパイル、設置
epgdumpは、コンパイルしてインストールする必要が有ります。
展開し、コンパイル
make clean make cp epgdump /usr/local/bin
ffmpegのコンパイル、設置
ffmpegは、コンパイルしてインストールする必要が有ります。(Raspbianの場合はapt-get可能です)
設置方法
データベースの準備
データベースを作成
mysql -u root -p
epgrecと言う名称のデータベースでユーザーID:epgrec パスワード:epgrecで作成
mysql> grant all privileges on epgrec.* to epgrec@localhost identified by 'epgrec'; mysql> create database epgrec; mysql> exit
atコマンドの許可
/etc/at.deny を開き、www-data を削除
Webアプリの設置
tar xvzpf epgrec_20111001.tar.gz
config.php.sample を config.php にリネームして編集。
mv config.php.sample config.php nano config.php
チューナーは KTV-FSUSB2 を利用するので、do-record.sh は以下のようにした。
nano do-record.sh
#!/bin/sh echo "CHANNEL : $CHANNEL" echo "DURATION: $DURATION" echo "OUTPUT : $OUTPUT" echo "TUNER : $TUNER" echo "TYPE : $TYPE" echo "MODE : $MODE" RECORDER=/usr/local/bin/recfsusb2n $RECORDER --b25 $CHANNEL $DURATION ${OUTPUT} >/dev/null
ちゃんと録画出来るかテスト
OUTPUT=test.ts CHANNEL=22 DURATION=30 TUNER=0 MODE=0 TYPE=GR /media/Data/www/epgrec/do-record.sh
Apacheへの設定
nano /etc/apache2/conf-enabled/epgrec.conf
次の内容で編集します。
# Uncomment this to add an alias. # This does not work properly with virtual hosts.. Alias /epgrec /media/Data/www/epgrec <Directory /media/Data/www/epgrec/> Options +FollowSymLinks AllowOverride All <IfVersion >= 2.3> Require all granted </IfVersion> <IfVersion < 2.3> order allow,deny allow from all </IfVersion> </Directory>
Apacheの再起動
apache2ctl restart
ブラウザで http://osmc/epgrec/ にアクセスすると何らかのメッセージが表示されていれば成功です。
パーミッションの調整
ffmpegのインストール
x264のインストール
apt-get install libx264-142
git clone git://git.videolan.org/x264 cd x264/ ./configure --enable-shared --enable-pic make make install
xvidのインストール
wget http://downloads.xvid.org/downloads/xvidcore-1.3.3.tar.gz tar zxvf xvidcore-1.3.3.tar.gz cd xvidcore/build/generic ./configure make make install
faacのインストール
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz tar zxvf faac-1.28.tar.gz cd faac-1.28/ ./configure --with-mp4v2 make make install
faadのインストール
http://sourceforge.net/projects/faac/files/faad2-src/faad2-2.7 ここから最新のソースを取得します。
tar zxvf faad2-2.7.tar.gz cd faad2-2.7/ ./configure make make install
lameのインストール
http://sourceforge.net/projects/lame/files/lame/3.99/ ここから最新のソースを取得します
tar zxvf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure --enable-nasm --enable-efence --enable-mp3x --enable-mp3rtp make make install
共有ライブラリの情報を更新
nano /etc/ld.so.conf
/usr/local/lib の記述を追加します。
include ld.so.conf.d/*.conf /usr/local/lib
保存後に下記コマンドを実行
ldconfig
ffmpegのインストール
wget http://www.ffmpeg.org/releases/ffmpeg-2.2.2.tar.gz tar zxvf ffmpeg-2.2.2.tar.gz cd ffmpeg-2.2.2/ ./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=armv7hl --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector -param=ssp-buffer-size=4 -march=armv7 -mfloat-abi=hard -mfpu=vfp' --disable-crystalhd --disable-indev=jack --enable-libmp3lame --enable-libxvid --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --disable-runtime-cpudetect --arch=arm --disable-neon --enable-libfaac --enable-libx264 --enable-nonfree --disable-asm