recfsusb2n
wavecast独自のtsrec2ではなく、付属地デジチューナの本家からいただきました。
セットアップドキュメント通りにやっていきます。
boostライブラリが必要らしい
$ sudo apt-get install libboost1.48-all-dev
boost::threadとfilesystemだけでいいらしいけど、面倒なので全入れ。
録画ユーザをvideoグループに追加
$ sudo gpasswd -a [username] video
/lib/udev/rules.d/89-tuner.rulesを作成して以下を記載
# FSUSB2N変更を適用する。
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0029", MODE="0664", GROUP="video"
$ sudo udevadm control --reload-rules
USB機器を認識していることを確認
$ lsusb -d 0511:
Bus 001 Device 004: ID 0511:0029 N'Able (DataBook) Technologies, Inc.って出た。問題なく認識しているようだ。
recfsusb2nをビルド
ビルドエラーが出る。こちらを参考にしてソースをちょっと手直し。
そうそう、後で困るので、こちらのパッチもやっておこう。
実際どうなるんだろ?と思ってオリジナルのままやってみたら確かにffmpegに怒られました。因にwavecastパッチでは10カウントでしたね。動作確認
$ recfsusb2n -bv 27 40 test.ts
以上の事を、ぶっ続けでやったら、パーミッションエラーになった。
自分が、videoグループに入ってることを認識させるため、一度ログインし直す。
OK。
ffmpeg環境を前回と同じようにgitリポジトリから構築
まずは、下ごしらえ
$ sudo apt-get install git
$ sudo apt-get install yasm
$ sudo apt-get install libfaac-dev
$ sudo apt-get install libopencore-amrnb-dev
$ sudo apt-get install libopencore-amrwb-dev
$ sudo apt-get install libtheora-dev
$ sudo apt-get install libvorbis-dev
$ sudo apt-get install libxvidcore-dev
$ sudo apt-get install libmp3lame-dev ←自分は入れなかった。mp3使わないし。
x264ビルド$ git clone git://git.videolan.org/x264.git x264
$ cd x264
$ make
$ sudo make install
ffmpegビルド
$ git clone git://github.com/FFmpeg/FFmpeg.git ffmpeg
$ cd ffmpeg$ ./configure ...前回と同じ設定。ただし、--enable-libmp3lame 外した。
$ make
$ sudo make install
MP4Box
mp4boxが含まれているgpacをインストール
$ sudo apt-get install gpac
$ MP4Box -ipod -inter 500 in.mp4 out.mp4 な感じ?
で、適当に作った録画スクリプトがこちら
つい最近のffmpegだと、ビデオのビットレートを、'-b'じゃなくて、'-b:v'で指定しなさいとワーニングが出るようになったので、'-b:v'に変更しました。オーディオのビットレート指定は、'-b:a'だそうだ。
時々、ffmpegとx264のリポジトリアップデートと再ビルドをしていれば最新が保たれる。
ただし今回みたいにオプションが変わったりするんで、自動化は難しいかな。
エンコードメッセージを解析して自動対応なんてことが出来ればメンテフリーになるか?
ここまで出来れば、あとは epgrec 様を入れればほぼ出来上がり。
#!/bin/bash
TMP=$(tempfile)
FILE=`echo $TMP|sed s/^.*[/]//`
VIDEO='/home//media/video'
IPOD='/home//media/ipod'
recfsusb2n --b25 $C $T ${TMP}.ts
ffmpeg -y -i ${TMP}.ts -c:v libx264 -c:a libfaac -preset superfast -b:v 1800k -s 960x540 -aspect 16:9 -f mp4 -threads 0 ${TMP}.mp4
MP4Box -ipod -inter 500 ${TMP}.mp4 -out $VIDEO/${FILE}.mp4
ffmpeg -y -i $VIDEO/${FILE}.mp4 -threads 0 -s 480x272 -acodec copy -vcodec mpeg4 -b:v 900k -qmin 3 -qmax 5 -f mp4 $IPOD/${FILE}.mp4
# Cleanup
rm ${TMP}*
TMP=$(tempfile)
FILE=`echo $TMP|sed s/^.*[/]//`
VIDEO='/home/
IPOD='/home/
recfsusb2n --b25 $C $T ${TMP}.ts
ffmpeg -y -i ${TMP}.ts -c:v libx264 -c:a libfaac -preset superfast -b:v 1800k -s 960x540 -aspect 16:9 -f mp4 -threads 0 ${TMP}.mp4
MP4Box -ipod -inter 500 ${TMP}.mp4 -out $VIDEO/${FILE}.mp4
ffmpeg -y -i $VIDEO/${FILE}.mp4 -threads 0 -s 480x272 -acodec copy -vcodec mpeg4 -b:v 900k -qmin 3 -qmax 5 -f mp4 $IPOD/${FILE}.mp4
# Cleanup
rm ${TMP}*
つい最近のffmpegだと、ビデオのビットレートを、'-b'じゃなくて、'-b:v'で指定しなさいとワーニングが出るようになったので、'-b:v'に変更しました。オーディオのビットレート指定は、'-b:a'だそうだ。
時々、ffmpegとx264のリポジトリアップデートと再ビルドをしていれば最新が保たれる。
ただし今回みたいにオプションが変わったりするんで、自動化は難しいかな。
エンコードメッセージを解析して自動対応なんてことが出来ればメンテフリーになるか?
ここまで出来れば、あとは epgrec 様を入れればほぼ出来上がり。
今回は自力で色々組んでみたいと思っているので、モチベーションキープのためにも入れないで我慢です。
0 件のコメント:
コメントを投稿