いつもの流れではあるので特出すべきことはないですが・・・
Shuttleで録画システム再開発ということで、前回の反省点を踏まえながら進めていく。
まずは、rvmとrails4.2 railsは仕事では3までしか使ってないんで4は自分的に初!
rvm
$ sudo apt-get intall curl
-- ここからは全部自分環境なので sudo じゃないよ --
$ curl -sSL https://rvm.io/mpapis.asc | gpg --import -
$ curl -sSL https://get.rvm.io | bash -s stable
$ source /home/shuttle/.rvm/scripts/rvm ← shuttleというユーザ名でやってます
$ rvm list known ←選択可能なrubyバージョンを確認
$ rvm install ruby-2.2.1 --default
↑
これが長いんだ・・・暫し待つ。
この時点で gemとgem基本パッケージが入っている
rails4.2
$ gem i rails --no-ri --no-doc
↑
これも長いよねぇ・・・
アプリ作成
$ rails new recman ←という名のアプリ作成
$ cd recman
$ bundle install
$ rails s
とりあえずWebrickでHTTPサーバー起動するかな?
あぁ、そうだった。developmentでWebrick起動するためには、'therubyracer'が必要でした。
Gemfileに、gem 'therubyracer' を追記。
もう一度
$ bundle install
$ rails s
別のPCから、http:://shuttle:3000/ へアクセス。およ?アクセス出来ない・・・?
最初は、ufw とか考えたけれど、いやいやEnforceしてないし・・・結局調べたら
何と rack version 1.6から仕様が変わったらしく、デフォルトが http://localhost:3000 となるらしい。
要するに自分自身以外からのアクセスが出来ないと。
これだと困るので
$ rails s -b 0.0.0.0
ってやると、どこからでもアクセスできるようになる。むぅ、ちょっとめんどくさいな。
rails4.2環境は初めてなので、こんなところでも引っかかってしまう。
2015/07/08
2015/07/07
epgdump と ffmpeg + x264 + aac 再び
2年前にやったことだけれど Shuttle でも同じように使いたいので、
まずは標準的なセットアップをしておく。
epgdump
系統が幾つかあるようなのだが、json使いたいんで、こっちを使ってみる
$ git clone https://github.com/Piro77/epgdump.git
cmakeいるらしい
$ sudo apt-get install cmake
ビルド
$ cd epgdump
$ cmake .
$ make
xml,json,csv共にやってみた。良好である。
ffmpeg
こっちは後で手を加えていきたいところだけど、今は標準的なビルドをしておく
参考。英文だけど、情報に無駄がない
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
必要最低限のライブラリインストール
$ sudo apt-get install yasm libx264-dev libfaac-dev
yasm入れておかないとcpuエンコ速くなりません。
コンフィグ実行
ビルド & インストール
$ make
$ sudo make install
/usr/local/binにffmpeg,ffprobe,ffserverが。その他/usr/local/に開発用ファイルが入る。
テスト
$ recfsusb2n -b -i hd 21 30 test.ts
$ ffmpeg -y -i test.ts -c:v libx264 -c:a libfaac -preset superfast -f mp4 -threads 0 test.mp4
はい。滞りなく。
qsv対応?
nvencのIntelCPU版みたいなやつの組み込みで高速化とかもいずれ。
さあ、ここから新しい録画システム作りの始まりです。
まずは標準的なセットアップをしておく。
epgdump
系統が幾つかあるようなのだが、json使いたいんで、こっちを使ってみる
$ git clone https://github.com/Piro77/epgdump.git
cmakeいるらしい
$ sudo apt-get install cmake
ビルド
$ cd epgdump
$ cmake .
$ make
xml,json,csv共にやってみた。良好である。
ffmpeg
こっちは後で手を加えていきたいところだけど、今は標準的なビルドをしておく
参考。英文だけど、情報に無駄がない
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
取得
$ git clone https://github.com/FFmpeg/FFmpeg.git
$ git clone https://github.com/FFmpeg/FFmpeg.git
必要最低限のライブラリインストール
$ sudo apt-get install yasm libx264-dev libfaac-dev
yasm入れておかないとcpuエンコ速くなりません。
コンフィグ実行
./configure \
--enable-gpl \
--enable-libfaac \
--enable-libx264 \
--enable-nonfree
ビルド & インストール
$ make
$ sudo make install
/usr/local/binにffmpeg,ffprobe,ffserverが。その他/usr/local/に開発用ファイルが入る。
テスト
$ recfsusb2n -b -i hd 21 30 test.ts
$ ffmpeg -y -i test.ts -c:v libx264 -c:a libfaac -preset superfast -f mp4 -threads 0 test.mp4
はい。滞りなく。
qsv対応?
nvencのIntelCPU版みたいなやつの組み込みで高速化とかもいずれ。
さあ、ここから新しい録画システム作りの始まりです。
recfsusb2n --http と リモートVLC再生
$ recfsusb2n -b -H 8888
でデーモン起動して、愛機iMacのVLCから’http://shuttle:8888/27'とかで再生されるはず。
と思ったけど若干手を加える必要があった。
VLCでアクセスした時に、recfsusb2n内の'gethostbyaddr'関数でコケてしまい
デーモンが終了してしまう。
fsusb2n.cpp内の問題箇所をざっくりコメントアウト
この修正を加えたrecfsusb2nを再度ビルドして、デーモン起動して、他のPCからのVLCアクセスで無事再生されました。
よかった〜
VLCのネットワークストリーム再生で、http:://shuttle:8888/24とかで綺麗に再生される。
iPadのVLCやVLC for Android、VLC for Fireでも綺麗に再生された。
それ以外の亜流品はダメだった。
でデーモン起動して、愛機iMacのVLCから’http://shuttle:8888/27'とかで再生されるはず。
と思ったけど若干手を加える必要があった。
VLCでアクセスした時に、recfsusb2n内の'gethostbyaddr'関数でコケてしまい
デーモンが終了してしまう。
fsusb2n.cpp内の問題箇所をざっくりコメントアウト
#if 0
peer_host = gethostbyaddr((char *)&peer_sin.sin_addr.s_addr, sizeof(peer_saain.sin_addr), AF_INET);
if ( peer_host == NULL ){
fprintf(stderr, "gethostbyname failed\n");
exit(1);
}
fprintf(stderr,"connect from: %s [%s] port %d\n", peer_host->h_name, inet_ntoa(peer_sin.sin_addr), ntohs(peer_sin.sin_port));
#endif
どこからアクセスされたかを表示したいだけの箇所らしいので、特に不要。この修正を加えたrecfsusb2nを再度ビルドして、デーモン起動して、他のPCからのVLCアクセスで無事再生されました。
よかった〜
VLCのネットワークストリーム再生で、http:://shuttle:8888/24とかで綺麗に再生される。
iPadのVLCやVLC for Android、VLC for Fireでも綺麗に再生された。
それ以外の亜流品はダメだった。
登録:
投稿 (Atom)