2016/03/24PT2、TVRock、TVTest、EpgDataCap_Bon、BonTsDemuxなどによる録画サーバ構築は楽しいものです。Windowsで環境を構築すると、休止/スタンバイ状態を挟んで録画/エンコードができるため、省電力ですし、うるさくありません。不満は、iPhone/iPadとの連携が弱いこと。マカーで、iPhone/iPadをMacのiTunesと同期させている場合は、Windows版のiTunesとの同期方法を考えねばならず、頭が痛いのです。面倒だと結局録画を見なくなるというのは何度も経験済。そこで、foltiaのように、エンコード済み動画のVideoCastの作成を試みてみました。録画、エンコードなどの作業はWindowsマシンで済ませ、Windowsマシン上に立てたWebサーバ経由でVideoCast配信し、それをMacのiTunesで受け取るという作戦です。WindowsのiTunesを使ってもOKです。Windowsマシンでエンコードが終わればMacのiTunesで受け取れ、それをiPhone/iPadに同期できるため、非常に便利です。単純に録画サーバからクライアントマシンに動画をダウンロードしてくる仕組みとしても便利だと思います。SP3での説明となっています。SP3でPT2とTVRock/TVTestを中心とした録画サーバ環境を構築中ですが、このエントリではその基本設定については解説していません。手を付けたばっかりだというのと、解説を始めると手間が膨大なので。それを専門にしているサイトを参照してください。iPhone向け自動エンコード環境の調整この環境を作るためには、iPhone/iPad向けの自動エンコードができる環境を作る必要がありますが、その要になるBonTsDemuxに同梱のffmpegほか各地で手に入る最近のプリビルドのffmpegは、iPhone/iPad向けのエンコードで重要な音声コーデックAACを司るlibfaacが、ライセンス問題の関係で使えない状態になっているため、少々の調整が必要です。世の中のほとんどのiPhone向けエンコードの説明は、このlibfaacを使うことを前提にしているため、困った人も多いと思います。今回のエントリには直接関係ありませんが、libfaacを使わずiPhone/iPad向けにエンコードをするための手順を書いておきます。自動エンコの環境ができている人は読み飛ばしてください。バグ修正」を入手します。最新版のffmpegに差し替えここから最新版のffmpegをもらってきて、BonTsDemux同梱のffmpegと差し替えます。II向けの最適化がされたものを選択しました。最近のffmpegは、プリセットの-vpreを指定する場合、プリセットファイルがあるディレクトリを環境変数に設定しておかないとなりません。BonTsDemuxの中に.ffmpegディレクトリがあり、その中にプリセットファイルが入っているので、BonTsDemuxをインストールしたディレクトリを環境変数FFMPEG_DATADIRに設定します。自分は.ffmpegディレクトリをE:\.ffmpegに移動しており、スクリーンショットはそのような指定になっています。コンピュータ>プロパティ>詳細設定>環境変数」で設定できます。cap_sts_sea.iniを編集BonTsDemuxの実行ファイルと同ディレクトリにcap_sts_sea.iniというファイルがありますので、その末尾に以下のように追記。experimental」というオプションを指定する必要があるということ。ffmpeg内蔵のAACコーデックはlibfaacより完成度が低い可能性があるのでビットレートを160kと高めに指定していますが、特に音質的に問題は無さそうです。TVRockの「設定>プロセス>コマンドを実行する」欄の設定TVRockの録画終了後に自動的にBonTsDemuxでエンコードをするためにTVRockの「設定>プロセス>コマンドを実行する」欄に以下のように設定。-quit録画終了後に休止状態に移行させる設定にしており、startコマンド経由にするとすぐに制御がTVRockに戻ってしまい、エンコードの終了を待たずして休止状態に移行してしまうため、startコマンドを経由せず直接実行しています。TSがいくつかありました。TSは、TSSplitterでHDだけ分離させるとうまくいくことが多いようです。うまいこと自動処理に組み込めたら書き足したいと思います。TVRockからstartコマンドを使わず直接BonTsDemuxを起動すると、ffmpegのエンコードがひっかかった場合に次がつかえてしまい、なおかつシステムが休止状態に移行しないため、うまくありませんでした。TVRockの「スリープタイマー(休止)」機能(CPU使用率/ネットワーク転送量にしきい値を設け、しきい値を下回ったら休止状態に移行する機能)に任せるのがよさそうです。エンコ前のTSSplitterも必須なので、結局はtaskenc.vbsを利用するのが最善ということになりそうです。XPで動かないのですよね......。Shellを入れると動くようになるかな?Cygwin/Apache/Rubyのインストールさて、iPhone/iPad向けの録画後の自動エンコードができるようになったところで、本題のVideoCastの設定です。Webサーバと、VideoCastのためのcgiに必要なRubyをインストールします。http://www.cygwin.com/Cygwinのサイトからsetup.exeをダウンロード、実行します。パッケージの選択のところで、画面上部に「Search」というラベルのある検索窓が表示されるので、そこでApacheと入力。Server」が出てくると思います。その左にあるSkipをクリック。(スクリーンショットは既にインストール後であるため、Keepとなっています)今度は検索窓に「Ruby」と入力。launguage」が出てきますので、左のSkipをクリック。今度は検索窓に「cygrunsrv」と入力。initiator」が出てきますので、左のSkipをクリック。画面下の「次へ」ボタンを押し、インストールを完了させます。80次のように書き換え。#-1以下のように書き換え。これを書き換えておかないと、サービスから起動できません。</Directory>次のディレクティブを追加。自分の環境では、F:\moviesに動画を貯めているので、F:\moviesがWebサーバで公開されるように設定しました。各自の環境に合わせて設定してください。Cygwin版のApacheでは、見ての通り「F:\movies」を「/cygdrive/f/movies」と表現します。</Directory>Apacheの起動CygwinでApache2を動かす上記のページを参考に、Apacheを起動します。今回はプロキシサーバとしては機能させないので、「更に、以下の内容の/etc/apache/conf.d/proxy.confを作成した」以下は読み飛ばしてOK。8010」に変更したのは前述の通り。アクセスすると、Apacheの動作が確認できるでしょう。動いていたら以下を実行して、ApacheをWindowsのサービスとして登録します。次回のOSの起動時から、自動的にApacheが実行されるようになります。-Fpt2casting.cgiの設置この通りに設定すると、「<Cygwinをインストールしたディレクトリ>/var/www/cgi-bin」がcgiの動くディレクトリになります。以下のスクリプトpt2casting.cgiを「<Cygwinをインストールしたディレクトリ>/var/www/cgi-bin」に置きます。保存する際のエンコーディングは「UTF-8」にしてください。pt2casting.cgiは、dircastを元にして作りました。Nihondoさんありがとうございます。以下のように操作し、cgiに実行権を与えます。exitさらに、「<Cygwinをインストールしたディレクトリ>/var/www/cgi-bin/pt2casting.cgi」をテキストエディタで開き、以下の2項目を自分の環境用に書き換えます。“http://192.168.1.200:8010/movies”動画ファイルを置いているディレクトリを指定します。動画ファイルを置いているローカルのディレクトリのパスと、Webサーバから見た場合のURLを指定するわけです。自宅環境では動画ファイルを置いているのはf:\moviesで、録画サーバのIPアドレスを固定にしており、それが192.168.1.200です。このパスとIPアドレスは、それぞれ違うかと思いますので、自宅環境に合わせて読み替えてください。pt2casting.cgiを動かしてみるさあ、かなりはしょり気味できましたが、設定は完了です。アクセスしてみましょう。うまくいっていれば、RSSらしきものが表示され、DIR_PATHに指定した動画貯めディレクトリにある動画ファイルが一覧になっているかと思います。デフォルトでは、拡張子”mp3′′、”m4a”、”m4v”、”mp4′′、”wma”、”wmv”のファイルのみがリストアップされます。URLをコピーして次のステップに進みます。Mac側の設定iTunesにVideoCastを登録iTunesを起動し、メニュー「詳細>Podcastを登録」を選択。開いたダイアログにコピーしたURLを貼り付けます。うまくいっていれば、iTunesに登録したVideoCastの中身がリストされるでしょう。登録したVideoCastの画面の下側に「設定...」というボタンがあります。ここでPodCast/VideoCastのチェック間隔や、新規のアイテムがあった場合のダウンロード規則について設定できます。iTunesで動画をダウンロードした後、iPhone/iPadを接続し、同期。適切に設定されていれば、iPhone/iPadに動画が自動的に転送されると思います。これはiPhone/iPad革命だ!ちょっと大変ですが、この環境をいったん構築すると、iPhone/iPadが化けます。これまでiPhoneもiPadもTwitter専用機としか見えていませんでしたが、動画のカリスマ、動画のエヴァンジェリスト、そんな感じで見えてきます。挑戦してみてください。進んだ使い方pt2casting.cgiには引数を与えることができます。通常古い動画が上に来るように表示されますが、「order=reverse」を追加すると新しい方が上に来るように表示されます。http://192.168.1.200:8010/cgi-bin/pt2casting.cgi?order=reverseキーワード検索デフォルトでは、対象ディレクトリにある特定拡張子を持つファイルがすべてリストアップされますが、「search=キーワード」といった具合にキーワードを指定して、キーワードを含むファイルだけをリストアップさせることができます。http://192.168.1.200:8010/cgi-bin/pt2casting.cgi?search=まどかマギカただし、キーワードはUTF-8でURLエンコードしたものを指定してください。(Windows版のiTunesではURLエンコードは不要)URLエンコードは以下のページなどでできます。http://home.kendomo.net/board/decode/「まどかマギカ」をUTF-8でURLエンコードすると以下のようになります。http://192.168.1.200:8010/cgi-bin/pt2casting.cgi?search=%E3%81%BE%E3%81%A9%E3%81%8B%E3%83%9E%E3%82%AE%E3%82%ABこの機能で専用のchannelを作ることができます。二つのVideoCastはいずれもpt2casting.cgiを利用しており、引数違いで二つ登録しているわけです。ソート順とキーワードの両方を指定こんな感じ。PT2Casting」のようになりますが、これを任意のものに置換できます。詳しくはpt2casting.cgiを読んでください。pt2casting.cgiを修正。リンク切れが発生する場合があったため、pt2casting.cgiを修正。リンク切れが発生する場合があったため、pt2casting.cgiを修正。「ピタゴラスイッチミニ」のURLエンコードが「%83s%83%5E%83S%83%89%83X%83C%83b%83%60%83~%83j」になってしまい、リンク切れすることが発覚。私はPT1が出始めた頃から(なので2年ほど前?)、同様にTvRock+BonTsDemux+独自開発のWHSでPodcastとして、宅内iMacへと録画した番組を配信しています。うまく再生できない動画はもしかすると指定したサービス以外も併せて録画されているケースかもしれません。録画」でググれば、特定サービスのみを録画する方法を解説しているページがいくつか出てきます。SP3ですとおそらく標準で入っていたはずです。SP3ではSP3の中に入っていたはずなので、個別にはインストールしていません。PM当ブログで数少ない情報提供コメント大変うれしいです。特定サービスのみ指定する方法で試してみたいと思います。SP3で実行すると、まずWScript.StdErr.Writeが実行できずにエラーが出てしまいます。それらをコメントアウトしたものの、それでもうまく動いていないので後回しにしている状況です。CygwinでApacheを起動させる工程がどうもうまくいきません。他意はありませんが、Apache1.3をインストールしました。読み替えてください、というか直しましたけど。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。