読者です 読者をやめる 読者になる 読者になる

kariaの日記 @ Alice::Diary

フフーン、ノリツッコミの鳩子がはてなブログ書いちゃうよー

kariaの日記です。本家サイトはside=2です。Twitter ID:@karia
過去記事へのリンクとかは最下部参照。

pig-media-serverを立てた

tech

立て方メモっておく。

そもそもなにそれ

id:ssig33がつくったメディアサーバです。特定ディレクトリにある動画などのメディアファイルをブラウザで簡単に検索したり視聴したりできます。見てる動画のgyazoをワンクリックで撮れたりもします。

ひつようなもの

  • てきとうなmp4の動画

mp4以外のファイルが置いてあっても問題ありませんが、インラインで再生したりgyazoしたりできるのは今のところmp4だけみたいです。

うちではCentOSを使っていたためruby1.8系という化石のようなバージョンが入っていましたが、そういう場合はrbenvとか使うと特定ディレクトリでは別バージョンを動かすなどという事ができて良い感じです。

参考:rbenv を利用した Ruby 環境の構築 | Developers.IO

  • Node.js
 # yum install nodejs npm

とかで入ります。これは例なので入れ方は適当にググってください。

インストールする

ssig33.com - Web アプリケーションを配布する

ここにあるとおり、

 gem install pig-media-server

で終わります。が、このままでは起動しません。

初期設定

 $ export EDITOR=vi
 $ pig-media-server setup

とするとviの編集画面が立ち上がってくるのでyaml形式でconfigを書きます。こんな感じでいけるのではないかと思います。

  path: "/hoge/fuga/volume"
  groonga: "/hoge/fuga/groonga"
  exclude_path: 
    - himitsu_no_path
    - miteha_ikema_sen
  user_data_path: "/hoge/fuga/userdata"
  hostname: hoge.side2.net

pathには動画が格納されているディレクトリを指定します。pathを変更すると動画のクロールがやり直しになるので慎重に決めた方がよさそうです。

groonga、user_data_pathはそのままgroongaおよびユーザデータのデータディレクトリのようです。外から見えない適当なディレクトリを指定すればよいでしょう。exclude_pathはよくわかりません クロールから除外するパスをここに列挙すれば良いようです。

hostnameはおそらくデフォルトでは表示されないので、追記しておきましょう。書かないとちゃんと動きませんでした。

:wq とかで編集画面を終了するとsetupコマンドは終了です。

 $ pig-media-server server 12345

とすると立ち上がると思うので、ブラウザからアクセス可能かどうか確認すると良いでしょう。といっても、この段階では動画のクロールをしていないので何も出来ません。

動画をクロールする

 $ pig-media-server crawl

とすると、path配下に存在するファイルを全てクロールします。そこそこ時間がかかります(3万ファイルで数分程度)、おとなしく待ちましょう。

フロントのWebサーバを立てる

さすがにポート12345に直接アクセスするのは不便なのでフロントのWebサーバを立てます。

という感じでWebサーバを設定しときましょう。apacheなりnginxなり好きにしてくださいという感じですが、参考までにうちのapacheではこんな感じで設定しました。

 proxyPass /volume/ !
 proxyPass / http://localhost:12345/
 DocumentRoot /hoge/fuga

こうすると、/volume/配下の動画にアクセスが来たとき/hoge/fuga/volume/配下にある動画にapacheから直接配信してくれます。動画はブラウザから見た時必ず/volume配下にある必要があるので注意が必要です。

例:pathを "/hoge/fuga/" 、hostnameを "hoge.side2.net" に設定した場合

個人で楽しむ場合(というか個人で楽しむ場合が圧倒的に多いと思うので)、適当にBasic認証などをかけておくとよいかと思います。

使う

トップページにはこんな感じの画面が出てくると思います。

f:id:karia:20141005031224p:plain

Latestを押すと最近クロールした動画が出てきますが、まあ適当に検索してみます。

f:id:karia:20141005031612p:plain

出ました。お目当ての動画が出たら、ファイル名をクリックすれば直接ダウンロードすることができますが、その横にある"watch"というリンクを辿ると、

f:id:karia:20141005031737p:plain

このようにインラインで再生できました。おめでとうございます。ありがとうございます。ここでGyazoリンクを押せばGyazoに投げることもできるし、別の動画を再生したい場合は下にスクロールすると先ほどの検索画面がいます。

あとはがんばってください。というか、まだ使いこなせてないので何か発見したら追記なり次の記事を起こします。