iPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作る
TvRemoteFilesのダウンロードのみの方は→ こちら
今まで当Blogではネットワーク経由で"TS抜き"チューナーを使う仕組みとして何度か、Spinelを使った家庭内配信をご紹介していたのですが、これはロケフリ視聴というよりも、チューナーのフル機能を家庭内の全てのPCで使えるようにするのが目的でした。
Spinelは家庭内の十分なLAN帯域が確保できる環境内であれば全てのPCをテレビや録画機に変身させることができ便利この上ないのですが、これだけだと単に視聴したいだけの場合もiPhoneやAndroid端末からは(SpinelクライアントやTvTest等が開発されていないので)直接テレビを観ることはできませんし、またネットワーク帯域を大食いするため、家を離れた場所でPCから家のチューナーを使ってテレビを視聴する「ロケフリ視聴」という使い道にも向いていません。
一方そのような"TS抜き"環境で録画されていく動画ファイルの再生環境やライブラリ化についても、過去の記事ではTvtPlayやWhiteBrowserをご紹介していましたが、これも同一LAN上のPCでは便利に使えるものの、モバイル端末やリモート環境を想定したものではありませんでした。
そういったモバイル環境や非Windows環境でテレビ視聴&動画鑑賞を目一杯楽しめるフリーウェアとして、この記事ではTvRemoteViewer_VB をご紹介したいと思います。
このソフトは最初はロケフリ・テレビの実現が主眼で動画ストリーミングはオマケ的だったのですが、バージョンを重ねるうちに現在では動画ストリーミングの目的だけで使っても(Qloud Media等と比較しても)十分使えるものになっていると思います。(勿論放送TSファイルだけではなく大抵の動画ファイルのストリーミングに対応しています。)
さて、ロケフリを実現するソフトとしては以前からRemoteTestなど十分に実績のあるものがあったのですが、今に至ってのご紹介になったのは、「既に公開の停止されたRemoteTestに代わって現役ソフトとしての発展が見込めるTvRemoteViewer_VBが出てきた」という点が大きいものの、他にも訳があります。
リモート視聴をおこなう際、ネットワーク帯域だけの問題であればSpinelのような「ストリーム圧縮のない」仕組みであっても、太いアップ/ダウンストリームの回線さえあれば理論的には可能なのですが、公衆ネットワークの帯域を無駄に使ってしまう点でハタ迷惑ですし、特にアップストリームの使い過ぎはプロバイダの帯域制限に引っかかる危険性があります。したがってリモート視聴に必要十分な画質/帯域に圧縮してから送る、というロケフリ視聴向けサーバ・システムは不可欠になります。
しかしそれ以前の問題として、以前「まねきTV」が違法とされた事が解釈によっては、(不特定多数ではなく)自分での利用に限定したリモート視聴の仕組みであっても二次放送と見なされて、違反と判断され得るのではないか、という疑いがありました。
この辺はある意味厳密な法規定ではなく法の運用で決められている話なので、公にやっている事例が無い以上どこまでなら可能なのかは判断のしようがなく、そういう話もあってかSpinelの場合は作者の意思として利用の前提条件にリモート視聴には使わないという制限が付いていましたし、RemoteTestの作者が公開を止めてしまったのもその辺の恣意性を警戒しての事かもしれません。
ところが「テレビの放送や録画をリモートから視聴する」という仕組みは(iPhone/Androidでの持ち出しすら不自由な現状ではTV/レコ共々ますます売れない、という現実をなんとかしようと思ったのか)NexTV-F起案で仕様を決めたようで、"nasne"についてはこの秋から、またBDレコーダについてはその少し前から、いずれもソニーが先鞭をつけて堂々と始めることになり、「公にやっている事例」が存在することになりました。(さすがルール拡大解釈の請負人ソニー様・・)
ある意味毒見済みとなった訳で、そうとなれば「TS抜き」システムであればより簡単で柔軟な構成が実現できる応用分野なので、それをご紹介できる環境は揃ったと判断したわけです。
ただそういう経緯ですので、外からのご利用は厳密にアクセスをパスワード等で保護の上、ご自身での視聴の範囲内に留めることを守ってください。その辺を守っていただかないとご自宅のシステムのセキュリティが守れないのは勿論のこと、二次放送行為として罰せられる可能性があります。
「TS抜き」環境をベースとするメリットは、(この話に限りませんがメーカー独自仕様やガラバゴス規格に振り回される事なく)HLSという映像配信の標準の1つと目され今後の発展も見込まれる手順によって、機種を選ばず特別な端末用ソフトも不要な形で、「痒い所に手が届く」システムが構築できる点です。(考えてみればHLSは配信のために毎回無数のビデオファイルに「ダビング」する仕様なので、「ダビ10」ルールでは永遠に利用できませんね。こんなところにもガラパゴスな業界集団が周囲の忠告に耳も貸さずに作った規格の残念さの事例が・・)
実際に試してみると確かにTVTestで直接観るのと比べれば遅延もありますが、家の中でiPad等でもTVが見られるのは単純に便利ですし、安いAndroid端末を防水パックした上で「お風呂TV」にするのも楽しそうですね。
外からだと家に帰れない時や出張中に見逃したくない番組や気になるニュースを見るのに便利です。(特にワンセグでも見られない衛星放送など。)
また録画したものをこの仕組みで外から再生するのも簡単で、一種のクラウド型サービスとして、異なる端末で再生シーンを引き継ぎながら観られるのも便利です。
但し画質や軽快さの点ではMP4化して持ち運ぶ従来型の動画視聴のほうが有利な面もあります。この辺のリモート再生は(NexTV-Fの名前を借りて企画した企業が期待するような)iTunes同期に替りうるものではなく、、使い分けるとより便利になると思います。
またスマホでのご利用にあたっては(当然の事ながら)パケット定額など、データ通信量が増えても料金の変わらない契約形態である事をご確認ください。知らずに過大な通信料金になったとしても、当方では責任は負えません。
最新版の視聴画面はこのようになっています。
どのプラットホームでもブラウザから同じ手順で使えますし、全画面視聴もOKです。ブラウザ画面ならHTML5とAjaxの技術を使って、このようにニコニコ実況を流すことも出来るようになっています。
テレビ画面の右下には図のような番組情報エリアが表示されます。
ここには現在視聴中の番組/ファイルの情報のほか、裏番組のコメント勢いが気になった時はカウンター上でクリック/タップすれば
現在のそのチャンネルの番組情報が表示されますし、下のようにチャンネル切り替え前に番組内容を確認することもできます。
またファイル再生については個別のファイル再生のほかにプレイリスト機能もあり
家のPCや通勤中のスマホで再生を引き継ぎながら長いシリーズ物等を鑑賞していくことも可能になっています。
またこちらはスマホのトップ画面の例ですが
こんな感じで、プラットホームに合わせて自分で使いやすいようにカスタマイズできる点も特徴になります。
当記事ではこのようなソフトの使い方を以下の内容・順番でご説明いたします。
1.TvRemoteViewer_VBの導入
1) 準備
2)各ソフトウェアのダウンロードと配置
3)カスタマイズ用ファイルの追加(上書き)
4)一旦起動して、初期パラメータをセットする。
5) 番組表の正常表示のための設定2.家庭内LAN上での使い方
1)トップメニュー
2) 番組表からストリームを起動
3)使いやすい番組表に変更
4)ニコニコ実況表示機能
5)ファイル再生のストリーミング
6)プレイリスト機能
7)二ヶ国語放送(または録画)で日本語/英語音声を選択する
8)タイムゾーンの変更
9)お休みタイマ
10)手動配信
11)その他の管理・設定機能3.外部から家庭内LANにアクセスして視聴するためにDynamicDNSとVPNを設定する
1) 設定手順
2) 解像度とビットレートの関係について4.使い勝手の向上とストリーム起動の安定化のためにSpinelとRDCTを利用する
1) 主要なメリット
2) Spinelの説明と導入方法
3)RDCTの説明
4)自動生成プログラムによるクイック導入
いくつかの点でオリジナルに独自の改修を加えた部分がありますが、私なりの使い易さを考えたカスタマイズですので、ご活用いただければ幸いです。
なお、TvRemoteViewer_VBはアップデートが速く、機能の進化や使い勝手の改善も多いです。既にTvRemoteViewer_VBをお使いの方も、折を見て最新版にアップデートするのをお勧めします。その際は以下の手順でおこなってください。
・TvRemoteViewer_VB.exeを一旦終了
・TvRemoteViewer_VB.ini と form_status.txt を、どこかにバックアップする。
・TvRemoteViewer_VB最新版をDL&解凍し、中のファイルを全て現在のフォルダに上書き。
・新しいTvRemoteViewer_VB.exeファイルを管理者モードに再設定
・バックアップした form_status.txt を上書きで戻す。
・新しいTvRemoteViewer_VB.iniファイルを右クリック→編集で開いて、古いTvRemoteViewer_VB.iniファイルも編集で開き、上から順に見ながら自分でカスタマイズした箇所を、新しいTvRemoteViewer_VB.iniファイルに移植していく。
・その上で、(同じ名前でも使い方に変更があった設定項目もあるので) こちらの設定一覧を上から再度見ながら、TvRemoteViewer_VB.ini の設定を順にチェックして、必要な箇所を変更し、終わったら保存する。
・当ブログが提供しているファイル類について、リンクの手順に従って改めてダウンロードの上、全て指定箇所に上書きコピー。
以上で更新OKです。
まずは家庭内LAN/Wi-FiI環境で、スマホ・タブレットやPCから自由に視聴できる環境を作成します。ここをしっかり作っておけば、リモート視聴に必要なのはVPN環境の追加だけです。
そもそもの前提として、この記事の手順でロケフリ環境を作るには、"TS抜きチューナー"をお持ちであることが前提になります。
(チューナー無しでも”ファイル再生”は使えますが、その場合もプロテクト無しの映像ファイルである必要があります。)
この機会に新規にチューナーを導入される場合、このBlogに PX-W3U3/S3U2/W3PE/Q3PE/S1UD/BCUD のようなPLEX系チューナーの導入記事がありますので、それらを導入される方はご参考にしてください。またPT3の導入もWiki等がいろいろ存在しています。
既にPT1/2、FSUSB2/HDUx/DY-UD200/Friio等をお使いであれば、それで問題なく動きます。(ただしそれらは新規入手は難しいですし、今から敢えて選ぶメリットも無いと思います。)
その上で、まずは以下の準備作業から始めてください。
① TvRemoteViewer_VBを動かすPCには、以下のランタイムが必要です。
Microsoft .NET Framework 4.0または4.5
(4.5は4.0の上位互換です。 Spinelで必要なFramework 3.5とは別ですのでご注意ください。)
お使いのPCにどのバージョンのFramework が導入されているかは、以下のファイルを解凍したbatファイルをダブルクリックしてみれば判ります。
(これはatmarkITさんの記事にあったバッチファイルを少々修正の上転載させていただきました。)
ここに「Framework 4.0(または4.5)がインストール済み」と出てくればOKです。
未導入の場合は、Windows7かそれ以前であれば、以下のリンクからダウンロード&導入してください。
http://www.microsoft.com/ja-jp/download/details.aspx?id=30653
またWindows8以降であれば、コントロールパネル(またはスタートボタン右クリックで)→プログラムと機能で、「Windowsの機能の有効化または無効化」を選んで、以下の場所をチェックした上でOKを押し、Framework 4.5を有効化してください。
② Windowsファイアーウォールでポート4003へのアクセスを許可する。
TvRemoteViewer_VB のアクセスには、家庭LAN内であってもリモートであってもポート40003を使いますので、TvRemoteViewer_VBを動かすPC上で該当ポートを開けておく必要があります。ここではデフォルトで動いているWindowsファイアーウォールの設定手順を解説しますが、もし他のファイアーウォールソフトを導入している場合には、それぞれの手順に従ってポート40003のアクセスを許可しておいてください。
コントロールパネルでWindowsファイアーウォールをクリックします。
「詳細設定」をクリックし、Windowsファイアーウォールの設定画面で、左の「受信の規則」をクリックし、次に右の「新しい規則」をクリックして、出てくるウイザード画面で「ポート」を選択して「次へ」を押します。
「TCP」を選択し「特定のローカルポート」を選択して入力欄に「40003」と入れ、「次へ」を押します。次の画面で「接続を許可する」、その次の画面でドメイン・プライベート・パブリックを全てチェックします。
その次の画面ではルールの名前を聞いてきますので、TVRemoteなど適切な名前を付けて、「完了」を押します。これでファイアーウォールの設定完了です。
確認のため、Windowsファイアーウォールの設定画面で(左で「受信の規則」が選択されているのを確認の上で)上で付けた名前を探し、ダブルクリックしてください。
設定内容が出てきますので、特に「プロトコルおよびポート」のタブで「TCP」、「特定のポート」、「4003」が選ばれていることを確認してください。(もし間違っているようであれば、ここで修正するか、右クリック→削除 で一旦該当ルールを削除して、もう1度定義し直してみてください。ここを間違うと視聴は確実に失敗しますので慎重に。。)
③ 対応ブラウザの準備
PCからTvRemoteViewer_VBにアクセスする場合、IEでは正常にアクセスができません(正確には番組表等のフォームが崩れるのと、肝心の配信動画が正常に表示できない) ので、Firefox/Chrome/Opera のいずれかを使います。
もしいずれも未導入のかたは、お好みのものをリンク先から導入しておいてください。(視聴する側のPCにも。)
尚いつもの事ですが、導入時に何も考えずに次へ、はい、などと答えていくとデフォルト(標準)のブラウザが変更されますので、変える気がなければ「デフォルトのブラウザにする」のような該当箇所でチェックを外す/いいえと答えるなど、しっかり意思表示してください。
(Operaは導入時に問答無用で自分をデフォルトのブラウザにしてしまいますので、後からIEなどデフォルトにしたいものを立ち上げ直して、出てくる確認メッセージに答えてデフォルトブラウザを戻してください。)
尚スマホ側はSafari、Chromeなど標準のブラウザでOKですし、Lunascapeでも同じように使えます。
④Flash Playerの導入
PCのブラウザからストリームを再生するためにはFlash Playerが必要ですので、リンク先から導入してください。
これは③の使用するブラウザ導入の後にやらないと該当ブラウザにFlashのプラグインが導入されません(その場合は再度Flashの導入が必要です)ので、このタイミングがお勧めです。
なお、FlashPlayerを導入するとMcAfee Securty Scanなるプログラムも勝手にインストールされてしまうことがあります。(実は上記の画面で導入確認のチェックボックスが付いているのですが、よく判らずチェックされたまま「今すぐインストール」を押してしまう場合が多い。) 導入時に判りますので、うっかり導入してしまって不要な際は、導入後に「プログラムと機能」からMcAfeeをアンインストールしてください。
あと毎度のことながらAdobeのアップデートメッセージは煩いので、途中で出てくる「Flash Playerの環境設定を更新」のダイアログでは、「新しいアップデートの有無を確認しない」にしっかりチェックして「次へ」を押すことが(個人的に)お勧めです。
⑤導入するPCのIPアドレスを固定する。
iOSやAndroid端末からこのPCにアクセスするためには、このPCのIPアドレスを固定する必要があります。
というのは、PCからのアクセスであればローカルLAN内のコンピューターに対しては、
http://server1:4003/
のように、コンピューター名だけ指定すれば、アドレスが固定されていなくても常にアクセス可能なのですが、iOS等のブラウザの場合は(恐らくセキュリティ上の配慮だと思いますが)、IPアドレス以外のドメイン名が入力されると、そのドメイン名が公開されているかをどこかのホストに問い合わせに行き、公開されていないドメイン名だとアクセスを拒否してしまいます。
IPアドレスを直接書けば素直にアクセスしてくれますので、配信するPCはIPアドレスを固定しておいてください。固定IPアドレスの設定方法はこちらのリンクにあります。
ここで例えば192.168.0.200 と設定しておけば、TvRemoteViewer_VBの利用の際はブラウザのアドレス欄に
http://192.168.0.200:40003/
と入れれば良いわけです。といっても毎回入れるのは面倒だと思いますので、アクセスできたらこれをブックマークに登録しておくと良いと思います。
2台以上のPCでTvRemoteViewer_VBを動かして使い分けする時は、それぞれのPCのIPアドレスを
192.168.0.201、192.168.0.202
のように固定していけば良いです。
(これはあくまで例ですので、実際のアドレスはLAN上で他の機器やDHCPとバッティングしない値を設定してください。)
最初に各種ソフトウェアパッケージをダウンロード・解凍して、以下のように配置します。
なお全体の注意点ですが、導入するフォルダ、およびその上位フォルダには日本語(を含む2バイト文字)は使わないようにしてください。例えば上記①~⑦のフォルダ名が全て英数字名でも、全体が「D:\ロケフリ\DIR\」 のようなフォルダの下にあるとNGです。(ffmpegがうまく扱えないようです。) ご注意ください。
① TvRemoteViewer_VB パッケージはリンク先
の「ロケーションフリー TvRemoteViewer_VB」の記事に、バージョンの新しい順に「v0.XX」のリンクでアップされていますので、「v1.03以降」の最新版をクリックしてダウンロードし、適切なフォルダに解凍した上で、中身を実行用フォルダ(以後、\TvRemoteViewer_VBフォルダとします)にコピーしてください。
なおTvRemoteViewer_VBは簡易Webサーバの機能を持っていますが、これは(Windows Vista以降では)管理者モードでの起動が必要な場合があります。(でないと、うまく動かないだけでなく起動すら失敗する)。したがってこのタイミングで、\TvRemoteViewer_VBフォルダにあるプログラム本体 TvRemoteViewer_vb.exe の上で「右クリック→プロパティ」から「互換性」タブを開き、
「管理者としてこのプログラムを実行する」をチェックして、OKを押してください。
(あるいはコマンドプロンプトを管理者モードで開いて、 netsh http add urlacl url=http://+:40003/ user=Everyone を実行しても良いです。)
② 次に、\TvRemoteViewer_VBフォルダの下に\htmlフォルダを作成してください。
③ ②のフォルダに、\TvRemoteViewer_VBフォルダ下の「_設置用ファイル\ HTML_WWWROOTに設定したフォルダにコピー」 フォルダにある(index.htmlなど)全てのファイルをコピーしてください。
④ ストリーム用一時ファイルの作成場所として、たとえば\htmlフォルダの下に \streamフォルダを作成してください。
なお、TvRemoteViewer_VB v0.77以降で 「\streamフォルダは必ず\htmlフォルダの下に作る」という制限が取り除かれましたので、別の場所、例えば別のSSDやRamDiskに作っても構いません。下の図にある%FILEROOT%の設定値に \streamフォルダの場所をきちんと指定すれば、どの場所に置いてもよいようになっています。 フォルダの名前も\streamでなくても良いですが、必ずルートドライブ指定(F:\ 等)ではなく、何かのフォルダを作って指定してください。(ルート指定ではうまく動きません。) 私の場合、ファイルを大量に作成しては削除 を繰り返すこの\streamフォルダ は、システムSSDの性能を長持ちさせるのとアクセス競合を避けるために、別の(ちょっと容量が小さくて他の使い道がなかった)SSDを繋いで \stream専用領域にしました。 |
⑤ ffmpegはお使いのWindowwsの32bit/64bitに合った最新のものをリンク先の「Download FFmpeg git-xxx XX-bit Static」をクリックしてダウンロードし、適切なフォルダに解凍した上で、中身を実行用フォルダ(以後、\ffmpegフォルダとします)にコピーしてください。
*なお、TvRemoteViwer_VB最新版で利用しているhlsセグメントの機能は最新版(2014年12月5日以降に公開)のffmpegでなければ対応しません。
今後新規に導入される方、またTvRemoteViwer_VBを最新版に更新される方は、必ずffmpegは上記サイトから最新版をダウンロードしてお使いください。
古いffmpegバージョンを差し替えの場合は同じフォルダに上書きするだけでOKです。
⑥ 次に、\ffmpegフォルダの下の\presetsフォルダに、\TvRemoteViewer_VBフォルダ下の「設置用ファイル\ffpreset_ffmpegインストール先のpresetsフォルダにコピー」フォルダにある、libx264-ipod640.ffpreset ファイルをコピーしてください。
⑦ RecTaskはリンク先 (うまくDLできない時はこちらのリンク)からダウンロードして適切なフォルダに解凍し、中にある
RecTaskCentre.exe
RecTask.exe
RecTask.default.ini
の3つのファイルを実行用フォルダ(以後、\RecTaskフォルダとします)にコピーしてください。
なお放送の視聴のためにはスクランブル解除が必要です。
PCにUSBカードリーダーとB-CASカードが挿さっていれば、RecTaskは自動的に使いに行きます。
USBカードリーダーではなくFakeWinSCardのような代替手段を使っている時はリンクのようなwinscard.dllなどの必要なセットを、\RecTaskフォルダにコピーしておいてください。
またBonCasLinkを使っている時は、RecTaskはBonCasProxyは使えませんので、BonCasClientが必要になります。
\RecTaskフォルダにBonCasClient.dllと、BonCasServiceのアドレスを記述したBonCasClient.iniを入れた上で、RecTask.ini で、
General.CardReader=BonCasClient
と指定することで、サーバ上のB-CASを使うようになります。
但しBonCasClientは現在非常に入手性が悪いので(作者の方が現在非公開方針で、どこかにアップされてもすぐに削除されてしまう)、お持ちでない場合の1つの代替案としては、カードリーダーと同じPCにTvRemoteViewer_VBも立てる、というのが良いのではないかと思います。BonDriver自体はSpinelを使えばどこからでも使える訳ですし。
⑧ \RecTaskフォルダに配信に使うBonDriverファイルと、対応する.ch2ファイル(チャンネル定義ファイル)を、ご使用中のTVTest(等)からコピーしてください。
この際BonDriver_Spinelのdll.iniファイル、PLEX系のBonDriver***.ini ファイル、PTxのChSet.txt、PTCtrl.exe ファイルなど、BonDriverの動作に必要な付帯ファイルがあれば、それらも忘れずコピーしておいてください。
なお後の4章で解説しているBonDriver_Spinel/RDCTを使う場合は、BonDriver、ch2ファイルなど必要なセットは全て自動生成しますので、そこから\RecTaskフォルダにコピーするだけで良いです。
もしSpinelを導入済であれば、BonDriver_Spinel/RDCTの利用は強くお勧めします。(このためにSpinelを導入するのも良い機会だと思います。)
という理由の1つ「は、BonDriver_Spinelを使えばリモート視聴が録画タスクと競合するのを避けられるほか、複数の配信ストリームで同じBonDriverを使ってもエラーを起こさず、1つのチューナーで片方のストリームでは低解像度、もう片方では高解像度用というような並行配信も可能になるためです。
さらにもう1つ、NHK-BSやCSの一部SD放送の配信がSpinel + BonDriver_RDCTを組み合わせることで(なぜか)配信の失敗が少なくなり、BonDriverの使い分けも意識せずに済むようになるため、使い勝手が上がります。
Spine+RDCTを導入する場合は先にやっておいたほうが手間がかかりませんので、こちらをご参照ください。
以下のリンクからカスタマイズ用ファイル群をダウンロードし、適切なフォルダに解凍してください。この中身を2)で配置したフォルダに(上書き)コピーしていきます。
( なお、Ver1.05からアーカイバを圧縮率の高い7zに変更しました。適切な解凍ソフトを導入していない方は、フリーの7-Zip http://sevenzip.sourceforge.jp/ を導入すればファイル右クリックで7-zipのメニューが追加され、そこから展開(=解凍)できます。)
① 中にあるhtmlフォルダの中身を、2)の\TvRemoteViewer_VB\html フォルダに、サブフォルダも含めて全て上書きコピーしてください。
これはオリジナルの画面をカスタマイズするためのもので、スマホ画面の大きさの適性化、一部文字化けの解消、ニコニコ実況表示機能の追加、直感的な操作性を高めるような画面デザインの付加のほか、PCでもそのまま視聴するためGPLのアドオン(projekktor)を組み込んでいます。
② 同じく中にある\rootフォルダの中身(HLS_option.txt、HLS_option_ffmpeg_file.txt、HLS_option_ffmpeg.txt)を、\TvRemoteViewer_VBフォルダに上書きコピーしてください。これはffmpegのhls用新オプションに対応(2015/3/1)のほか、低ビットレート用プロファイルや二ヶ国語放送対応プロファイルが追加してあります。
③ 中にある\RecTaskフォルダのRecTask.ini を\RecTask実行用フォルダにコピーしてください。これはNHK-BSの視聴が失敗する問題に対する対症療法のパラメータ(Logging.OutputToFile=true)を書き加えたものです。
ここまでセッティングできたら、一旦\TvRemoteViewer_VB フォルダのTvRemoteViewer_vb.exe ファイルをダブルクリックして起動してください。
タスクトレイにこのようなアイコン が出ていたら立ち上がっていますので、これをダブルクリックしてください。設定画面が表示されます。
ちなみにTvRemoteViewer_VBの画面をタスクトレイに戻す際には、間違ってもボタンを押してはいけません。(TvRemoteViewer_VBが終了してしまいます。)
タスクトレイに戻すときには必ず、最小化ボタン_ を押してください。
上図の赤い囲みのように、2)で配置したフォルダおよび実行ファイル/フォルダの情報を反映させてください。
[...]をクリックすればファイル/フォルダの選択ダイアログが表示されますので、マウスで探して設定していくことができます。
また緑の囲みの部分は[初期値]のボタンを押せばセットされますので、3箇所とも初期値を設定してください。
次に上図の赤い囲みの解像度の設定をプルダウンから適切に選んでください。すると緑の囲みにある「HLSオプション」に長い文字列が記入されます。(ここの編集は必要ありませんので、弄らないでください。)
これは配信のデフォルト解像度で、配信起動する時に解像度を指定しなければ自動的にこの解像度になります。
(注意) ここをきちんと設定しておかないと、解像度を指定しないデフォルト解像度(---)での配信スタートが必ず失敗します。あまり重要でない指定に見えますがここをちゃんと指定しておくのは重要で、「きちんと設定したはずなのに何故かうまく配信できない!」と焦ることになります。
リモート視聴での回線の太さも考慮して、適切なものを必ず選んでおいてください。
③iniファイルの設定
図の「設定ファイルを編集」ボタンを押すとTvRemoteViewer_VB.ini ファイルの編集画面が立ち上がります。
(エクスプローラーからTvRemoteViewer_VB.ini ファイルの上で「右クリック→編集」でも構いません。)
ここでは上のほうから以下のようにセットしていってください。
tsfile_wait = 2
デフォルトでは3になっていますが、2に修正してください。(このほうが配信開始が早くなります。)
STOP_IDLEMINUTES = 0
視聴端末が無い状態でここに指定した時間(分)が経過すると、動いているストリームはすべて停止します。
ただし、ファイル再生のストリーミングでは意図的にストリームを保持したい場合が多いですので、ここは特にこだわらない限り 0 (つまり、自動では停止しない)の設定にしてください。
また本来、「視聴していなければ」ストリームを止めるタイマなのですが、視聴中でもこの時間でストリームを止めてしまうケースがあるようです。そういう現象を避けるためにも、ここは 0 の設定が推奨です。
VideoPath = "録画先フォルダのフルパス1","録画先フォルダのフルパス1",・・・,"録画先フォルダのフルパスn"
録画ファイル配信機能ではここで指定したフォルダにあるファイルを一覧にしますので、必要なものを列記してください。
ただしネットワーク上で共有しているフォルダについては、X: のようなドライブ名が割り当ててあってもそれは使わず、上図のようにネットワークパス="\\コンピュータ名\・・・" のような形式で書いてください。(割り当てドライブ名を使うとTvRemoteViewer_VBがアクセスできない現象が起きやすいです。)
ネットワークパスは図のように、エクスプローラーで「ネットワーク」から辿って行くと表示されますので、そのアドレス欄からコピペすれば良いです。
沢山ファイルがあっても選ぶのが大変、と思われるかもしれませんが、ファイル再生ではキーワード検索やソート機能がありますので、あるだけ登録しておけば割と自由に観たいファイルを指定できます。
一覧に表示するファイルタイプは、以下のように VideoExtensions = ".拡張子1", ".拡張子2" で指定できます。
ここに何も指定しないと単なるテキストファイルやログファイル等も全て一覧表示されるので煩雑ですし、うっかり選ぶと配信エラーを起こして時間の無駄になります。
.ts .mp4 、他に.mkvや.mov を利用される方はその辺も指定しておけば良いと思います。
.
NHK_dual_mono_mode = 3
NHK-BSプレミアムで特殊な音声チャンネル構成になる場合に対する設定です。とりあえず余り悩まずこれで。
TvProgramD = xx ;地上波番組表で表示する地域の番号
各地域の番組編成に合わせるための指定値は TvRemoteViewer_VB.ini の中にコメントで列記してありますので、ご参照ください。
(v0.74で取得元変更のため都道府県番号が変わっていますので、地上波番組表をご利用の方でバージョンアップされる場合には変更を忘れずに。)
TvProgramD_BonDriver1st = "地上波用BonDriver.dllその1","地上波用BonDriver.dllその2",・・・
BonDriverに地上波用と衛星用の種別がある場合、ここに地上波用BonDriverを列記しておけば、番組表で地上波チャンネルのBonDriver選択欄に、列記したBonDriverのうち使っていないものをデフォルト表示してくれますので、現在どれが使用中か、またどれが地上波用か、等をいちいち考えずに済みます。
同じように衛星用BonDriverは以下のように列記すると良いです。
TvProgramS_BonDriver1st = "衛星用BonDriver.dllその1","衛星用BonDriver.dllその2",・・・
ただしここに列記したものを使い切った場合、他のBonDriverをデフォルト表示するのではなく先頭にあるものをデフォルト表示する形になります。
したがってここで指定する場合は、地上波用/衛星用それぞれに使えるBonDriverを全て個数分記載してください。
注意すべきなのは、PTxやW3U3のように1つのBonDriverで複数のチューナーが使える場合、同じ名前のBonDriverを繰り返し列記しても1個分としかカウントしてくれない点です。そういう場合適切な回数使わせるためには上図のように、 T0、T1といった形でチューナー個数分だけサフィックスをつけたBonDriverのコピーをRecTaskに置いておき、それをここで順番に指定するようにしてください。
4章のBonDriver_RDCT を使えば、地上波用/衛星用BonDriverの種別が無くなりますので、この辺の設定は不要です。(RecTaskに置いたBonDriverの中から使っていないものを端末側が候補として選択します。)
また視聴画面から全てのチャンネルに切替えできる点も便利なので、チューナー数に余裕がある場合にはご利用をお勧めしておきます。
TvProgram_tvrock_url = "http://127.0.0.1:8969/nobody/iphone" ;TVRockがTvRemoteViewer_VBと同じPCで動いている場合
TVRock番組表を利用する場合は上のように設定してください。
TVRockが別のPC上で動いている場合、(ここはPC間のアクセスですので)TVRock側のIPアドレスを固定する必要はなく以下のように、
TvProgram_tvrock_url = "http://コンピュータ名:8969/nobody/iphone"
と、コンピュータ名の指定で構いません。
またiphone用番組表を指定しているのは単に加工元としてiphone用番組表を使うのが理由なので、別にiphoneを使わない場合でもこの指定にしてください。
なおEDCB番組表を利用する場合は、この代わりに以下のような指定をしてください。
同じPCで動いている場合 TvProgram_EDCB_url = "http://127.0.0.1:5510/api/EnumEventInfo"
別のPCで動いている場合 TvProgram_EDCB_url = "http://コンピュータ名またはIPアドレス:5510/api/EnumEventInfo"
またWeb番組表が利用できるよう、EpgTimerSrv.iniも、コメント文通りの設定がされているか確認してください。
.
補足として、もしRecTaskを同じPC上でTVRock録画などの用途でも使っている場合、以下のパラメーターもセットしてください。
Stop_RecTask_at_StartEnd = 0
これはTvRemoteViewer_VBだけの都合でRecTaskCentreを終わらせないための指定です。
以上で「ファイル→上書き保存」を選んで設定内容を保存し、メモ帳を終了させてください。
①ローカルのブラウザからTvRemoteViewer_VBにアクセス
設定内容の反映のために、一旦TvRemoteViewer_VB設定画面右上の をクリックしてTvRemoteViewer_VBを終了させた後、再度TvRemoteViewer_vb.exeをダブルクリックして起動してください。
この状態で同じPCからブラウザ(FirefoxまたはChrome)を立ち上げて、アドレス欄に
と入れてEnterを押してください。
なお(このタイミングではありませんが)最初にストリームを起動しようとした時に、以下のようなファイアーウォールの警告が表示されると思います。
これには速やかに「アクセスを許可する」と答えてください。
ブラウザには図のようなトップメニューが表示されます。
ちなみにこの画面はテストの他、今後の実運用でも管理画面として使いますので、「ブックマークに登録」しておくのをお勧めします。
TVRock番組表を使うかたは、トップメニューで[TvRock番組表]をクリックしてください。しばらく待たされた後、図のように番組表が立ち上がります。
これはサーバーが基本機能として提供する番組表です。
日常的に使う番組表はこれではなく、様々な機能を付加したこちらが主体になると思いますが、最初はこの基本の番組表が正しく表示されるようカスタマイズする必要があります。
どういうことかと言うと、上の番組表を例にすれば、チャンネル名のところに
「RecTaskで使うチャンネル名(対応するTVRockのチャンネル名)」
のように表記されているのですが、ちょっと見ただけであちこちに間違いがあるのが判ると思います。例えばRecTaskの「BS-TBS」がTVRockの「TBS」に紐付けられてますし、「NHK総合、NHKEテレ」に至ってはマッチングができず、チャンネル選択すらできなくなっています。
これはRecTaskで使うチャンネル名とTVRockで使うチャンネル名が微妙に違うためにシステムのマッチングロジックが間違ってしまうのが理由で、片方で「NHK」と「BS1」の間にスペースが入っていたり、「イマジカ」が「IMAGICA」になっているだけでマッチングロジックは間違ってしまう、ということが多発します。
このままでは番組内容と実際に起動するチャンネルが違うことになりますので、うまくありません。修正するための設定が必要になります。
この目的で、4章ではBonDriver_Spinel/RDCTを使う前提ですが、マッチングのパラメーターを自動生成するツールを付けましたので、その手順で導入を進めればここは簡単です。
しかしその手順を使わない場合以下のように、手作業でマッチングのパラメーターをiniファイルに作成する必要があります。
具体的には、チャンネル名称が微妙に違っているものについて
TvProgramTvRock_channels = "TVRockのチャンネル名1:RecTaskのチャンネル名1","TVRockのチャンネル名2:RecTaskのチャンネル名2", ・・・・
というふうに列記する必要があります。(記載するのは相互に違いのあるチャンネル名だけでOK。)
このように明示すれば相互のチャンネルが正しくマッピングされるようになります。
ここはやや面倒な作業ですが、最初にやっておかないと番組表の実用度が下がりますので、4章での手順を使わない場合はきちんとやっておいてください。
(ただ4章の手順の場合も 、BSの難視聴用チャンネルが定義されている場合いろいろ悪さをしますので、(8) の「難視聴用チャンネル群を削除する」の作業は必ずおこなってください。)
.
さて、以下が手作業でおこなう場合の具体的な手順です。
(1) 図のように、TVRockのチャンネル名が書かれているch-ts.txt、ch-bs.txt、ch-ch.txt を開いて左に並べます。(ch-ts.txtが存在しない場合はdtv.iniファイルで代用できます。)
次に右に、RecTaskのチャンネル名が書かれているch2ファイルを並べます。
これを左右で順に見比べていくと、図で示したように相互に微妙に違いのあるチャンネル名があることが判ります。
(2) 次にメモ帳を開き、図のように左のch-xx.txtファイルから、違いを見つけたチャンネル名を順にコピペして縦に並べていきます。
(3) 全て列記したら、チャンネル名の左に「半角の:」 を付加してください。
(4) 次に各行の右に、ch2ファイルから対応するチャンネル名をコピペしていきます。
(5) 全て終わったら、各行を「半角の""」で囲み、更に右に「半角の, 」を付加してください。
(6) 終わったら下の方から行末で「DEL」キーを順に押していくことで、これらが一行にまとまります。(一番最後の, は削除しておいてください。)
(7) この全体を TvRemoteViewer_VB.ini の TvProgramTvRock_channels = の後にコピペしてください。
以上でTvRemoteViewer_VB.ini を保存し、TvRemoteViewer_VBを終了・再起動して番組表を表示すれば、番組表が正確になり表示も一瞬で、より実用的なものになっていると思います。
なお、このBlogにあるプリセットで、「2012年10月2日以降にTVTest、TVRockの新規導入をおこなった方、およびBS.CSチャンネル名の更新をおこなった方」については、BS,CSのチャンネル名が決まっていますので、簡単のためにその分の設定値をここに書いておきます。
(それより古いバージョンのプリセットを使っておられる方は名称が一部異なりますので、対象外です。)
"NHK BS1:NHKBS1","NHK BS1-2:NHKBS1(102)","NHK BSプレミアム:NHKBSプレミアム","D-Life:ディーライフ","FOX bs238:FOXbs238","スター・チャンネル1:スターチャンネル1","スター・チャンネル2:スターチャンネル2","スター・チャンネル3:スターチャンネル3","IMAGICA BS:イマジカBS","日本映画専門チャンネル:BS日本映画専門ch","WOWOWご案内チャンネル:ご案内チャンネル","ウェザーニュースWNI・910:WNI・910","テレ朝チャンネルHD:テレ朝チャンネル1","朝日ニュースターHD:テレ朝チャンネル2","AXN:AXN 海外ドラマ","MTV:MTV HD"
地上波だけは地域によって違いますので、地上波分だけ上記(1)~(6)の作業をやって、それに"," をつけて上の文を追加すれば良いです。
(8) 難視聴地域用地上波チャンネルは、RecTask用ch2、およびTVRockの双方から削除しておくことを推奨
以上で殆どの設定は終わりですが、この機会にBSの難視聴地域用地上波チャンネルは(必要ないのなら)削除しておいてください。
理由は、
・チャンネル名が(NHK、TBSなど)本物の地上波やBS,CSでも多く使われている名称なので、マッチングで混同する原因になりやすい。
・チャンネルの何かの特性でTvRemoteViewer_VBとの相性が悪いようで、仮に配信しようとしても失敗することが多い。もし TvRemoteViewer_VBがこれを地上波のチャンネルと誤認した場合、「肝心の地上波の配信に失敗する」ことが頻発し、原因も判りづらい。(なにしろ首都圏地上波と同じチャンネル名なので、番組表上では正しく選局しているように見えてしまう。)
・そもそも来年(2015年)の3月で終了してしまうサービスである。
以上が了解であれば、削除方法は以下のようにしてください。
i) RecTaskから削除する。
BS/CSチューナーのそれぞれのch2ファイルから、難視聴用チャンネルを全て削除してください。RecTaskが使用する全ての衛星系BonDriver***.ch2ファイルで削除する必要があります。
ii) TVRockから削除する。
リンク先のチャンネルを削除する方法 と同じ手順で、BSの難視聴用チャンネルを全て削除してください。
以上で難視聴地域用チャンネルの削除完了です。
③ EDCB用番組表
これも基本は②のTVRock用番組表と同じですので、そちらをTVRockをEDCBに読み換えながら必ず読んでください。定義は以下の箇所になります。
TvProgramEDCB_channels =
ここに、"EDCBのチャンネル名1:RecTaskのチャンネル名1", "EDCBのチャンネル名2:RecTaskのチャンネル名2", ・・・・
と列記していけば、番組表のマッピングが正しくなります。
EDCBのチャンネル名は ChSet5.txt ファイルを見れば判りますので、②と同じように.ch2ファイルと比較しながら、必要なマッピングパターンを列記してこのパラメーターを記入してください。
これも、4章のBonDriver_Spinel/RDCTを使う前提であれば、自動生成ツールでこの定義を自動作成してくれますので、複雑な手順は不要でコピペで反映できます。
EDCB番組表の場合も、難視聴用チャンネルは特に使う理由が無い限り、②-(8)と同様にRecTask、EDCBから削除されることをお勧めします。EDCBはチャンネル削除というよりEPG取得対象外にしてください。
これは②または③の補助としてネットから取得する番組表で、地上波のみの対応です。
これは②または③がきっちり設定してあれば本来不要なのですが、それらを使っていない場合はこれが唯一の番組表になりますし、また万一それらの不具合があった場合にバックアップにもなります。(情報量は少ないですが。)
そういう位置づけなので、一見して特に間違ってない(地上波だけならチャンネル数も少ないので、間違いも少ない)とか、あまり使わない場合には、ここの作業は特に必要ありません。
対応表を作る場合は以下のようにします。
ネット番組表のチャンネル名は実際の番組表を開いてみなければ判りませんので、トップメニューで「地デジ番組表」を選んで画面を開いてみます。
ここでメモ帳を開いて、番組表の()内のチャンネル名を一行ずつコピペしていってください。
あとは②のTVRockの手順と同じで、: を各行に付加したのち,ch2ファイルから夫々に対応するチャンネル名をコピペし
" ", で囲んでから一行にし
それを TvRemoteViewer_VB.ini のTvProgramD_channels = の後にコピペ
以上でTvRemoteViewer_VBを再起動すれば、地デジ(ネット)番組表も正確で多少速くなります。
.
ここまで設定が終われば、家の中でPCだけでなくスマホやタブレットからも、自由にテレビや録画ファイルの視聴ができるようになります。
使い方は実際触れてみればすぐに判ると思いますが、簡単にご説明いたします。
(リモートでの視聴もこの応用になりますので、まずはここでしっかり操作方法を習熟して、ブックマークも付けておいてください。)
一旦TvRemoteViewer_VBを落して再起動してください。
なお今後日常的に使っていく上では、TvRemoteViewer_VBをWindowsの起動に合わせて自動起動するのが良いかもしれません。
(いざ外から観たい、というときに立ち上がっていなければ元も子もないですので。。)
これは「いじくるつくーる」を導入して「起動時に毎回実行」に指定するのと割と簡単です。
ただしうちの環境でテストした限りでは、Windows8以降の環境では何故か自動起動できない、という問題が起きるようです。
恐らくこれと同じ問題で、対策としては間にバッチを噛ます必要がありますので、そのサンプルバッチを添付しておきます。
「TvRemoteViewer_VB_bat.zip」をダウンロード
ダウンロード&解凍後、バッチの中を編集して、お使いのTvRemoteViewer_VBの実行パスに修正した上でお使いください。このバッチを上記「いじくるつくーる」等でスタートアップ登録すれば、無事自動起動するようになります。
TvRemoteViewer_VBが起動したら、そのPCのアドレス(ここでは仮に192.168.0.192 とします。)を使って、他のPCやスマホ/タブレットのブラウザからポート40003にアクセスしてください。
具体的はアドレス欄に
http://192.168.0.192:40003/
と入れて Enter を押します。
すると以下のようなトップメニューが表示される筈です。(まだブックマークしていない場合は、ここでブックマーク登録しておくと良いと思います。)
ここで既に配信中のストリームがある場合はこのように、
上の方に配信中のストリームを示すボタンが付きます。このボタンを押せば、そのストリームの視聴画面に直接遷移します。
iPhone版のトップメニューはこちらです。
ほとんど変わりませんが、iPhoneの場合は(後で出てくる)プルダウンメニューは、コントロールをタップするとプルダウンはせずに次のような画面になります。
この辺はiPhoneを使っている方にはお馴染みですね。
こういう微妙な違いはありますが、iPhone/iPad/AndroidでもWindowsでも同じような操作性を実現しています。(ブラウザベースですから当たり前ですね。)
なおTVRemoteViewer_VBの視聴のためには、ブラウザのcookieを有効にしておいてください。
cookieが無効でも視聴に差し支えるわけではありませんが、画面のズーム状態やファイル再生中断時の再生位置を覚えていてくれなかったり、実況表示の時に遅延時間を自動計算してくれなかったりで、微妙に不便です。
現在のPC用ブラウザではcookieは(敢えて設定しない限り)大抵は有効になっていますが、iPhone/iPadやAndroidでは意図的に無効化されていたり、「訪問先のみ」というような制限付きの設定になっている場合があります。それらの機器を使う場合、以下のように設定されているか確認してみてください。
Android ブラウザのSetting→Privacy&Security
① 使用していく上で最も良く利用するのは番組表からのストリーム開始だと思います。
使い方についてはまず、トップメニューで番組表のボタンを押してください。次のような番組表と、ストリーム番号/BonDriver/解像度の選択ボックスが表示されます。
ここの手順は地デジ/TVRock/EDCB番組表のいずれも同じです。(地デジ番組表は内容もプアですが、最初から地デジを観るつもりなら軽いのと、一応他のバックアップとして使えます。)
② 番組表で観たい番組を決めたら、ストリーム番号と利用するBonDriver、および解像度を選んで、[視聴]ボタンを押してください。
(1) この時、どのストリーム番号とBonDriverを選択すれば良いかの手助けとして、既に他で使われているストリーム番号とBonDriverには頭に*が付いて区別できるようになっています。
またストリーム番号は使われていないもののうち最も番号の若いものがデフォルトで選択されます。この辺を参考に適切なものを選んでください。
(BonDriverは複数回使えるタイプもありますが、そういう使われ方をされている場合には*が複数個付きます。)
もちろん意図的に今のストリームを終了して次のストリームを開始したい場合、ここで終了させたいストリーム番号を選べば終了と開始が同時に行われ、手間が省けることになります。
ただしここではどのストリームが何を配信しているかの詳しい情報は判りませんので、うっかり間違って別の物を終了させてしまうという事態を避けるためには、不要なストリームはここではなくトップメニューや視聴画面で確認しながら終了させるのがお勧めです。
(2) BonDriverは地上波用/衛星用の区別なく全てリストされますので、チャンネルに応じた適切なものを選んでください。対応していないBonDriveを選んでしまうとストリーム開始は必ず失敗します。
iniファイルで適切に設定してあれば、ここのデフォルト表示は必ず地上波/衛星に対応したBonDriverになりますので、選択に迷うことはなくなります。
(3) 但し4章のBonDriver_Spinel/RDCTを使ってTvRemoteViewer_VB用のBonDriverを全て三波対応のものにしておけば、そもそもBonDriverの種別を気にする必要もなくなります。そういう場合に便利な設定として、トップメニュー・管理タブには「番組表BonDriverの優先表示」という項目があり、
これを「使われていないものを優先表示」に変更しておけば、ストリーム番号と同じく、今空いているBonDriverをリアルタイムに把握しながらデフォルト値を自動選択してくれるので、結構便利です。
.
以上で視聴ボタンを押すと、次のような「配信準備中」の画面になります。
③ この画面が出ている間、サーバ側で配信用のデータファイル(10秒分ずつ作っていきます)を準備していますので、しばらくお待ちください。
数秒後、0 が 1に変化すれば、順調に準備が進んでいます。1の次が視聴画面になります。
視聴ボタンを押してから約5~10秒で準備完了して視聴画面に切り替わります。
しかし、設定や指定が正しくないと、ここの0のまま数字が動かず、暫くすると「配信されていません」と表示されて、
再びリトライを始めて「配信準備中です(0)」から待たされる、という動作を繰り返すことがあります。
これは例えば、そのチャンネルの受信に適切でないBonDriverが指定されていたり、そもそも設定の問題としてスクランブル解除の設定がうまくできていない、デフォルト解像度が設定されていない、というようなミスがまず疑われます。どのチャンネル/BonDriverでも同じ現象が起きる時は、設定を再度見直してください。
但しBSの超低解像度「ウェザーニュース」や「難視聴用チャンネル」はそもそもの放送ストリームが特殊なようなので、このシステムでは配信できないものと割り切るのが賢明です。
無事配信が開始されれば、まずは標準のブラウザ視聴画面になります。
(右の実況勢いエリアはニコニコ実況ボタンを押せば出現します。)
ただ特にモバイル端末の場合、「ストリームの開始は必ず人が介在する」という暗黙のルールがあるようで(無駄なデータ課金を避ける意図があるようです)、すぐに動画は開始せず動画エリアに最初、 のようなボタンが表示されますので、これをタップしてください。それで動画がスタートします。
PCの場合も最初黒い画面のままになることがありますが、そういう場合は画面を1秒程度の間隔で2回クリックすると開始します。
このように動画開始にいちいちワンアクションが必要なのがちょっと煩わしい方のために、最新のバージョンではここをjavascriptを使って自動スタートさせるオプションがあります。トップ画面の「管理」タブに
「ストリーム再生の自動開始」というチェックボックスがありますので、チェックしてみてください。PC視聴であれば、常に自動開始するようになると思います。
しかしモバイル系の場合、もともと上記のように自動開始できない制限があるため、これをチェックしても車輪マークが回転したままになるだけで自動スタートしない場合が多く、そういう場合は「一旦車輪マークを止める」「再度スタート」とアクションが増えるだけですので、このチェックは外してください。
といっても諦める必要もなく、 iOSの場合iPad,iPhoneとも、「ilunascape」ブラウザが何故かこの自動スタートがうまく働き、ストリームの再起動も軽快に動きます。
時々何かの拍子に自動スタートできなくなる事があります(原因不明)が、その際にも車輪の回ってる状態で動画エリアの左下端を軽くタッチするだけで動画をスタートできます。(Android向けのilunascapeで同じ動きになるのかは判りません。)
そもそも(ストリームが意図せず止まる、など)iOS標準のsafariはあまりこの用途で相性が良くないようで、安定度の面では
safari < Chrome ≒ ilunascape
という感じです。加えて上記自動スタートが効くという点で、iOS上ではilunascapeのご利用をお勧めしておきます。(無料でブラウザエンジン自体はsafariそのままですし。)
さて以上のように動画を起動すると、iPhone の場合は、再生開始と同時に全画面表示になり、iPhone標準のビデオプレーヤーで視聴する形になります。仕様上動画のブラウザ視聴はできません。
iPhone全画面表示
(上下のバーは数秒で消え、画面タップで再表示。これは他も同じ。)
iPad/Android の場合はブラウザ画面のままで再生開始します。
全画面ビデオプレーヤーの方が良いかたは「動画エリアの右下」をタップすれば、それぞれOS標準のビデオプレーヤー全画面表示になります。
全画面だとニコニコ実況が流せないのが弱点なのですが、映像に集中したい時はこちらでどうぞ。
このタイミングで画面が止まっている時は、下のPlayボタン を押せば動画開始します。
なお回線状態が悪いと、映像/音声が時々止まったまま自動で再開しないことがありますが、そういう時もこのボタンを順に Stop Play
と押せば大抵の場合再開します。(ブラウザ視聴の場合も左下のボタンを同じように2回押してみてください。)
iPhone/iPadとも元のブラウザに戻る時は画面をピンチインするか、「完了」をタップしてください。
.
いっぽうブラウザ視聴ではPC/iPad/Androidとも共通で、以下のような視聴画面&操作になります。
画面構成はどの機種でも同じで、どちらかというとYouTubeの操作に近くなります。
下のコントロールバーは暫くすれば消えますが、マウスの軌跡によって消えないことがありますので、以下の絵もご参考に。
動画エリア右下のボタンを押すと全画面表示になります。但しPCで全画面視聴しようとすると、全画面化直後に右・下が欠けた状態になるかもしれません。
その際は動画が表示されているエリアのどこかを1秒程度の間隔を置いて2回クリックしてください。それで正しく表示されるようになります。
PCの画面操作にはこのようなちょっとしたクセがありますが、慣れの問題かと思います。
なおPC視聴の場合、TvRemoteViewer_VBサーバに最初にアクセスして全画面表示する時だけ図のような「許可」を求めてきますので
速やかに「許可」してください。それ以降の全画面視聴時には聞いて来なくなります。
全画面から元の画面に戻るときはEscキーを押すか、右下の をクリックしてください。
全画面表示は「ながら見」に不便でニコニコ実況も表示できませんので、汎用的にはブラウザ視聴のほうがお勧めできます。その際動画サイズ調節機能としては「ズームバー」をご活用ください。
下のスクリーンショットのように視聴画面で「ZoomBar」のボタンを押すと、動画エリアの上にズームバーが表示されます。
これをスライドさせていくことで、画面に合ったお好みの動画サイズに調整できます。
他に、再生中のストリームのURLを表示したり、外部プログラムと連携させる機能もあります。
URLボタンはデフォルトでは非表示になっていますので、
この機能を使いたいときはトップ画面・管理タブの「URLボタンの設定」で適切な機能を選んでください。例えば「ストリームURLを表示」を選んでおけば、以下のようにボタンが表示され、押すことで現在のストリームのURLが表示されます。
これは他の動画プレーヤーで視聴する場合を想定しています。例えばAndroid環境でMX動画プレーヤーなどで観たい、Mac環境で(こういう話もありますので)QuickTime X をテレビ代わりにして観たい、というような場合、ここからストリームURLをコピペすれば良いわけです。
また、ここを「ブラウザに渡す(アプリ選択機能前提)」または「MIMEタイプ指定でリンク」に設定すれば、URLボタンもそれぞれ以下のようなボタンに変わり
これを押せばそれぞれの方法で、ブラウザ経由でのアプリ起動を試みます。
外部プレーヤーの連携ではHabit BrowserのようにURLのパターンで起動アプリを指定できるものは前者で良いと思いますし、標準ブラウザやChrome、Firefoxの場合後者の指定で、初回にこのストリーミング・タイプに紐づけて起動するアプリを選べますので、MX動画プレイヤー等に紐づけすることができます。
この機能はAndroid端末では元々こういう話があり、外部プレーヤーと連携させたいというニーズに対応したものです。
但しTvRemoteViewer_VB v1.03、TvRemoteFiles v1.04以降の組み合わせで利用すれば、このAndroid端末での再生問題はほぼ解決しますので、敢えて外部プレーヤーを利用する必要性は減っている筈です。
.
⑤チャンネルの切り替え
視聴画面で図のチャンネル名をクリックすればプルダウンでチャンネルが選択できますので、ここで選んで[視聴]を押せば、視聴中のストリームのチャンネルと解像度を切り替えることができます。(解像度だけの切り替えもOKです。)
ただ、ここでのチャンネル切替えは一覧性が良くありませんし、各チャンネルで放送中の内容もいちいち情報ウインドウで確認することになります。
この辺のチャンネル切替えをもっと使いやすくするために、TvRemoteViewer_VB v1.05以降では、サイドパネル番組表の機能を付けました。
「番組表」ボタンを押すと、図の右側のような番組表に、現在のストリーム(BonDriver)で視聴可能なチャンネルと番組の一覧が表示されます。
この表示内容は3)の新番組表の機能に準じます(但し局名とタイトルのみ表示)ので、詳しくはそちらを参照してください。
「番組表OFF」ボタンを押すと番組表は非表示となります。(もし実況ONの状態なら、隠れていた勢いカウンタと遅延時間バーが表示されます。)
また図にあるように、番組表をクリック(タップ)してチャンネルを選択状態にすると(約10秒)、番組詳細が情報ウィンドウに表示され、その間に再度該当チャンネルをクリック(タップ)することでチャンネル直接切替えが可能です。
その際に確認メッセージを表示するか否かも「トップページ-管理タブ」で設定できます。
これをチェックしない(デフォルト)のほうがチャンネル切替えが素早くできますが、逆にタップ操作のミスの多いタブレット/スマホでは、チェックしたほうが「うっかり操作ミス」による意図しないチャンネル切替えが防げますので、却って使いやすくなります。この辺の設定はお好みでご選択ください。
さてHLS配信は仕組み上、TVチャンネル切り替えそのものは速くない(5~10秒)のですが、TvRemoteViewer_VBの場合、多ストリームの利用でそれを補うこともできます。
もしメインの番組を見ながら時々チェックしたい裏番組があるとか、いくつかのチャンネルをザッピングしたいという場合には、いちいちチャンネルを切り替えるのではなく、(チューナーの数にどれだけ余裕があるかによりますが)複数ストリームで観たいチャンネルを予め立ち上げておくと良いわけです。
複数ストリームが立ち上がっていれば、視聴画面では図のように表示されます。
ここで切り替えたいチャンネルをクリック or タップすれば、ほぼ瞬時にそのチャンネルに切り替わり、まさにザッピングしている感覚になります。(機能上は最大8ストリームまで並列可能。)
この辺の使い勝手は多ストリームでの安定動作を目指したTvRemoteViewer_VBのメリットになります。
なお同時に幾つのストリームを立ち上げていられるかは、使えるBonDriverの数(=チューナーの数)以外に、サーバ側の能力にも依存します。
並列配信は、(何度か書いていますが)実際に視聴していない限り回線の負荷にはなりません。しかしサーバ側はその間ストリーム数分のエンコードを常時おこなっているわけで、可能な並列数はCPUの能力と配信解像度に依存します。(配信解像度が低いほど負荷も低い。厳密にはソースの解像度にも依存。)
ちなみにうちにあるi5 3570Sのマシンを配信サーバにして実際に並列テストしてみたところ、解像度[320x180L]では8並列でもCPU使用率80%前後で問題なく配信、[640x360]では4並列で80%程度で5並列では100%に達しました。(ソースはいずれも地上波HD)
3570Sは4コアでミッドレンジの上程度の能力ですので、ご参考まで。
.
⑥ 視聴が終わったら画面下の操作エリアにある「このストリームを終了する」をクリックすれば、現在のストリームを終了した上でトップメニューに戻ります。また「この」を「全ての」に替えれば、自分自身も含めた全てのストリームを終了させた上で、トップメニューに戻ります。
とりあえず視聴を中断するけれどストリームは維持したい、という時は「トップメニュー」をクリックするだけで良いです。
ストリームを維持しても他の画面に遷移すれば、他の端末で該当ストリームを観ていない限りは実際の配信は行なわれず、回線も無駄遣いになりません。但しサーバ側ではエンコードをずっと続けますので、その分のCPUを使い続けます。その辺の操作の選択は、使い勝手とサーバの余力で都度選べば良いです。
さて、ここまで使っていた番組表はベタに文字を並べたインターフェースなのですが、逆にスクロールが軽快に動く点で使いやすいと私は思い、あまり改良を加えていませんでした。
しかし流石に最近になって一覧性の悪さや目的の番組を探すまでの時間が気になってきました。
そこでTvRemoteFiles V1.02では、「スクロールが速い」という長所を残しつつ、この番組表をRockバー風の機能のものに差し替えられるようにしました。
Rockバーと同じくリアルタイムに内容が更新されていきます(TvRemoteFiles V1.03以降)ので、開きっぱなしにしておけば今どの局で何をやっているのかが判りやすいと思います。
またこの番組表フォーマットで、トップ画面にお気に入りチャンネル(番組表ポータル)を表示することや、視聴画面のサイドパネルに表示しながら、直接選局することも可能になっています。
これを使うにはトップ→管理画面で
番組表設定のところで「Rockバー型の番組表を使う」にチェックをしてください。それで番組表を呼べば新しい番組表が立ち上がるようになります。
この新しい番組表はいろいろカスタマイズが可能です。その場合「番組表カスタマイズ」ボタンを押してください。すると以下のような画面がポップアップします。
ここで設定した項目は、右下の「適用する」を押せば反映されます。
まず表示項目については、上にある「時間を表示」「詳細を表示」で選択できます。
画面が広い端末では両方とも「表示する」のままで良いと思いますが、スマホなど狭い画面の端末では
このように「番組時間」を省略したほうが一覧性が良くなります。
番組の時間も判らないのでは番組が始まったばかりなのか終わる間際なのかも判らない、という声もあるかもしれませんが、実は「色」でそれを表すようにしました。大まかな目星は見た目で付けられます。
局名以外のエリアは指やマウスで左右にスクロールしますので、詳細情報は敢えて省かなくても、必要な時に右に辿って行って見ることができます。
(尤もPCであればモニターで充分横全部の情報を表示できます。)
またマウス操作のPC/Macでは、番組名のところにマウスオーバーすれば最初の絵のように詳細情報がポップアップするようになっていますので、日頃はこれもRockバーのように縦長にして置いておくのも良いかもしれませんね。
さて、この番組表から観たい番組が決まったら、その行で一回クリック/タップしてください。すると行が反転しますので、
この状態でもう1回この行をクリック/タップすれば
開始指示の画面が出てきますので、ここでストリームを起動すれば良い訳です。
またこのポップアップ画面は番組内容の確認用に使っても有用です。(ポップアップエリア外の暗くなっているところをクリック/タップすればポップアップは消えます。)
なお、タップ操作のモバイル系の場合、あまり急いで2回タップするとダブルタップと見なされて(拡大/縮小など)別の動作をしてしまいますので、タップの間隔は気持ち1呼吸入れるのがコツです。(マウス操作の場合はダブルクリックでも構いません。)
この番組表の文字の色は、番組の進捗を表しています。
(実装では一応色覚にハンデのある方でもわかるよう微妙な明度の差もつけたつもりですが、わかりにくい場合は教えてください。)
このように番組が進むに従って色が変わっていき、赤やグレーになった番組は今から見てもほぼ終わっているか、既に終わって(特にBS/CSの場合、番組時間帯の終わりは長い通販や番宣が入ることが多いですので)余り今からチャンネルを合わせる意味がないかもしれない、という意味になっています。(他に放送休止中や通販番組もグレーアウトします。)
他の便利な設定もご紹介します。
カスタマイズ画面の上にある「ポータル」 をチェックすると、トップ画面にも図のように番組表がリアルタイムに表示されるようになります。
ここから直接視聴の開始も可能です。
ポータルに表示する放送局はカスタマイズ画面のチェックマークで選択できます。
あまり沢山表示するとポータルの意味がなくなってしまうので、30局を上限にしています。
(それ以上はチェックできませんので、入れ替えたいときは不要な局のチェックを外してください。)
ちなみに番組表の下には以下のようなコントロールが付いています。(ポータル・各番組表共通で表示されます。)
これは番組表背景の色と明るさをカスタマイズするものです。
色は青緑赤の三色から選べます。
背景は暗くすれば文字はくっきりしてきますが、あまり暗いと進行に合わせて変わる文字色の違いが判りにくくなる点はご注意ください。(明るめの背景色のほうが番組が終わりに近くなると背景に溶け込んでいく効果があるのと、全般に目にも優しいです。)
また、番組表の表示順もここで変更できます。
(サーバiniファイルでも表示順は設定できますが、ここでの設定はそれを上書きするものになります。)
局の上でクリック/タップしていけば複数局が選択できますので、その状態で「上へ」「下へ」のボタンを押してください。選択した局が1つの並びになったうえで上下に動きますので、
気に入った並びになったら「適用する」で保存してください。
なお、(他の項目は端末/ブラウザ毎の設定ですが)この局の並び替えだけはサーバーで共通の設定になります。
これは表示量は端末毎の特性で変えたいのに対し、どの局を上に表示するかは端末によらない好みの話ですので、一箇所で変えれば全体に反映させた方が便利じゃないかという発想です。
以上が新番組表です。他にもいろいろなタイプを考えたりもしたのですが体力との兼ね合いもありますので、とりあえずはこの辺をうまく使っていただけると。
視聴画面に「ニコニコ実況」のボタンが表示されている時は、ニコニコ実況を表示できます。
① ニコニコ実況って何?という説明は今更不要かと思います。(こちらにもちょっとした説明があります。)
これがあると楽しい、という方にとってはなくてはならないものですし、邪魔という人にとっては大した価値もないものかもしれませんが、少なくともテレビの楽しみ方の新しいバリエーションかと。
この機能もここでは汎用的なブラウザのHTML5とAjaxの技術(のみ)を使って実現していますので、プラットホームを選びません。
但しブラウザの機能を使うため、全画面表示では使えません。現在ブラウザ視聴でもZoom機能によって好みのフレーミングで視聴できますので、通常は余り大した問題ではないのですが、iPhoneに限っては(全画面表示でしか動画を表示できないため)うまく使えないのがちょっと残念な所です。(但しiPhoneでの代替の楽しみ方も後ほどご紹介します。)
またスマホ/タブレットでは動画エリアにタップすることで操作する場合がありますが、コメントが流れている時は(コメントが動画の上に被っているため)うまく操作できない場合があります。その際は「ニコニコ実況OFF」のボタンを押してコメントを消してから操作してください。再度ボタンを押せば実況はまた表示されるようになります。
② さてリモート視聴、特にHLSを使う場合、リアルタイムの放送とはちょっと時差(遅延)がありますので、コメントの表示タイミングの調整が必要になる必要があります。その調整に使うのが右側に現れる「コメ遅延時間」のスライドバーです。
視聴開始時にはシステム側が計算してこの遅延時間を自動でセットしますが、このスライドバーを動かすことで、コメントのタイミングがずれていても、タイミングを合わせていくことができます。
小さな調整幅であればコメントもバーに合わせて前後に巻物的に動きますので、ズリズリ動かしながら調整していくと判りやすいと思います。
また、短い時間であれば動画は止めることもできます。(動画エリアの左下をタップ。)その際はコメント表示も連動して停止しますので、遅延時間がそれに応じて増えていきます。
遅延時間が60秒まで定義してあるのはこの意図的な動画停止による大きな遅延を想定しています。
なぜ60秒が上限かというとサーバ側が放送ストリームの場合、そもそも遅延が60秒弱までの分しか動画を保存していないためで、それ以上止めてしまうとそのうち不意に再生位置がジャンプして、結局60秒以内の遅延に落ち着きます。
ちなみにストリームを開始した場合には遅延も十秒台で、システムがセットする値との誤差も少ないのですが、
(但しシステムはプレーヤーのバッファリング中の状態は検出できませんので、開始時に車輪の絵が数秒間回転していた時は、その分スライドバーで遅延時間に加えてください。)
それに比べると既に存在するストリームを視聴する場合は、HLSの特性上開始位置が不確定で誤差が大きくなりますので、タイミングの判りやすい場面で大まかなずれの秒数を数えて、それで調整するとよいと思います。
さて、サイドパネルには各チャンネルの実況勢いが表示されます。
BSや一部のチャンネルは勢いが0でない時のみ表示されます。またこのサイドパネルは番組表を表示している間は下に隠れますが、番組表OFFにすればまた現れます。
勢いが気になるチャンネルをクリック/タップすれば、10秒間だけそのチャンネルが赤くなり、情報ウインドウに現在のそのチャンネル(またはご視聴可能な系列局)の番組内容が表示されます。
その10秒の間に再度そのチャンネルをクリック/タップすれば、(使用中のBonDriverで切り替え可能であれば)そのチャンネルに直接切り替えることができます。
その際図のように確認メッセージを表示することもできますし、確認を省略することも出来ます。→設定方法はこちら
④ iPhoneでの実況機能利用
iPhoneは仕様上、HLSの再生は必ず全画面のビデオプレーヤーになってしまうため、このHTML5の仕組みを使った実況機能をそのまま楽しむことはできません。
ただ、もしテレビなどで別途視聴できる時は、iPhoneはブラウザ表示のまま、コメントプレーヤーとして使うこともできます。
そもそも画面が小さいのでZoom機能等を使って、コメントを見やすい大きさに調整してみてください。旅行先でテレビを観る時に何か面白いコメントがないかチェックしたい時は、お手元にiPhoneを置いてホテルのテレビを観ながら時々眺めるのも楽しいのではないでしょうか?
ただしデフォルトの設定のままだと、ブラウザ表示で動画も止めた状態ではコメントも止まってしまうため、単なるコメントプレーヤーとして使おうとしてもコメントが流れてきません。
その対策としてトップメニューの「管理」画面に、「プレーヤー停止中はコメントも停止する(か)?」というチェックボックスを付けました。
デフォルトではチェックされていますがこのチェックを外せば、動画を動かしていない状態でもコメントは通常通り流れるようになります。テレビのタイミングに合わせるには遅延時間を0にすれば良いです。
⑤ コメント表示エリアの制限、実況文字の不透明度
上のスクリーンショットにある通りトップメニューの「管理」画面には、他にもニコニコ実況表示関連の設定項目があります。
このうち「表示領域を制限する」の設定では、スライドバーでコメント表示エリアを調整することができます。(動画エリア上辺を0%として、コメント表示エリアを上下%で指定する。)
例えば動画エリアの上端にだけコメント流したいとか、真ん中から下のエリアにだけ流したいという場合には、ここで調整してみてください。
また「不透明度」の設定では、流れる文字の(不)透明度を指定できます。(100%で完全に不透過。数字が小さくなると透明度が高くなる。)
いわゆる「弾幕」で動画が全く見えなくなるのも困る、という方はここを調整してみてください。HTML5の機能ですが、何%でどのぐらいの透過度になるかは、各プラットホーム/ブラウザの特性で微妙に異なります。
TvRemoteViewer_VBには、放送中の番組だけではなく、PCに保管されているtsファイル、mp4、avi、wmvファイルなど、大抵のメディアファイルの再生を配信する機能があります。(但しISOファイル直接再生はNG)
この機能を使うにはトップメニューから[ファイル再生]を押してください。iniファイルの指定に従ったファイル一覧が出てきます。
(サーバ起動後の初回のみ、サーバー側リスト作成ためこの画面を開くのに数秒かかります。)
ここの機能も豊富なのですが、要はリストで再生したいファイル名をクリック(タップ)して、上のほうでストリーム番号、解像度を指定した上で「再生」ボタンを押すだけでファイル再生が始まります。
という感じで気楽に使える機能ですが、以下ではもう少し使いこなすための機能をご説明します。
① ファイルリストは端末の能力に合わせ徐々に増えていく。
TS抜きチューナーを使い始めて日が浅いうちは、対象になる録画・映像ファイルの数もせいぜい数百個だと思いますので、どんな端末であっても扱いは簡単です。
ところがこれが何年も経って映像ファイルも溜まってくるとその数が数千を超えることもしばしばで、そうなってくると端末側でそのリストを一覧して軽快にスクロールや検索・ソートして、という処理も非常に難しくなってきます。
私の家の環境でも現在約4千の映像ファイルがあり、当初これらを全てiniファイルの指定でTvRemoteViewer_VBから扱えるようにしてみたのですが、そうなるとiPad/iPhoneではファイル選択画面を立ち上げるだけでも1分以上かかるようになってしまい、とても実用には耐えなくなってしまいました。
仕方なく対象フォルダを絞って対象ファイル数が千個を越えない程度にしたのですが、それでもファイル選択画面は(特にモバイル環境では)もっさりと立ち上がり、快適な利用からは程遠い状態でした。
そこでこのファイルリスト機能に改造をかけ、
-最初は最新の50件ほどのファイルリストで素早く起動し、数日内に録画したファイルであればこの時点ですぐに選んで再生スタートできるようにする。
-以後、GoogleMapのようなAjaxの手法で、裏で徐々に古いファイルリストを取得し、リストに追加していく。
-全てリストを取得できた時点で取得終わり。但しこれ以上のリスト追加は端末のパフォーマンスを落すだけ、と判断したらそこで取得を打ち切って終了。(打ち切った場合は*1756件 のように件数の前に* が付く。)
という感じで動作するようにしました。(サーバ側機能で対応してくださった作者さんに感謝!)
これだとサーバ側の指定ではあまり難しく考えずにあるだけ登録しておけば、ニーズの高い最新のファイルはすぐに視聴できますし、昔のファイルを探したいという時はそもそもじっくり眺めながら待てば良いわけです。
実際の動作の感触としては、リストに取り込む速度は(通信速度は殆ど関係なく)端末の能力に依存しており、ここ数世代以内のPC/ノートPCであれば余り待つこともなく4千件の取り込みが完了する一方、iPhone 4sのような世代のモバイルだと2~3千件で限界になるようです。最新のスマホはもっと能力上だと思いますが。
そのような遅い端末でも昔のファイルを観られるよう、観たいファイルのキーワードが判っていれば「絞込み再ロード」という機能もあり、該当のリストに絞って素早く取得することも出来ます。
という感じの仕様になっていますが、追加のファイルリスト取り込み中は時々(10秒に1回程度)更新リストをHTMLに組み込むために一瞬動作を受け付けなくなります。
タイミングが判りやすいようにリストの背景が青くなりますので、その間(1秒前後)無理な操作はせずお待ちください。
更新があるたびに現在リストされているファイル件数と、これが何時以降のファイルのリストかという、右下に表示されている情報が更新されます。
ファイルリスト取得が完了した時点で日付ではなく「全てのファイル」という表記に変わりますし、もし端末の限界を検知して取得を打ち切るときは件数の前に*が付いて、いずれもそこでファイルリスト取得は終了します。
② サーチ機能/ソート機能
画面上のほうにある「Search」欄を使ったキーワード検索で、リストを絞り込むことができます。
この検索機能は
・英数大文字/小文字/半角/全角を区別せず検索できる。
・複数キーワードの指定には半角/全角スペースで区切る。
・not(含まない)という指定にはキーワードの頭に-を付ける。
・ -1のような文字自体を検索したければ"-1"と囲む。
という基本のほか、インクリメント・サーチに対応していますので、「検索」ボタン不要で、キーワードを入力/変更する度に即座に検索結果が反映されていきます。
ただし完全にインクリメント形式にするとスマホ/タブレットでは却って操作性が落ちます(カナ漢字変換で一時的に入れたアルファベットや平仮名にいちいち反応してしまう)ので、キー入力の度ではなく、スペース/Enter/バックスペースキーを押すことで検索が更新されるようにしています。
何か検索結果が更新されていない、と思ったらとりあえずスペースかEnterを押してみてください。
あるいはPCでは検索欄クリック、
スマホ/タブレットでは「Search」の文字をタップして検索エリアを反転させて
もう一度これをタップすることで検索結果が更新されます。
また実は画面最上部の赤い欄は、現在選択されているファイルを判り易くするという目的の他に、キーワードのコピペ元という意味も兼ねています。(色も特にスマホ/タブレットで選択エリアが判りやすい色にしています。)
これを活用するには、キーワードとして使いたい文字列を含んだファイルを選択した上で、PCであればここからマウスでコピペして検索欄をクリックすれば良いですし、
スマホ/タブレットなら希望のキーワード辺りでロングタップ後、エリアを選択してコピーし、検索欄でペーストしてSearchを2回タップすれば検索結果に反映されます。
尚、赤い欄はスマホ/タブレットでコピー操作の対象になるように編集可能属性になっていますが、ここでうっかり文字列を消去/変更してしまっても何の問題もありません。(単なる表示エリアですので。) 再度正しく表示させたければもう一度下のリストで選択すればOKです。
また、「パス名も検索」にチェックすれば、ファイルが存在しているドライブ名/パス名/ネットワークパス名 も検索対象になります。(リストには表示されませんが。)
他に、下のほうにある「名前順」「日付順」のボタンでリストをソートすることもできます。
これは特にシリーズ物の一覧を出したい時に便利だと思います。
現在選択中のファイルはソートしても必ず真ん中辺りにくるようにリスト位置が調整されます。リストの先頭に戻りたい時は「先頭行へ」ボタンを押してください。
このような検索機能を活用することで沢山のファイルの中から観たいファイルを探して再生するのが簡単になりますし、結果をプレイリストに登録すれば、毎回検索する必要もなく観たいファイルを順番に再生できるようになります。
③ リスト取得が遅い端末では「絞込み再ロード機能」を活用する。
①で説明した通り、ファイル選択画面は最新の数十件のファイルリストで起動した上で、端末の能力に合わせて次第に古いファイルのリストを追加していく仕様になっています。
これでファイルリストの起動が素早くなり、またノートPCや最新のスマホであればちょっと眺めてるうちに数千件のリストの取得が完了しますので、十分使える仕様なのではないかと思います。
ただあまり速くないスマホやタブレットだと、たまに観たくなる古いファイルがなかなかリストに出てこず、そのうちにリストの取得が打ち切られてしまう、という事も起きます。
そういう場合は観たいファイルのタイトルがどういうものか大体判るはずですので、余り待たずに「絞込み再ロード」の機能を使って、サーバ側で予め絞り込んだファイルリストを送ってもらうことで、希望のファイルリストを素早く取得できます。
この絞込み機能の使い方は以下の通りです。
最初にファイル一覧を開いた状態です。右下に「キーワード絞込み再ロード」のボタンが表示されますが、有効になっていません。
ここで検索欄に観たい(昔録画した)ファイルのキーワードを入れ、EnterかSpaceを押して検索更新してみますが、まだその日時のファイルリストは取得されていないため、何も表示されません。
そこで(キーワードを入れた時点で「キーワード絞込み再ロード」のボタンが有効化されていますので)そのままの状態で「キーワード絞込み再ロード」ボタンを押してみます。
すると、そのキーワードがサーバに送られ、しばらくすると結果のリストが以下のように表示されます。この場合リストは日時で分割ロードされず、条件に合致するものがファイル日付に関係なく一挙に表示されます。
ここから希望のファイルを選んで再生スタートすれば良いわけです。
右下には絞込み件数が表示され、また絞込みを解除して元の全体リストに戻りたい時は、「絞込み解除して再ロード」のボタンを押せば元の全体リストに戻ります。
観たいファイルのキーワードが判っている時は、この機能を使って目的のファイルがすぐに見つかると思います。
なお、この絞込み再ロードの機能は(お気付きかもしれませんが)もともとTvRemoteViewer_VBが持っていたサーバ側ファイル検索機能をそのまま使っています。
こういう形の併用で、こちらは遅めの端末の使い勝手を上げる役割になるわけです。
但し(元々あった)以下のような弱点もそのまま持っていますので、うまくリストが表示されず空欄になってしまう時は、一旦絞込み解除した上でキーワードを入れ直し、リトライしてください。
・キーワードは英数大文字/小文字/半角/全角を区別するので、正しく入れなければならない。
例えばMLB とMlb、MLB は区別しますので、ファイル名と同じものを正確に入れないと検索してくれません。 またnot条件(-XXX)はサポートしていません。
・単純なキーワードで絞込み結果が大量になっても(分割されず)そのまま送られて来るので、リストが再表示されるまで長い時間待たされることになる。
ここの仕様は変わっていませんが、補完するために単純なキーワード(端末側で取得済みのファイルリストで10%以上のアイテムがヒットしてしまうもの)は、「キーワードが単純過ぎます」という警告を出して弾くようにしています。
・ブラウザの再ロードボタンを押しても、全体リストには戻らず絞込み状態のままになる。
ページ移動せずに全体リストに戻りたいときは、ブラウザの再ロードではなく「絞込み解除して再ロード」ボタンを押してください。
またTvRemoteViewer_VB v0.91~v0.94では一時的にこのサーバ検索機能がバグでうまく働かなくなっており、「絞込み再ロード」ボタンを押すと全ファイルリストを一挙に送って来ますので、この機能は必ずサーバ側をv0.95以降にバージョンアップしてからお使いください。
なおこの「キーワード絞込み再ロード」ボタンは、全ファイルのリストを取得した時点で消えます。画面に表示されないかあっという間に消えてしまう、という方は十分に速い端末を使っていると思いますので、そもそもこの機能は不要かと思います。
④ ファイル再生開始
以上のようにして選択したファイルは、上の「再生」ボタンを押すことで再生スタートしますが、この際に指定するストリーム番号/解像度などの選択は、番組表の操作と殆ど同じですので、適切なものを選んでください。
ここで「開始シーク位置」は番組表にはない指定ですが、これは映像ファイルの先頭から指定秒数だけ経った位置から再生する、というパラメーターです。(ちなみに秒数だけでなく、15:30 のような分:秒形式 の指定もOKです。)
ファイル再生直後は下にあるように再生位置の変更ができませんので、これは特に先頭がCMや番宣であると判っていて時間も概ね判る時にそれらをスキップする、という使い方に便利です。
またストリーム番号は空いているものが自動選択されていますが、これも番組表からの起動と同じように、既に使われているストリーム番号をわざと選んでそこにある既存のストリームを「潰して」、そのストリーム番号を再利用する、という使い方もできます。
ファイル選択画面の場合最下行に、各ストリームの概要が判るボタンが付きますので、
ここで現在動いているストリームの状況を確認できます。
(もちろんボタンを押すことで、それらの視聴画面に直接ジャンプすることも可能です。)
なおファイル再生ストリームのボタンはストリーム番号の後に F の文字、その後にファイル名の先頭数文字、という表示がされますが、これは他の画面でも同じルールです。(文字数は画面によって違います。)
.
ちなみに余談になりますが、このファイル再生機能では大抵のメディアファイルが配信可能で、最新版のffmpegを使っていれば何とH.265ファイルの配信も可能です。尤も元がH.265でも今の所、配信時にH.264に再エンコードされることになりますが、既に保管目的でH.265化してあるファイルまで配信できるのはさすがメジャーなオープンソース、技術のキャッチアップが速いですね。
実はffmpeg自体は既にH.265エンコードにも対応していますので、端末側さえサポートすれば (HLS_option.txtにパラメータを追加することで)「H.265ストリーミング」にもこのまま対応できます。ただ現状スマホにしろタブレットにしろ端末側が追いつかないので、これは近い将来の楽しみとしましょう。
以上でファイル選択画面の説明は終わりで、これ以降では実際の再生画面をご説明します。
(1) 一般的な使い方
ファイル再生の画面構成もテレビ視聴の場合と殆ど同じで、「チャンネル切替え」関連のボタンが無いかわりに「シークボタン」が付いて、また下のほうに(再読み込みボタンではなく)「再読込操作ボタン」が表示されるぐらいの違いです。
中ほどにあるストリーム一覧ではストリーム番号の後に「F」が表記されて、ファイル再生とわかるようになっています。
ファイル再生がテレビ視聴と違うのは、好きな所に飛んだり戻ったり、あるい途中で止めたあと一仕事終わってから続きを見る、というような事が出来るわけで、シークボタンはその「飛んだり戻ったり」の機能になります。
具体的には好きな所にジャンプしたり、CMになったら1~2分程飛ばしたりすることができます。
また、ファイルの再生位置はストリームが維持されている限りはサーバーに記録され続けていますので、別の端末で視聴を渡り歩いても、同じストリームの再生シーンは引き継がれます。具体的にはスマホやタブレットから外で途中まで見て、家に帰ってからPCで続きを見る、(あるいはその逆) という視聴の流れが、特に意識することなく自然に実現されます。 一種のクラウド型サービスになるわけです。
またその際に
「スマホでは帯域も限られるので低めの解像度で観る」 ⇔ 「PCでは高解像度で観る」
というような切り替えが都度できると便利ですが、その機能が「再読込操作ボタン」に割り当てられています。
下のほうにある「再読込操作」ボタンを押すと図のようなポップアップが表示されますので、
ここで「今の場所から再開」のままで解像度だけ変更すれば、視聴中のシーンから解像度を変えて鑑賞を継続できるわけです。
ファイルの再生位置をストリームを維持している間だけではなく常に覚えていてくれると更に便利ですが、とりあえず一般のファイル再生では、映像を続けて鑑賞したい場合はストリームを停止させずに維持してください。(エンコード済みになればストリーム維持しても殆ど負荷はかかりませんし。)
再生位置をストリームの生死に関係なく常に記憶しておくには 6) のプレイリスト機能を使います。
(2) 「エンコード進行中」 と「エンコード済み」の違い
HLSストリーミングでファイル視聴する仕組みが放送視聴の仕組みと一番違うのは、サーバー側がエンコードをどんどん先に進めていって、エンコードが完了するとプレーヤーの振る舞いが変わる点です。
HLSのプレーヤーは「エンコード進行中」には殆どの細かい操作ができず、作られていくストリームデータを決められたロジックで再生することしかできません。どこを再生するかをユーザー側は指定できず、エンコード進行中にページを離れて暫く後に視聴再開すると、再生位置は最新のエンコードデータの辺りに移動してしまいます。
(この辺の作りを見るとHLS再生の仕組みはもともとはライブストリーミングを想定して作られていることが伺えます。)
エンコードが完了すればプレーヤーの機能でシーク操作ができるようになりますので、普通のファイルをメディアプレーヤーで再生するのと同じような操作性になるのですが、そうなるまではストリームを開始してから性能の良いサーバでも数分(30分番組で3~4分)は待たなければなりません。
この辺の制限について改訂前の記事ではいろいろ注意点を書きましたが、ファイル再生がいま1つ使いにくいと感じる原因になっていたのではないかと思います。
この制限を取り払うために、現在のバージョン(TvRemoteFiles v0.64U 以降)ではサーバ側(TvRemoteViewer_VB v0.96以降)の機能を使って、エンコード進行中であってもプレーヤーに頼らずにシークできるようにしました。
それでも 「エンコード進行中」 と「エンコード済み」 の状態では操作にいくらか違いがありますので、ここではそれも踏まえて説明いたします。
エンコード進行中とエンコード済みの状態でのシーク動作の違いは以下の通りです。
このようにエンコード進行中にはシークや再読み込みを実行するたびにストリームの再起動をおこないますので動作のタイムラグがありますが、ファイル再生ストリームの再起動は放送ストリームと比べて仕組みが単純で速い(数秒程度)ので、十分実用的に使えます。
更にエンコード済みになるとシークや再読み込みはプレーヤーの機能のみでサクサク反応しますので、時間の余裕のある時は早めにストリームを開始してエンコード終了させておくのも良いと思います。
このような振る舞いの変化がありますので、シークボタンはエンコード進行中とエンコード済みで以下のように変わります。
エンコード済み (エンコード終了したがプレーヤーが未認識の状態)
↓ (スマホ・タブレットでは自動的に切り替わります。PCでは赤丸部を押してリロードすれば切り替わります。)
.
最初のエンコード進行中のシークボタンでは、押した分の時間を加(減)算したものが青いボタンに表示され、
これを押すことでシークが実行されます。
シーク動作にストリーム再起動が伴うため、例えば10分移動するのに5分ボタン2回押して2回シーク動作させていると非効率です。よってこの状態でのシークは、必要な分をまとめてから実行させるわけです。
また+の時間でシークすると一旦以下のようなメッセージが表示される事があります。
これはファイルの全時間がまだ判らない時に時間を加算する方向のシークをする際のメッセージで、全長を越える時間指定だとストリーム起動が失敗する、という問題を避けるための確認です。十分判っていてもうっかりやってしまうことがありますので、毎回の確認が有用と判断しました。
(観てる方はこれが30分番組なのか1時間番組なのか程度はだいたい判ると思いますので。)
一方エンコード終了すれば、シークボタンを押すと右側に以下のように数字が表示されるだけになり
最後にボタンを押してから2秒でシークが発動します。これはプレーヤーの機能のみでシークしますので、待ち時間は殆どありません。(リモート環境でビットレート/回線速度に余裕がない状態だと数秒かかるケースはあります。)
2秒以内の間隔で複数回ボタンを押せば押した分の時間がどんどん加(減)算されていきますし、押す度に発動まで2秒の猶予が与えられますので、その間に必要なボタンを順に押していけば良いわけです。
(モバイル系端末では、あまり急いで連続タップするとダブルタップとみなされて、画面の拡大/縮小など余計な動作をしますので、トン・・トン という感じの間を置いてタップすると良いです。)
この辺は本来はTvtPlayのようにボタンを押す度に即シーク実行する形でも良かったのですが、プレーヤー機能のシークをいろいろテストした結果、HLSプレーヤーの場合次のシークコマンドを受け付けるまで暫く時間がかかることが判りました(無理にシークを連発するとハングがありえます)ので、連続シークするよりも予めまとめたほうが良いと判断した次第です。
実際特にモバイル系の場合、シーク実行後しばらくシークボタンの文字がかすれてボタン操作を受け付けなくなるタイミングがありますが、
これはまだ次のシークを受け付けない状態を示します。数秒待てば元に戻りますので、追加でシークしたい場合は一寸だけ待っていただければ。
なお、このプレーヤー機能を使ったシークで遡れるのは現在のストリームの先頭までです。
どういう事かと言うと、現在のストリームが「エンコード中のシーク」や「解像度変更」を経ていると、現在のストリームの物理的な先頭は最後にそれらを実施した位置になり、プレーヤーの機能でそれより前の位置までは遡れません。
改めてもっと前に遡って視聴したい場合は、一旦「再読込操作」のポップアップで
「再開位置を指定」で適切な位置を指定のうえ「ストリームを再起動」し、改めてシーク等で希望のシーンまでの位置合わせをおこなってください。(現在地を起点にしたければ「今の位置」のままで再起動、よく判らなければ0=ファイルの先頭 で再起動してから位置合わせをすれば良いと思います。)
現在のファイル再生ではこのように再生位置合わせのためのストリーム再起動を多用しますが、複数画面で同じストリームを思い思いに再起動できてしまうと収拾がつかなくなりますので、ストリーム再起動をともなう操作ができるのは1つのストリームにつき1つの画面だけ、というルールにしました。
(基本TvRemoteViewer_VBは個人用途なので、複数端末で同じストリームを同時に観るというケースは少ないと思いますが。。)
他の理由として、ストリームのエンコード途中に再生位置を正しく把握できるのは現在のストリームを起動した画面だけ、という理由もあります。(エンコード中に途中から視聴を始めた画面は再生開始位置が不定なので、「ストリーム起動位置+Play時間」で正しく再生位置を計算できません。)
したがって正しく再生位置を記録していく上でも、今のストリームを開始した画面に所有権と再生位置記録の義務を与えています。
所有権は図のように引き継がれていきます。
再生位置は所有権付与と同時に最後に記録された位置に調整されます。 (その時点でエンコード未了ならストリーム再起動で位置合わせしますし、エンコード終了していればアクセス直後にプレーヤーのシークが発動します。)
このような仕組みで、視聴を中断したり他の端末に変えたり、途中で解像度や音声チャンネルを切り替えたりしても、再生は正しく継承されるわけです。
この引継ぎがスムーズにおこなわれるように、視聴を中断する際に内部的に「所有権の返上」という処理がおこなわれます。
これによって次にそのストリームを開く画面は速やかに所有権を獲得し、まだエンコード中の状態であればストリームの再起動をおこなって位置合わせするようになっていますが、視聴中断のやり方によってはこの「所有権の返上」がきちんと行われない事があります。
所有権が返上される | 所有権は返上されない |
---|---|
ファイル再生画面からトップメニューに戻る。 ファイル再生画面から番組表やテレビ視聴画面等に移る。 |
ファイル再生画面を開いたまま放置。 ファイル再生画面を開いたままブラウザを落とす。PCを落とす。 ファイル再生画面から他のサイトに直接移動。 |
こういう動作ルールがありますので、視聴を中断する時は、視聴画面を開いたままブラウザを終了させるのではなく、トップメニューなど他の画面に移ってから終了させるのがお勧めです。
所有権が返上されていなくても所有者の生死はどの画面でもモニターしていますので、ファイル視聴画面を開きっぱなしでない限り、「所有者がいなくなる=所有権をもった画面が別の画面に遷移したり落ちてしまえば」、2分ほどで所有権は剥奪されます。
但し再生位置は正しく中断処理しなければ中断時のものが記録されていませんが、中断処理されていなくても再生位置は必ず20秒置きに記録されていますので、直前のものまで遡るだけです。
端末側の画面にはこういう監視モニターとしての機能もありますので、サーバ側でも監視のために常にブラウザからトップメニューを開いておくのがお勧めです。(監視機能は今後プレイリストの管理のためにも重要です。)
(こんな感じでサーバでもトップメニューを監視用として常に起動しておくのがお勧め。)
もちろんサーバ側の画面が立ち上がっていなくても端末側の各画面で監視機能は動いていますが、所有の返上がないままのストリームを次の画面がいきなり開いた時はスムーズに所有権が引き継がれず、2分ほど所有権がない状態になり、再生位置の調整ができません。ここはちょっとした注意点になります。
(4) シークボタンのカスタマイズ
シークボタンは\HTMLフォルダの seekbutton.json というファイルに定義してあり、数やシーク秒数をカスタマイズ可能です。
注)内部的に利用しているjson読み込み関数があまり高機能ではないため、コメントや文法の誤りがあると読み込めません。カンマの打ち場所等も間違わないようにしてください。また全角文字はUTF-8でないと正しく読めないので、全角を使う時はサクラエディタ等の利用がお勧めです。
iPhoneやAndroidの標準プレーヤーであれば、ここまでの機能を使って再生位置は意図した通りに操作でき、再生位置も正しく記録されていきます。
例えばiPhoneでは動画再生自体は全画面の標準プレーヤーでないと動きませんが、一旦ブラウザに戻ればシークボタンを操作でき、全画面に戻ったタイミングでそのシークが発動します。
しかしMX動画プレーヤーなど外部プレーヤーをURL連携で使う場合、ブラウザから再生位置の制御はできません。
ただ、その場合も「ブラウザ側でストリーム再起動をともなう位置合わせ」をおこなった直後にプレーヤーを開けば、再起動した場所から再生開始することができます。
「ストリーム再起動をともなう位置合わせ」とは具体的には、
エンコード中であれば普通に再生画面を開いたり再ロードしたり、シークを実行したタイミング
エンコード終了後であれば「再読込操作」から「ストリームの再起動」をおこなうタイミング
になります。完全ではありませんが、この辺の手法を活用いただければと思います。
.
ここではTvRemoteFiles v1.00 で追加した「プレイリスト機能」をご説明します。
プレイリスト機能はファイル再生の拡張ですので、基本的な操作は前節のファイル再生機能もご参照ください。
プレイリストになると便利になる点としては、シリーズ物や観たい録画を順に登録しておけば自動再生していくので「ながら見」に最適、という点は勿論ですが、機能的にも次のようなものが使えるようになります。
・ ファイル再生と同じくプレイリスト再生状態もサーバに記録されるので、外出先と家で端末を変えながら続きを見ていくことができ、途中で解像度を変えればそれも引き継がれていく。
・ 更にプレイリストの再生位置はストリームを終了しても保持されるので、一度作成すればいつでも観た所の続きから観ることができる。
これは単体ファイルでも結構有効なので「ファイル1個だけを登録したプレイリスト」という使い方もあります。
・ 再生時に横にプレイリスト一覧を見ながら再生ファイルを切り替えたり、少し覗いてすぐに元の再生位置に戻す、という事もできる。
・ 「サブストリーム」を使って、再生しながら裏で次のファイルもスタートさせてエンコード終了させる機能を実装した。
これによってリストのファイルをスムーズに切り替えながら、切り替え直後から再ロード不要の素早いシークができるようになります。
・ 各ファイルに開始オフセットだけでなく、終了オフセットを設定できる。
特にBS/CSの番組では本編終了後にまとめて長い番宣や通販番組が入りますが、その時間を予め終了オフセットで省いておくことで、後ろの長いCMを飛ばしながら連続再生できます。
おおまかには以上のような特長があります。と言っても使っていくうちに判ると思いますので、まずはクイックに利用する流れをご説明します。
① クイックスタート
「ファイル再生」画面で「プレイリスト」タブを押すと、図のように赤い背景のプレイリスト画面が表示されます。
・ プレイリスト作成
ここで「新しいプレイリスト」の先頭にある「+」ボタンを押せば
プレイリスト作成/編集モードになり、また下のファイルリストにはそれぞれの先頭に「+ボタン」が表示されます。これを押していくことでプレイリストにファイルが登録されていきます。
登録直後は図のように選択状態になっていますので、ここで「1つ上へ」「1つ下へ」ボタンを使って再生順を好きな所に移動できます。
ファイルをクリック/タップすれば選択⇔非選択と変わり、複数選択も可能、また「選択解除」ボタンで全て非選択にすることが出来ます。(うっかり目的外のファイルを移動しないよう、何かの操作の前に都度「選択解除」するのは割と重要です。)
プレイリスト先頭のΘは削除のボタンです。
これはうっかりタップで削除しないよう2回押す必要があり、1回目で「削除」候補の表示に変わり、これをもう1回押すことでリストから消えます。
「削除」候補状態のまま放っておいても何も起きませんが、うっかりもう1回タップすると削除されますので、この状態を取り消すにはボタン以外の文字部分をクリック/タップしてください。
リストが作成できたらタイトルの欄にプレイリストの名前を入れてください。
(ここが空欄の場合でも先頭のファイル名を元に名前が付きます。)
以上で「保存」ボタンを押してください。
これでプレイリストが1つ登録されました。
この状態で先頭の「Edit」ボタンを押せば編集画面に戻りますので、追加・変更がいつでも可能です。
・ プレイリストの再生
さて実際にこれを再生してみます。このリストの名前部分をクリック/タップすれば選択状態になりますので、選択したうえで「選択したプレイリストを再生」ボタンを押してください。
すると図のような再生指定のウインドウがポップアップします。
ここで再生ストリーム、解像度、どこから再生するか、再生順、を選択してください。
ここで選択した再生ファイルや解像度・再生順の設定は視聴画面でいつでも変更でき、
(例えば解像度の変更は通常のファイル再生と同じく、「再読込操作」ボタンで可能です。)
変更した解像度等の設定は以後も引き継がれていきますので、ここでの指定は「とりあえず」のもので構いません。
以上で「再生」ボタンを押せば、プレイリスト再生画面が起動します。
特に普通のファイル再生と変わらないように見えますが、良く見ると自分のストリーム表記の先頭に、ファイル再生の「F」ではなく「PLxx」とプレイリスト番号が付いており、また「プレイリスト」というボタンが加わっています。
この「プレイリスト」ボタンを押すと、右側にプレイリスト情報サイドパネルが出現します。
プレイリスト情報のサイドパネルを開いておけば現在の再生位置が判りますし、またここから別のファイルにジャンプすることも出来ます。
ただ、ここから簡単に他のファイルに飛べるのは便利なのですが、反応の遅いタブレットやスマホで操作する場合、リストをスクロールするつもりがうっかり2回タップして再生が切り替わってしまう、という誤操作が発生するかもしれません。
(タップのインターフェースはこのような誤操作を起こしやすいところが弱点だと思いますが閑話休題)
このような誤操作を抑止するために、トップ画面の「管理」タブで「切替え確認メッセ―ジの表示」を設定できます。→設定方法はこちら
これをチェックしておくと、サイドパネルから再生ファイルを切り替えようとした際に図のような確認メッセージが表示されるようになります。
ここで意図せず再生が切り替わりそうになった時はキャンセルすれば良いわけです。
私が自分で使ってみた限りでは、PC(つまりマウス主体の操作)や動作の軽快なタブレットではここはチェックしない、反応の遅めなタブレットやスマホではチェックした方が使いやすいと思います。
以上が大まかな操作になります。
ちなみにプレイリストの再生も通常のファイル再生と同じく「所有権」が必要になります。所有権の無い状態でプレイリストを観ようとすると、図のように
エンコード中のシークボタンが無効化されており、また図のように「プレイリスト」ボタンが無く、実況情報表示ボタンだけになっています。
逆にプレイリスト再生している筈なのにプレイリスト関連の機能が一切使えない、という時は所有権がないことになります。
他の画面が再生している場合はそちらを終了させてから視聴画面を開くかリロードすれば、所有権が取得され、通常の操作が出来るようになります。
また直前の視聴が綺麗に終わらなかった場合も所有権がすぐに取得できない事があります(特に監視画面がどこにも動いていない場合)
そのような場合は2分程度待ってから再度視聴画面を起動するかリロードすれば所有権が獲得され、正常にプレイリストを操作できるようになります。
② プレイリストの編集
さて、もう少しプレイリストを作り込んでみましょう。
・ プレイリスト一覧で各プレイリストの先頭にある「Edit」ボタンを押せば編集モードになり、中身を弄ることができますが、この際一覧で、「再生中」や「待機中」となっているものは現在ストリームに存在しているプレイリストで、これらは(動作がおかしくなるのを防ぐため)編集できないようになっています。
(ちなみに「再生中」はどこかの画面が所有して再生している最中、「待機中」はストリームに存在しているが誰も再生していないものになります。)
これらを編集したければストリームを止めてしまえば良いのですが、止めたくない場合はリスト上で「COPY」ボタンを押せば、
全く内容の同じプレイリストのコピーができますので、これを改めて編集して利用する手もあります。
コピーしたプレイリストは最新の再生位置情報も含めてコピーされます。
・ 編集画面ではファイルの追加、削除、ファイル名でのソート、並び替えができます。
ファイルを追加する場合、既に該当プレイリストに登録済みのファイルは重複登録できません。
この辺はiTunesの仕様と同じなのですが、要はプレイリスト上のファイルはリスト上の番号ではなく、あくまで「ファイル名(フルパス)」で判別しますので、1つのプレイリスト上でファイル名はユニークでなければならない、という仕様のためです。
ただ一旦作成したプレイリストを改めて編集する場合、下のファイル一覧には登録済のファイル情報は(パフォーマンスの観点で)反映しておらず、全てのファイルに「+」ボタンが付いています。ここで既に登録済のファイルを改めて登録しようとしても図のように
「+」ボタンは消えずに「X」マークに変わり、既に登録済なのが判るようになっています。
・ ファイル編集中に別の画面に移動したりリロードボタンを押すと編集中の状態は破棄されますので、一旦保存するよう注意してください。
ただし、編集中にファイルリストがまだ全部取得出来ていない状態で、「キーワード絞込み再ロード」 および「絞込み解除して再ロード」でファイルを探せると便利なので、この操作は編集中にも使えるようになっています。(編集中に絞込み再ロードしても、編集中の状態はそのまま維持されます。)
古めのファイルをプレイリストに加えたい時にご活用ください。
・ 編集リストを右にスクロールしていくと、図のような入力/選択欄が現れます。
ここの開始オフセット、終了オフセットを指定しておけば、再生開始は先頭からのオフセットでシークしてから開始しますし、終了/次のファイルへの切替えはファイル末尾ではなく、末尾から終了オフセット分だけ遡ったタイミングになりますので、前後の長いCMを飛ばしながら連続再生するのに便利です。
設定には秒数またはmm:ss、hh:mm:ss の形式で入力します。(秒数で入れても図のようにmm:ss、hh:mm:ss形式に直されます。)
なおここの入力(およびタイトルの入力)の際のちょっとした注意点ですが、入力してカーソルを入力欄に置いたまま「保存」ボタンを押しても内容が反映されなかったり、「変更項目なし」と見なされて保存ボタン自体が押せないままの場合があります。
これはWebフォームのちょっとした弱点で、入力欄にカーソルが留まったままではシステムでは入力未確定と見なされて値が読めないからで、しっかりシステムに入力内容を教えるためにはEnterキーを押すか、一旦他の入力欄やファイル名などをちょっとクリック/タップしてから「保存」ボタンを押すようにしてください。
次の通常音声/Main音声/Sub音声 の設定は、
次節でご説明している(NHK以外の)二ヶ国語放送のプリセットです。
ここを Main音声/Sub音声 に設定しておけば、「各解像度で末尾に_Main/_Subの付いた名前の設定がある場合に」それが自動で選択されるようになります。
NHKの主/副音声については、もう1つの選択欄でプリセットを選べます。
ファイルがどのような音声構成になっているかが予め判っている場合には、これらをセットしておけば再生時に自動で希望の音声が個別に選択されます。
以上のような形でお好みのプレイリストをカスタマイズしていってください。
・ なお作成できるプレイリストは01番から99番までの99個で、番号は自動採番されます。また1つのプレイリストに登録できるファイル数の上限も99個です。
これらの数が十分か少ないかの議論はあると思いますが、自分が日常的に使うiPhone等のプレイリストは到底そこまでの数にならないのと、リモート環境でも出来るだけ動作の軽快さを保つためにもこの辺の上限を置いています。99個なら4クールの放送でも楽に登録できますし。(さすがに朝ドラ全部は無理ですが)
またプレイリストはこの節の最初に書いたように1個のファイルだけで構成しても良いのですが、プレイリスト再生時に「1個のファイルだけをリピート」するシングルモードもありますので、むやみにプレイリスト数を増やさなくても、とりあえず観たいファイルをまとめて1つのプレイリストに登録しておいて、「再生時にシングルモードで再生する」という使い方も実用的だと思います。
「全ファイルを順番に再生しリピート」「1個のファイルだけをリピート」「ランダムに再生」のモードは再生中にプレイリスト操作パネルの上にあるボタンで切り替えできます。
これも一旦変更すれば、以後も引き継がれていきます。
③ サブストリームと「20秒」ルール
プレイリストの再生では「サブストリーム」を使って、次に再生する予定のファイルも予めスタートさせ、実際に視聴する時にはエンコードも完了させておくことにより操作性を上げ、次のファイルに素早く切り替わる機能を持っています。
図で説明すると以下の通りです。下がサブストリームを使った再生になります。
サブストリームは「予定される次のプレイリスト項目と仕様」をシステムが判断しながら維持したり再生成しますので、例えば途中で解像度を変えたり、再生モードを「順番」から「ランダム」に変えた場合には適切なものがダイナミックに再生成されます。
この辺を利用者は殆ど意識する必要はありませんが、次のファイルへの切替えが近づいた頃にモード変更をおこなうと、次のファイルのエンコード完了が間に合わない場合もあります。(その時は切り替えのタイミングで次のストリームが再起動されます。)
その辺はベストエフォート型の機能という事で。
サブストリームの存在は視聴画面やトップ画面、ファイル選択画面でのタスク一覧には出てきませんが、
停止対象のストリームとしては表示されますし、
新規にストリームを立ち上げる際にも「使用中」のストリーム番号となりますので、存在は判ります。
トップ・管理画面では図のように現在動いているサブストリームの情報も表示されます。
サブストリームは勝手に停止させてもプレイリストを再生している時にまた起動されますし、空いているストリームが無い時や必要な時にサブストリームが消えていても、それに合わせた動きをします。またプレイリスト本体が停止されれば、サブストリームも自動で停止します。
このように通常は特にサブストリームの存在を意識する必要はありませんが、ストリームをできるだけ節約したいとか、サーバの能力に余裕がなくで勝手に裏でエンコードが動くのは不安、という場合、「サブストリームを使用しない」設定もできます。
デフォルトではチェック(=使用する)になっていますので、気になる方はここをチェックアウトしてください。
ただしここのチェックを外しても、サブストリームを使わなくなるわけではありません。あくまで積極的に使わないだけで、再生ファイル切り替え時には切り替え前のストリームが20秒程度「サブストリーム」として残ります。
またこの設定に関係なく、プレイリストの再生では使用するストリームは一定しておらず、再生ファイルが切替わるたびに空いているストリームを適切に選んで動いていきますので、再生中のプレイリストを選ぶ際はストリーム番号ではなく、PLxxのプレイリスト番号を見てください。
ちなみにこの「直前のストリームが20秒間だけ残っている」という特性は、サイドパネルからザッピングの感覚で視聴ファイルを切り替える場合にちょっとだけ便利です。
図にすると以下のようになります。
プレイリストで再生ファイルが切り替わると、元のストリームはすぐに消えるのではなくサブストリームとなり、新しい「主(プライマリ)」ストリームが該当プレイリストの再生状況を管理することになります。
新しいプライマリストリームは起動後20秒で最初のチェックをおこない、自分のサブストリームをあるだけ検出した上で、自分が予定しているもの(次の再生ファイル)の仕様に合ったものだけを残して、残りは停止させます。
この時点で元のストリームも通常は(プレイリスト要素が2個しかない場合を除いて)消えることになるのですが、そうなる前に元のストリームの再生に戻せば、前のストリームの状態を継続して視聴できることになります。
要は監視タスクにかかる前に(同じファイル内のシークも含めて)再生を切替えていけば元のストリームは保持されたまま保たれるわけで、少し他のファイルを覗いてみたい、というザッピングの時には便利かもしれません。
ちょっとトリッキーですが20秒ルールと言いましょうか。。(本来はうっかり操作ミスの救済策として付けた機能です。)
④ プレイリストファイルについて
作成したプレイリストは、サーバ側で\htmlの下に \file フォルダが作成され、そこに保存されています。
フォルダ内容は図のようになっています。
これらのファイルもバージョン移行の際には忘れずコピー(または保持)するようにしてください。
拡張子.jsonのファイルは管理ファイルですので弄れない(誤動作の原因になる)のですが、拡張子.m3uのファイルはTvtPlay(放送TSファイルで構成されている場合)やMPC-HC、VLCでも使えるプレイリストファイルになっていて、内容は以下のようになっています。
当プレイリストで独自拡張している音声選択や開始・終了オフセットのような情報は単なるコメント扱いとなり意味を持たなくなりますが、その点を除けばコピーして簡単に使うことができます。
TvtPlay等のプレイリスト作成機として使えることになりますね。
ちなみに実は逆も真なりで、他で作ったm3uファイルやここで作ったm3uファイルのバックアップを、PLxx(xxは01~99)の名前でここに置けば、普通に読み込まれます。
ただしその番号のプレイリストファイルが存在することをシステムに教えなければなりませんので、ダミーのプレイリストを一旦適当な中身で登録してから同じ番号の名前で上書きする必要がありますが、沢山作りたい時のバックアップ/リストア方法としても使えますので、ご興味のある方は試してみてください。
なおm3uファイルの一般的な話として、記載されているファイルパスが絶対パスなので、該当のサーバー機以外では一般的には使えないという問題がありますが、最初からTvRemoteViewer_VB.iniでリモートフォルダだけでなくローカルフォルダのパスもネットワークパスで記載しておけば、同じLAN上のどこからでも使えるプレイリストが作成できます。
7)二ヶ国語放送(または録画)で日本語/英語音声を選択する。
日本の放送では殆どの場合、二ヶ国語放送の際に(番組表には[二]のように表記されます。)、システム的には本来ステレオ音声を流すはずのトラックに L=日本語、R=外国語 のような形で、それぞれにモノラル音声が流れます。
普通にテレビやTVTestで放送や録画を観るときはそれらを自動判別しますので、日本語音声だけがデフォルトで流れ、したがって殆ど気が付かないのですが、一般的なメディアプレーヤーの場合には二ヶ国語放送という概念がありませんので、普通に左音声で日本語、右音声で外国語がそのまま流れてしまいます。
ここまで構築したTvRemoteViewer_VBシステムもそれは同じで、既にちょっと聞き取りづらい番組に遭遇されたかもしれません。地上波ではあまり遭遇しないのですが、衛星放送のニュース・MLBやNFLなどの海外スポーツ、私が個人的によくチェックするナショジオ・ディスカバリーなどの教養番組には結構二ヶ国語放送が多いです。
まあそれで自然に英語が身に付くという方は別に構わないかもしれませんが、一般的には聞き取りにくくなりますし、ましてやヘッドホン無しにPCやiPhoneのスピーカーから音を流す場合は、両方が混ざり合って何を言っているのか殆ど判らなくなります。
しかもスマホやタブレットには左右音声のどちらかだけを選ぶような機能は殆ど付いていません。
この端末側で選べないという制約があるため、二ヶ国語放送をストレスなく視聴できるようにするためには、サーバのエンコード・パラメーターで、どちらか片方をモノラル音声として流すよう選択できるようにする必要があります。(今のところ残念ながら二ヶ国語放送を自動判別するロジックは組み込めませんので。)
そこで解像度の選択時に一緒に音声チャンネルを選択、すなわちノーマルなステレオ、二ヶ国語放送の日本語、外国語、という選択ができるようにしました。つまりこんな形です。
解像度の選択の際に下に辿って行くと同じ解像度でも、図の赤の囲みにある「ノーマル(ステレオ)音声」、緑の囲みにある_Main が付いた「主(日本語)音声」、青の囲みにある_Sub が付いた「副(外国語)音声」、が選べるようになっています。番組表で(二)[二]のような表記があるときは、この段階で音声言語を選べば良いわけです。
また視聴を始めてから二ヶ国語放送に気が付いた時は、視聴画面の解像度選択のところで_Main の付いたプロファイルを選び直して「視聴」を押せば、十秒前後で主音声の映像に切り換わります。
ファイル再生の場合には下のほうにある「再読込操作」ボタンを押せば、
解像度/音声を選択できる画面がポップアップしますので、ここを指定してストリーム再起動すれば良いです。
このような形で、二ヶ国語放送の際には必要に応じて音声を選択することができます。
いろいろ選べるのはいいんだけどこの選択リストが長すぎる、と思われる方は(確かに長いので・・)、不要なものが選択リストに出てこないようにすることもできます。
その場合は \TvRemoteViewer_VBフォルダにある HLS_option.txt を右クリック→編集 で開いてください。
すると以下のような内容が表示されます。
(実際には1行1行はもっと長く、折り返して表示される場合もあります。)
ここに通常形式、主音声、副音声のそれぞれ定義文が書かれているので、例えば
「副音声の選択をすることは無いので不要」と思われる方は青の枠内を全て削除してください。
「320x180L、640x360、1280x720以外は選択する事がないので不要」という方は、それ以外の行を全て削除してください。
但し削除の注意点として、HLS_option.txtには「行の間に空の改行を入れない」というルールがあります。(空の改行があると、それ以降の行は読み込まれません。)
したがって行を削除したら必ず次の行との間が空かないよう、間を詰めることにご注意ください。
以上で保存してTvRemoteViewer_VBを終了・再起動すれば、編集で残したものだけが表示されるようになります。
このシステムはロケフリなので、当然海外出張や旅行の際にもLAN/WiFiの環境さえあれば、PCやタブレットから日本に居る時と同じようにテレビや録画を視聴でき、結構便利だと思います。(アクセスの料金体系にはお気をつけください。今はホテルで自由に使えるLAN/WANの環境がかなり充実していますので、その辺の安価で帯域十分な回線が確保できれば、殆どストレス無く使えるようになります。)
この場合、PCやタブレットが日本時間のままなら環境として何も変わらないのですが、それなりの期間滞在する場合は現地時間にシステム時計も修正していくと思います。(現地のスケジュールは当然現地時間がベースになりますし、そうやって現地時間に全てを合わせていかないとなかなか時差ボケも抜けません。)
そういう時に何が問題になるかと言うと、端末側(javascript)のプログラムが更新している番組情報や実況サーバの接続が本来の日本時間のタイミングに合わず、タイムリーに切り替え出来なくなるため、番組情報がなかなか切り替わらなかったり、実況も日本時間の4時に切れたままになったりという現象が起きます。
この辺の問題を解消するために、トップメニューの「管理」タブにタイムゾーンを登録する機能を付けました。
初期状態ではセレクトボックスにロックが掛かっていますので、変更するにはまず、「補正する」のボタンを押してください。
するとタイムゾーンと夏時間の選択が出来るようになります。
これはPC/タブレット等で使っているタイムゾーン自体を変更する機能ではなく、あくまでTVRemoteViewer_VBの端末機能に今PC/タブレットが使っているタイムゾーンを「正しく教える」機能なので、ご注意ください。
現在地のタイムゾーンがどれに当たるのかよく判らない方はこの辺のリンクもご参考に。
タイムゾーンをTVRemoteViewer_VB端末機能が正しく認識できれば日本時間への換算もできますので、例えば10:00から次の番組が開始する時に番組情報もタイミングを合わせて切り替える、という(ある意味)当たり前の動作が出来るわけです。
海外旅行なら旅先でわざわざ日本の番組ばかり観ていては異国情緒にも浸れないので、余り多用はお勧めできませんが、海外出張でしかも長期となると、ある程度現地のテレビとか限定的な日本語放送に慣れては来ても、やはり日本の番組が恋しくなりますし、実況付きでリアルタイムに観られるとなると尚更だと思います。
こういうのも手軽に使えるという便利な時代になりましたね。
ちょっとした機能ですが、TvRemoteFiles v0.57U以降、でお休みタイマを付けました。
使い方は簡単で、視聴画面で下の操作バーに「タイマ」のボタンがありますので、これをクリックしてください。
すると「時間のセット」→(タイマ稼動中)「タイマの取り消し」の順にボタンが切り替わります。
これは私自身が欲しくて付けた機能なのですが、スマホやタブレットで「ながら視聴」しているうちに、うっかり映していることすら気にならなくなってしまい、必要もないのに長時間付けっぱなしになってバッテリー切れを起こす事があります。(スマホ・タブレット・PCとも、動画が動いている間は画面スリープに移行しない設定になっている事が多いですので、バッテリー消費も多くなります。)
そういう場合、予めタイマをセットしておけば良いわけです。セットしても視聴を続ける時は簡単にセットし直すことができます。
また、私は寝る時にナショジオ等の録画を流したまま寝ることが良くあります。(教養系の番組は刺激や音量変化が少なくいい具合に眠れます。決して学生時代に授業中居眠りしていたのが子守唄として身に染み付いている訳ではありません。)
今まではTVTestの「スリープタイマ」の機能が使いやすく、VLC等と外部のタイマソフトの組み合わせで使うよりずっと手軽な反面、MP4のファイル等の再生には使えないのが弱点でした。そのTVTestと同等に簡単、かつ更に汎用的なタイマが欲しいという発想です。
javascriptそのものの機能では機器/OS個別のスクリーンOFFやスリープ機能を直接起動はできませんので、設定した時間になったらストリーム終了(但しファイル視聴のストリームは、存続してもシステム負荷が殆どないため保持)の上で、視聴画面を終了させ、専用の黒背景のシンプルな画面に移行するという形になります。
黒のブラウザ画面では只の誤魔化し、という声もあるかもしれませんが、動画が終了すればスマホ/タブレットでは程なくスクリーンOFF/休止状態に移行しますし、PCでも(動画表示中は保留されていた)スクリーンOFFやスリープ移行のタイマが(設定されていれば)働き始めます。
実際のハードの制御はこの辺に任せる、という発想です。
.
トップメニューで「手動配信」のタブを押すと、図のようなメニューが表示されます。
ここからストリーム番号とBonDriver (BonDriverを選択すればチャンネルも選べるようになります)、および解像度を選んで配信をスタートさせることができます。
ただし番組の内容はここからでは判りませんし、この手動配信でしか出来ないような事も特にないので、テスト用途以外あまり利用価値はないかもしれません。ただTVRock/EDCB等の番組表を別の画面で並行して見ている場合は、(そちらの方が情報量も多いですし)敢えてこちらの番組表をいろいろスクロールしてみる作業は不要かもしれません。そういう時は手間なくこちらで視聴開始できる手軽さはあると思います。
配信開始を押せば配信準備中となり、暫く待って視聴画面に遷移する動きも他の視聴と変わりません。
トップメニューの管理タブにある設定項目の使い方は、各機能に紐付くものはそれぞれの説明の中にありますが、ここではそれ以外の機能について説明いたします。
① ストリームの管理
ここで現在Activeなストリームの一覧を見て、既に不要になったものは個々に、あるいは全部のストリームを停止させることができます。
ストリームの停止だけであれば視聴画面でも出来ますが、ここは各ストリームの内容と使っているBonDriverの情報を見渡すことができる唯一の画面ですので、ストリームの状況をチェックしながら整理するのに便利です。
ストリームを動かしっぱなしでも別に回線を浪費する訳でもなく、観たい時にすぐ観られる状態なのはある意味便利なのですが、サーバ側のCPU負荷は(それなりに)ずっと掛かっていますし、また同じBonDriverを使いたい録画タスクがタイマーで立ち上がった際に、該当のBonDriverをこちらが握りっぱなしなのはまずい場合があります。
(Spinel経由で録画タスク側に優先権を持たせてあれば、競合しても単にチャンネル制御権を奪われるだけですが。)
そういう事もありますのでときどきこの画面でチェックして、必要のなくなったストリームは忘れずに停止させると良いと思います。
② 背景画像と背景色の選択
TvRemoteViewer_VBの端末側はブラウザの機能だけで動いており、現在のHTML5やJavascript/JQuery/Ajaxの機能の豊富さ/パフォーマンスの高さを我ながら実感していますが、(つまらない話かもしれませんが)「余白」の部分がブラウザデフォルトの白い背景のままだと、
いかにもブラウザの中に間借りしてます、という風にちょっとプアな感じです。
ちなみにこれも関係のない話で、最近往年のWinampの機能をHTML5とJavaScriptだけで動かしてしまった、という話もあって、技術的には結構参考になります(しかもやっぱりIEは対象外orz)が、それに対する反応が「良くやった」という声より、単に「ブラウザの枠が邪魔」という感じなのは笑えました。まあWinampはブラウザで動かす必然性が少ない(しかもローカルファイルを開く仕様は実はプラットホームフリーではない)のも事実ですが、ブラウザ上でアプリ実装する場合はやはり単に箱庭的なアプリではなく様々なブラウザ画面サイズを活かした機能域のスケーラビリティ (つまり小さい画面なら小さいなりに、大きければより広さを効果的に使う工夫)も必要で、加えて空白部の装飾も重要ですね。
そういう事の対策と言えるほどの大した機能ではありませんが、以下のように背景画像や背景色も指定できるようにしました。ここで指定した背景はトップメニューと視聴画面、およびファイル選択画面で有効になります。
背景イメージはTvRemoteViewer_VBの\htmlフォルダに入れておけばここのプルダウンに出てきますので、好きなものを選んでください。解除するときは空欄を選択すればよいです。
背景色は背景イメージが指定されていない時に有効です。プルダウンでカラー名を選ぶことができます。
モノトーン系とか赤系・青系のように分類されていますので、いろいろ試してみてお好みのものを選んでください。
(何故ここでカラーチャートのような形にせずカラー名で選ぶようにしたのか?という点については、何となく名前で選ぶ方がどんな色になるのか楽しいんじゃないかと。。)
.
以上で一通りの操作手順の解説は終わりです。特に視聴画面についてはプラットホームによって微妙に使い勝手が違いますので、まずは使って慣れるのが早道だと思います。
.
3.外部から家庭内LANにアクセスして視聴するためにDynamicDNSとVPNを設定する
さて、1.の設定が終わっていれば、家庭内のLAN環境であればスマホ/タブレットでもPCでも、同じ手順でストリームを視聴できるようになります。
これを家の外から使うためには
・外部インターネットから家のLANに"セキュア"な「通り道」を作って、"192.168.*.*"のような「プライベートアドレス」へのアクセスをそちらの通り道に誘導する仕組み(VPN)
・その「通り道」を確かに家のルーターに向けて張るために、家のルーターに割り振られた(しょっちゅう変化する)「グローバルIPアドレス」にドメイン名でアクセスできるようにする登録サービス(DynamicDNS)
以上が必要になります。
これらを準備しておけば、外からでも家のルーターに与えられたドメイン名を使ってアクセスして、ID&パスワードで(内部LANと)「接続」すれば、あとは家の中のLANに接続したのと同じ状態になりますので、全く同じ手順でストリーム視聴ができるようになります。
(違うのは回線の太さだけですので、無理のないビットレート(=解像度)指定などをおこなってください。)
なおつまらない事ですが、VPNを設定すると自宅から2chに書き込みができない、という思わぬ問題が出るようです。これはリンクのようなルーターのパケットフィルタ設定で回避できますので、2chを使う方はVPN設定時に一緒にやっておけば良いと思います。
セットアップのフローは以下のようになります。
セットアップのフロー 赤枠内をクリックすると手順の説明にジャンプします。(外部サイトを含みます。) | |
---|---|
D |
|
V |
|
① DynamicDNS(DDNS)とVPNの設定は、それぞれルーターの機能が利用できるかどうかによって少しフローが異なります。(上図)
ただやることの大まかな流れは同じですので、一例として以下のリンクをご紹介いたします。大体の雰囲気を見ていただければ。自分で書かずに済みません(^^ゞ
リンク先ではDDNSのIPアドレス更新機能、VPN(PPTP)機能とも、ルーターの機能を使える前提で書いてあります。
http://blog.ap.teacup.com/applet/tomba/20111020/archive
リンク先ではVNCによるPCのリモート操作とTVRock番組表へのアクセスも説明されていますが、いずれもTvRemoteViewer_VBを使う上でズバリ役立つと思いますので、DDNSとVPNの設定が完了したら、そちらも試してみられると良いと思います。
(例えばTvRemoteViewer_VBが何かの理由でハングしたと思われる場合は、VNCを使ってTvRemoteViewer_VBの終了/再起動の操作を外部からおこなうことができます。)
ただ一点残念なのは、リンク先で紹介されているDynamicDNSサービスのDynDNSは、古くから良く使われていて多くのルーターがDDNSサポートしている無料サービスだったのですが、現在有料(年25ドル)になってしまいました。
それを置き換える無料DynamicDNSサービスについては、例えば以下のリンクに紹介されているものが使いやすいと思いますし、特に[mydns]が、このサイト管理者自身で申込み~導入の手順を丁寧に解説しており、DiCEの利用法もあわせてワンストップの解説になっていますので判り易く、お勧めできると思います。
http://viral-community.com/other-it/ddns-praise-service-2065/
(登録時の自分のグローバルアドレスはこの辺のサイトで判ります。)
② DynamicDNSサービスは、ご自宅のルーターのグローバルIPアドレスがころころ変わっていくのを自動的に検出してくれる訳ではなく、自分のグローバルIPアドレスが変わるたびに「自動的にIPアドレス更新登録」をおこなうクライアント機能が必要になります。
これをルーターがおこなうのがルーターDDNS機能で、またWindowsのプログラムとしておこなうのがDiCEです。
ただこれはそれほど複雑な処理ではありませんし、ルーターDDNS機能がサポートするDynamicDNS業者は極めて限られていますし、自社の運営するDDNSに誘導しようとします(別に使っても構わないのですが有料だったりしょっちゅう旧サービス廃止で買い替えを促進したりします)ので、通常はDiCEを使う前提で構わないと思います。
DiCEを使うPCではWindowsのスタートアップに登録するのが良いと思います。これは「いじくるつくーる」を導入して「起動時に毎回実行」で「C:\Program Files (x86)\Sarad\DiCE\dice.exe」を登録すれば簡単です。
DiCEは負荷は無きに等しいのですが、たま~に空振りしたり落ちていることがあります。いざ外から使おうとした時にVPN繋がらない、となると困りますが、DiCEは別に1台である必要はありません。家で(Atomでも)常に動いている複数のPCがあれば、2,3台で動かしておいても構いません。あるいはこのようなプログラムを使って落ちたら再起動させることで、信頼性を上げるのも良いと思います。
③ 一方VPNについても、ルーターにその機能がない場合は、それに代わって
Windowsの機能を使ってVPNを構築する手順をご紹介します。
これも大して複雑な設定ではありませんので、以下のようなガイドを参考にすれば数十分でセットアップできると思います。
http://memo-log.9999ch.com/2011/06/26/939 (ルーター・ポートマッピングのLAN側ホストには、いずれもPPTPサーバ役のローカルIPアドレスを設定します。)
Windows VPN設定のトラブルシューティングにはこの辺の記事も参考になります。自分でもちょっと試してみましたが、Windows VPNを使う時のコツは、上記トラブルシューティング記事にあるように「IPアドレス割り当て範囲」を明示的に指定することと、スマホ(等の端末側)で、「全ての信号を送信」の項目は、ガイドとは異なりOFFにすることでしょうか。(ルーターと違って通常のWindows PCではDHCPとかDNSの役割は設定されていませんので、一見VPNが繋がったように見えても前者の明示がなければ適切なIPアドレスが取得できず何もアクセスできない、後者がONだと家のLAN内にしか繋がらなくなります。)
PPTPサーバ役のWindowsマシンはTvRemoteViewer_VBの動いているサーバでなくても構いません。(もちろん全て1台で賄ってもかまいません。) このマシンもIPアドレスは固定する必要があります。またVPNアクセスしたい時に動いていなければならないので、常時稼働しているPCが望ましいです。
④ Windowsの機能を使う方法は上記手順にある通り、外部インターネットにPPTPサーバ役PCの[ポート1723 とプロトコル47] を公開することになります。
結局「家のルーター」に対して、外部から[ポート1723] 宛のVPNセッションがリクエストされると、ルーターにその機能があればルーターが、機能がなければルーターはそれをそのままPPTPサーバ用PCに転送してそちらが、まずID/パスワードをチェックし、OKであればそことリモートの端末との間でセキュアな(暗号化された)通り道が作られて、そこを通して通常のプライベートネットワークの通信が行なわれる状態になるわけです。
WindowsのVPN機能がルーターのVPN機能に比べて劣るのは以下のような点ですが、とはいえ、当面の代替としては十分に使えると思います。
・ポートを限定するとはいえ、PPTPサーバ役PCの一部を外に公開するのはルーターに比べるといくらかセキュリティ面が劣る。
・クライアント系WindowsのVPN機能だと同時に1端末しか繋げない。
リモート視聴の便利さが気に入り、多用するようになった時には改めてVPN機能付きのルーターを購入検討するのも良いと思います。対応ルーターはピンキリですが、家で使うならこの辺やこの辺
で十分だと思います。
VPN機能付きのルーターを使いたいけど今のルーターは光/ADSLのプロバイダから提供されているから簡単に交換できない、と思われるかもしれませんが、別にそれは普通の環境です。
そういう場合はプロバイダ提供のルーターと購入するルーターを2段にして、後者(のWAN側)を固定アドレスにして前者からDMZとして定義し、全てのLAN側機器は新しいルーターの下に繋ぐ形に変えれば良いです。(DHCPや無線LANホストの役目も新しいルーターに移行すればOK。この辺の図を参考にしてください。)
新しいルーターのLAN側アドレス体系を現状のものに合わせれば、端末側から見れば何ら今までと変わらないまま、プロバイダ提供のルーターはほぼ通信をスルーするだけになり、2段目のルーターが実質唯一のルーターとしてフルに新しい機能を使えるようになります。
⑤ 端末側のVPN設定は、iPhone、iPad、Android、Windows、Mac と、それぞれの手順を参考にしてください。上でも少し書きましたが、PPTPサーバにWindows機能を使う時は、
iOS系であれば、「全ての信号を送信」の項目をOFFにする。
AndroidであればDNS探索ドメインを設定する。
Windows端末であれば「ゲートウェイを使用する」のチェックを外す。
Macであれば「すべてのトラフィックをVPN経由で送信」のチェックを外す。
という設定が必要です。(それをしないと、全てのインターネットアクセスをVPNを通してやろうとするため、DNS機能の無いWindows経由では外部インターネットに繋がらなくなってしまう。)
またWindowsVPNでもルーターVPNでも大抵はPPTP接続ですので、PPTP以外のIPSecやL2TPをうっかり選択しないよう、ご注意ください。
主に家庭内で視聴する場合は高めの解像度で問題はありませんが、リモート視聴を予定さていれる方は、家からプロバイダへのアップストリームの帯域、および利用する端末がそれぞれの場所で使える帯域をよく考えて、余り無理のない解像度を選んでください。各解像度のモードでストリームあたりに必要な帯域は以下の通りです。
アップストリームについては例えば、10Mbpsのアップリンク帯域がある場合は最高の解像度[1280x720]でも3本のストリームを同時配信できますが、ADSLのように数百Kbpsのアップリンク帯域しかない場合は、見合った解像度をデフォルトに設定しておく方が無難です。
うっかり能力を超えた解像度に気付かずに動画開始しようとすると、画面が妙に重くなったり、バッファリング中の車輪が延々と回転するだけの状態になります。
またビデオのシーク時には部分的とはいえビデオファイルの中の情報を舐めていきますので、ビットレート/帯域 に余裕がないとシークや頭出しのレスポンスが悪化する点にもご注意ください。
逆にそういう現象はこの解像度の選択が原因というケースが多いですので、そういう場合視聴画面からもう少し軽いビットレートの解像度を指定し直して、ストリーム再起動すれば良いです。
仮に回線の状態が悪くても最も軽い[256x144L]解像度なら大抵は大丈夫だと思いますし、この解像度でもスマホ画面ならそこそこ視聴できます。また音声のみの[0x0sound]というモードを選択すれば、絵は出ませんが極めて低いビットレート環境でとりあえず音声は聴けます。
(但し音のみだとスマホやタブレット標準設定では、画面放置したのと同じく1分程度で自動ロックがかかりますので、利用する間は自動ロックを解除しておいてください。)
このような低ビットレート設定は通信条件の悪い場合に使えるほか、LTEや3Gの7GB制限に引っかかった場合にも有用です。
(何を隠そう、私自身最近それに良く引っかかるのが[256x144L]モードを作った理由です。リモート視聴はできるだけWiFiサービスを有効利用すべきですが、もしLTEや3Gで使いまくってこれに引っかかった場合でも、この辺なら100kbps程度の速度でも何とか使えますので、制限が解除されるまでの救済策になります。)
不安定な通信環境ではバッファが追い付かず再生が止まる事がありますが、この辺の操作もご参考に。
また別の問題として、あまり重いアップストリーム帯域を多用した場合プロバイダのアップストリーム帯域規制に引っ掛かる危険性はありますので、プロバイダの規制値(大量データ転送量制限:一日十数GBと決められている場合がある)をネットなどで調べておくのが無難です。
(それを越えてもいきなりペナルティがあるのではなく警告のメールが来ますので、その時点でアップストリーム使いすぎ、という事が判ります。)
この辺はもともとはファイル共有ソフトの帯域浪費を懸念しての対策なので、ストリーム配信ではよほど1日中高解像度で見っ放しでもしない限り大丈夫だとは思いますが。
(例えば2Mbpsの動画をずっと外から見続けた場合、約11時間で10GB + α のデータ転送量になります。)
リモート側で何台かの端末で同時に1つのストリームを受信する場合も、アップストリームの帯域はそれらを足した分だけ必要になります。(なぜなら配信はマルチキャストではなく1対1で個別におこなわれますので、帯域も同時視聴台数分を足したものが必要、ということです。)
逆にストリームが起動していても再生中の端末が無い場合は、回線帯域は全く消費しません。(サーバ側でひたすら配信用ファイルを作っては消して待機しているだけで、実際は配信されていない形になります。)
以上のようにどの辺の解像度を常用するかは、快適なリモート視聴環境にしていくために結構重要ですので、システムが完成したらよく視聴しそうなロケーションでいろいろ試してみてください。
外部視聴のための手順は以上です。
4.使い勝手の向上とストリーム起動の安定化のためにSpinelとRDCTを利用する
さてTvRemoteViewer_VBを実際に使ってみると、これを使う上でSpinelが非常に有効であることに気が付きました。
といっても私の家の環境ではもともと全てのチューナーをSpinel経由で使っているので、何かトラブルがあって改めてSpinelでそれを解決した、という事ではないのですが、何度かうっかり操作をやっては「これはSpinelがなければフラストしていたな」と感じることがあり、操作性の上でもうっかりミスを防ぐためにもメリットが大きいと考えています。
またテレビ番組表が3波区別なく表示されているのに対して、BonDriverが地上波・衛星用に分かれているとBonDriverを一々チャンネルに合わせて選択しなければなりませんが、RDCTを使って「BonDriverの3波化」をおこなえばこの辺を意識したりうっかり間違える事もなくなり、使い勝手が上がります。
こういう利点がありますので、既にSpinelが動いている環境ではRDCT併用を推奨、またSpinelが動いていない環境でも、この目的でSpinelを入れるのもお勧めしたいと思います。
Spinelを使うメリット
・TvRemoteViewer_VB配信中に同じBonDriverを使って録画タスクが開始しようとすると、Spinelがなければ録画タスクが該当BonDriverを掴めないため録画失敗する。リモート環境ではそのような事態を十分把握できない。
・更に配信タスクがハングした時に管理画面で「配信を停止」してもRecTaskはBonDriverを掴みっぱなしになる事があり、Spinelで優先権を設定していなければ録画タスクは失敗する事になる。
・Spinelを経由して録画タスクに優先権が設定されていれば、先に使っていたストリームはその時点で停止するが、録画タスクに影響はない。
・既に配信で使っているBonDriverを別の配信でうっかり重複使用してもエラーにならない。1個のチューナーで何種類かの解像度での並行配信も可能である。
RDCTを使うメリット
・地上波とBS/CSのBonDriverを束ねることによって、「チャンネルごとに使うBonDriverの種別を意識する」という必要がなくなり、全てのBonDriverで全てのチャンネルを視聴でき、使い勝手が上がる。
特に視聴画面から直接別のチャンネルに行きたい時に、地上波/BSCSの区別なく移動できるのが便利。・本来独立して使える地上波と衛星のチューナーを1個にまとめるのは贅沢に思えるが、実は1個のBonDriver_RDCTで地上波と衛星は独立して操作できる。
Spinelの概要は以前の記事でまとめましたので、「何ぞや?」という方はこちらをご参照ください。以下の絵はそこからの抜粋です。
これからSpinelを導入される方はこちらを見ながら導入されると良いと思います。
リンクの記事にあるSpinel定義体はPT3やQ3PE、Bulldogなども定義した最新版になっています。
これはドングル用の解説ですが、ある程度汎用性を持たせてあります。(「その他のプログラムの導入」の前、PX-S1UDやPX-BCUDに関するものを除いたSpineの導入とBonDriverの配置だけ実施すればOKです。またSpinelさえ立ててしまえば BonDriver_Spinelの設定については後ほどご紹介する導入支援プログラム GenBonSpr で自動生成できますので、作業不要です。)
なおSpinelを導入したら、他のチューナーを使うアプリケーションでもBonDriver_Spinelを使うように設定変更しないとあまり意味がありません。(設定変更しなくても使い続けられるのですが、共有や同時使用時優先権の機能が効きませんので、Spinelを使うメリットがないです。)
TVTest、EDCBについてはBonDriverをBonDriver_Spinelに置き換えるだけで良く、TVTestの場合はch2ファイルも4)のGenBonSpr で一括して生成できます。
TVRockの場合はDTune.batを再度動かして、BonDriverをそれぞれ地上波・衛星対応のBonDriver_Spinelに書き換えれば良いです。
更にTVRockでBonDriver_RDCTを使いたい場合はチューナーの性格が変わりますので少々の追加作業が必要ですが、これについてもGenBonSpr 添付のreadmeで説明してあります。
RDCT(BonDriver_RDCT)は、異種のBonDriverを組み合わせて単一イメージで利用できるようにする一種のラッパーです。
TVTest/RecTask等のプログラムからは、以下のような構成にして使います。
<\TVTest,\RecTask,\EDCB\BonDriver 等>
├BonDriver_RDCT_TS00_コンピューター名.dll ← BonDriver_RDCT本体 コンピューター名はアクセスするSpinelのあるコンピューター名
├BonDriver_RDCT_TS00_コンピューター名.ini ← BonDriver_RDCT設定ファイル。組み合わせるBonDriver(ここでは\RDCTフォルダ下)等を指定している。
├BonDriver_RDCT_TS00_コンピューター名.ch2 ← BonDriver_RDCT用ch2ファイル。
└\RDCT 以下はBonDriver_RDCTが利用する。(TVTest等からは見えない)
├BonDriver_Spinel-TR00_コンピューター名.dll ← BonDriver_Spinel本体 地上波用
├BonDriver_Spinel-TR00_コンピューター名.dll.ini ← BonDriver_Spinel設定ファイル
├BonDriver_Spinel-SR00_コンピューター名.dll ← BonDriver_Spinel本体 BS/CS用
└BonDriver_Spinel-SR00_コンピューター名.dll.ini ← BonDriver_Spinel設定ファイル
.
RDCTは同種のチューナーを複数組み合わせて中で順番に割り振る、というような使い方もできるのですが、ここではあくまで「地上波チューナーと衛星チューナーを組み合わせて仮想的な3波チューナーにする」ツールとして使います。
また配下に置くBonDriver は必ずしもBonDriver_Spinel である必要は無いのですが、RDCTのreadmeにもある通り、もともとBonDriver_Spinel での利用を主眼にしていますし、実際に(BonDriver_Spinel を使っている限りは極めて安定しているのですが)普通のBonDriverを配下に置くとやや不可解な動作が出てきます。
ここでは1)にあるSpinel環境由来のメリットとの相乗効果を併せ、RDCTとBonDriver_Spinelの併せ技としたいと思います。
.
4)BonDriver_Spinel/RDCT自動生成プログラムを使ってTvRemoteViewer_VB(用RecTask環境)にBonDriver_RDCTを導入する。
Spinelさえ動いていればBonDriver_Spinelはコピペしながら決められたルールで作っていけば良いのですが、最も面倒で間違いも起こしやすい所だと思いますし、それとRDCTが組み合わされば尚更で、構成変更時のメンテナンス性も悪いです。
この辺がSpinelのとっつきにくい所とは前から感じていましたので、RDCTも組み合わせた自動生成プログラムを前から考えており、実際にその部分は完成していました。
ただ、それだけではなくTVTest/TVRock/EDCB/その他BonCasLinkやSpinel本体 等についても導入補助できるプログラムに仕上げようと、のんびり作成中だったのですが。
しかしここでRDCT化が特に有用ということで、TvRemoteViewer_VBの導入支援用としてBonDriver_Spinel/RDCTに関する機能だけ切り出し、更にTvRemoteViewer_VBに特化した機能も少し加えたものを公開したいと思います。
これを使えばお手持ちのチューナーを組み合わせてRDCT化したBonDriverをほぼ自動生成できますので、それをRecTaskの環境に入れるだけでTvRemoteViewer_VBから使えるようになります。
またTvRemoteViewer_VB向けの追加機能としては、生成するチャンネル情報とお使いのTVRock/EDCBの設定情報を突き合わせて、TVRock/EDCB番組表用マッチングパラメーター TvProgramTvRock_channels =・・・ / TvProgramEDCB_channels =・・・ も自動生成するようにしました。併せてご活用いただければ幸いです。
以下で利用手順をご説明いたします。
① 動作環境
(1) OS・前提ソフトウェア
Windows XP/Vista/7/8.x
Spinelが(何れかのPCに)導入され動いていること。
(2) VC++ 2010(x86)のランタイムが必要ですので、まだ導入されていない方はリンク先からダウンロード&導入してください。
(3) また言わずもがなですが、BonDriver_Spinel(RDCT)を動かす各PCで、以下のFrameworkが必要です。
.NET Framework 3.5 Service Pack 1
.NET Framework 3.5 SP1 Language Pack
.NET Framework 3.5 SP1 修正プログラム KB959209
これは TvRemoteViewer_VB用のFramework 4.xとは別物ですので、こちらも忘れず導入してください。
お使いのPCにどのバージョンのFramework が導入されているかは、Framework 4.xの時と同じバッチでチェックできます。これを使って
.NET Framework 3.5 Service Pack 1 がインストール済みです
日本語Language Pack(Service Pack 1)がインストール済みです
と出てくればOKです。
未導入の場合はXP/Vistaであれば「Windows Update-重要な更新プログラム」から導入できます。個別に入れる時は以下のリンクから順に、お使いのPCに合ったものを導入してください。
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
http://support.microsoft.com/kb/959209
またWindows7、Windows8では本来導入済ですが、有効化されているかどうかチェックし、されていない場合は有効化 をおこなってください。
②プログラムのダウンロードと解凍
このプログラムはSpinelを動かしているPC上で実行してください。ネットワーク上にある別のPCのSpinelフォルダを参照しても、正しい宛先アドレスが判らないため動作しません。
(1) 以下が導入支援プログラムの本体になります。zipファイルをダウンロードし、適切な実行フォルダに解凍してください。
ちなみにこのプログラムを別の場所にコピーする場合は、このフォルダ構造ごとコピーしてください。(初期状態でサブフォルダの中にあるファイルは、プログラムの実行に必須です。)
このプログラムはネットワークの共有フォルダからでも実行できますし、またUSBメモリからでも正しく動作します。複数のPCでSpinelが動いている時は、そうやって共有しながら順番に動かしていけば各Spinel用のBonが一括して作れますし、各種取り込みも1回で済みます。
(2) 次に準備作業として、解凍したルートフォルダにあるGenBonSpr.ini を「右クリック→編集」 で開いてください。
TVRock番組表用・マッチングリスト自動生成の指定
以下の赤枠内のところが、TVRock番組表用マッチングリスト を生成するための指定です。
番組表を使う場合、このマッチングリストがほぼ必須ですので、TVRockをお使いのかたはここに適切なパス名を記入した上で、GenBonSpr.ini ファイルを保存してください。
TVRockは他のPC上で動いていてもdtv.iniさえ見えれば問題ありません。違うPCで動いている場合は共有フォルダ上にdtv.iniが見えていればそれを参照するか、あるいはdtv.ini だけをローカルにコピーして参照しても良いです。
EDCB番組表用・マッチングリスト自動生成の指定
以下の赤枠内のところが、EDCB番組表用マッチングリスト を生成するための指定です。
EDCB番組表用にこのマッチングリストを生成するには、EDCBの直下のフォルダ\Setting にある、ChSet5.txt のパス名を上記の場所に指定してください。
これもEDCBが他のPC上で動いている場合はネットワーク越しにアクセスできるならそれを指定しても良いですし、ChSet5.txt だけをローカルにコピペして指定しても良いです。
(3) 以上の準備が済んだらGenBonSpr.exeを ダブルクリックすれば、以下の初期画面になります。
赤枠内をそれぞれ指定してください。
リンクをクリックすればブラウザで、各プログラムをダウンロードするページが表示されますので、適切にダウンロードし、ダウンロードが終わったら(圧縮ファイルのままで構いませんので)それを指定してください。
選択ボタンを押せばファイル/フォルダの選択ダイアログが表示されますし、ファイル/フォルダを直接指定欄にドラッグ&ドロップしても構いません。
指定が終わったら[次へ]を押してください。内容に問題がなければ次の画面に移ります
(4) Spinel環境を解析した結果のBonDriver一覧が表示されます。
ここでの作業は地上波用と衛星用のBonDriverを1個づつ指定しながら「コンボ化」ボタンを押して、RDCT化する組み合わせを決めていくことです。
「コンボ化」が指定されたものは、その組み合わせでBonDriver_RDCTが生成されます
ネーミングルールは図にある通りですので、順番を変えたければ対象を選択した上で↑↓ボタンを押してください。
「コンボ化」が指定されなかったものは、そのままBonDriver_Spinelが生成されます。
指定が終わったら「次へ」を押してください。
(5) この画面ではch2ファイル生成に使うプリセットファイル(BS/CS)と、地上波ch2ファイルを参照する既存のTVTestフォルダを指定します。
プリセットファイルは特にこだわりが無ければ、「ダウンロードのリンク」からダウンロードしたものを指定してください。
これは最新の編成になっている筈ですし(TvRemoteViewer_VBの動作に悪影響のある)難視聴用チャンネルも除いてあります。
尚、BSのチャンネルマップは機種毎や同じ機種でも(例えばPT-S.ChSet.txt の定義次第で)違ってくるのですが、ch2ファイルの生成時にできるだけその辺の特性に対応させています。(従ってch2ファイルの内容は個別に違うことがあります。)
地上波については、既にお使いのTVTestがあればそちらを指定してください。あるいは「テンポラリなTVTestを使ってチャンネルスキャンを実施する」を指定すればここでスキャンすることもできます。その場合次の画面になります。
ここではスキャン用TVTestのあるフォルダ(または新規にダウンロードした場合はそのzipファイル)を指定して、地上波チャンネルスキャン用最小構成のTVtestを起動します。
「スキャンの開始」ボタンを押せばブラウザでスキャン手順が表示されますので、その手順に従って、同時に立ちあがったTVtestの初期画面を操作してください。手順通り進めれば地上波チャンネルのスキャンが動き出しますので、終了まで数分待ってください。
なお放送していない局はスキャンできませんので、この作業をやるときはできるだけ(深夜のような放送休止のある時間帯を避けて)どの局も放送している時間帯にしてください。漏れがあると後でやり直しが発生します。
スキャンが終わったら「OK」を押してその後TVTestを終了させれば、自動的にch2ファイルが取り込まれます。
全て指定が終わったら「生成」を押してください。BonDriver_Spinel/RDCTと対応するch2ファイルの生成が始まり、メッセージ欄に進捗が表示されます。
(6)生成完了したら以下の画面になります。
ここにある通り、生成したBonDriver_Spinel/RDCTは以下の場所に保管されます。
\GenBonSpr実行フォルダ\resources\コンピューター名
\BonSpinel
|→ Watch
| 視聴用に使うセットです。幾つでも共有でき、家庭内LANの何処からでも視聴できます。
|→ Rec
| TVRockやEDCBなど録画用です。チャンネル優先権を持ちますので安全な録画が出来ますが、
| ここの同じBonDriverを2箇所以上で使わないようにしてください。(片方の利用が弾かれます。)
|
|→ Watch_Local
| 上記Watchと同じですが、Spinelと同じコンピューター(OS)上だけで使えます。
| TCP/IPの代わりにnamed pipeを使いますので負荷が軽いです。
|→ Rec_Local
上記Recと同じですが、Spinelと同じコンピューター(OS)上だけで使えます。負荷が軽いですので
Spinelと同じコンピューター(OS)でTVRockやEDCBを使う場合はこちらを使ってください。
\BonSpinel64
上記セットの64bit版です。通常の32bit版TVTest/RecTaskでは使えません。敢えて使う必要はありませんが、
64bit版TVTestや64bit版EDCBを導入する時はこちらを使ってください。
.
ここまで終ったら、TvRemoteViewer_VB用の\RecTaskフォルダに、古いBonDriver関連ファイルを削除した上で、上のWatchフォルダ (但しSpinelと同じPC上であればWatch_Localフォルダでも可) の中身を丸ごとコピーしてください。
.
また、\GenBonSpr実行フォルダ\resources\ 下には、作成を指定してあれば以下のファイルが作られているはずです。
MatchingList.txt (TVRock番組表用マッチングパラメーター)
MatchingListEDCB.txt (EDCB番組表用マッチングパラメーター)
前者は「TVRock番組表用マッチングパラメーター」です。
これの中身を以下のように、TvRemoteViewer_VB.ini の該当箇所に上書きコピーしてしてください。
後者は「EDCB番組表用マッチングパラメーター」です。
これも作成されたMatchingListEDCB.txt の中身をこのように、TvRemoteViewer_VB.ini に上書きコピーしてください。
なお、作成を指定したのにMatchingList が作られていない時はGenBonSpr.ini の設定に何か誤りがあるか、指定したdtv.ini/ChSet5.txt ファイルがうまく読み込めてないのではないかと思います。
また、TVRockの場合まれにこのマッチングパラメーターに地上波の放送局が全く出てこないことがあるかもしれません。
これはTVRockの場合、チャンネル定義で地上波のサービスIDをゼロにして動かしていることがあるためで、かなり古い定義体を流用しているケースです。サービスIDでマッチングをおこなっている関係上それだとマッチング出来ませんので、その場合は地上波分のみ手動で書き加えてください。
以上でTvRemoteViewer_VB を起動すれば、RDCTを使った環境になります。
.
終わりに
この記事はほぼTvRemoteViewer_VBあってのものですが、端末側機能(TvRemoteFiles)と、4章のGenBonSprは私謹製ですので、使い勝手など気が付いたことがあれば教えてください。。(^^ゞ
TvRemoteFilesの機能は私自身まだあれこれ構想中だったり、こうしたいと思っても体力がついていかなかったりで思うようになりませんが、ゆくゆくは2ch実況なども組み込みたいですね。
といっても結構大胆なロジック追加と端末負荷の軽減が難しいところですが、2ch実況の特長は野球/サッカーの実況板の存在だと思うので、その辺のシーズンまでには何とか・・と思っています。あてになりませんが気長にお待ちください。
尚、RDCTは目立たないソフトですがこういう使い方ではなかなか便利です。これは単なるWrapperですので、どう使かは各ソフトウェアごとに決められます。(RDCT自体は利用する側ごとに仮想化しているだけで実際に動いているのはBonDriver_Spineそのものなので、排他や共有もその単位で行なわれます。あるチューナーを他ではBonDriver_Spinelから、リモート視聴ではBonDriver_RDCT経由でアクセスしても、実際の排他制御等は最小限の単位で正しくおこなわれます。)
元になるSpinelさえ同じであれば、GenBonSprによるBonDriverの生成は何度でもでき、RDCTを使ったり使わなかったり、また組み合わせを利用プログラム毎に自由に変えられます。
Spinelの導入についてもTVRock/EDCBからは単にBonDriverを対応するBonDriver_Spinelに置き換えるだけで今まで通り使えます。ただチューナー数に余裕があればそれらもBonDriver_RDCTを使うと、それなりに便利です。
(例えばTVRockではRockバーの使い勝手が上がるとか、番組表取得タスクを最大8並列で3波一挙にできるとか。)
TVRockでのRDCTの使い方はここでは本題ではないので省略しますが、GenBonSpr のreadmeに簡単に解説してありますので、ご興味のある方は参考にしてみてください。
・2015/3/11 TvRemoteFiles ver1.05
1) 視聴画面のサイドパネルに番組一覧を表示できるようにし、直接チャンネル切替えも可能にしました。→説明
2) 実況勢い一覧からも直接チャンネル切替えできるようにしました。→説明
3) 低ビットレート用プロファイルを追加しました。(100kbps前後で視聴可能な256x144L、および音声のみ64kbpsで配信する0x0モード)→説明
4) URLボタンに「表示しない」モードを追加し、デフォルト設定を「表示しない」に変更しました。
・2015/3/1 TvRemoteFiles ver1.04
1) 定義ファイルをffmpegの最新バージョンで動作確認されたhlsセグメントオプション対応に差替えました。(一部Android端末での再生も正常化)
2) 番組表ポータルの機能を追加。また背景色、表示順のカスタマイズ機能を付けました。
3) 一部画面遷移でcookieに保存される筈の設定項目がきちんと保存されないバグを修正しました。
・2015/2/24 TvRemoteFiles ver1.03
1) 新しい番組表を自動更新タイプにしました。表示したままにしておけば最新の番組情報、および進捗状況に従った色に更新されていきます。
2) テレビ視聴から「このストリームを終了する」を選んだ時にストリームが終了しないバグを修正しました。
・2015/2/23 TvRemoteFiles ver1.02 と関連記事を更新
1) 新しい番組表と付帯機能を付けました。
2)視聴画面からストリームを落とす際に無駄にポップアップが出たり、最新情報の保管に失敗する事があったバグを修正しました。
3)その他ファイル再生とプレイリスト関連の細かいバグ修正の蓄積分を反映しました。
・2015/2/18 TvRemoteFiles ver1.01 プレイリスト再生時にシークボタンが効かなくなるバグを修正
・2015/2/17 記事の更新。最新版機能にキャッチアップ
-TvRemoteFiles ver1.00 プレイリスト機能の追加、バージョン番号をサーバに合わせ1.00に改訂
・2015/1/13 TvRemoteFiles v0.64U にてファイル再生関連の機能を中心に大幅改修
1)ファイル再生で再生位置をサーバに記録するようにし、「外でスマホで視聴→続きを家のPCで視聴」というように、
ストリームが生きている限り異なる端末やブラウザでも視聴を引き継げるようにした。
2)ファイル再生画面に「再読込操作」ボタンを追加。(「再読み込み」ボタンを置き換え。) 再生途中で
解像度/音声チャンネル切替えや再生位置の調整ができるようにした。
この機能を使えば、例えばスマホで見ていたファイルを家のPCで高解像度に切替えて続きを見る、ということができる。
3)ファイル再生画面にシークボタンを付け、またエンコード未了の状態でもタイムシークできるようにした。
(シークボタンの数やシーク秒数はseekbutton.jsonファイルで定義してあり、カスタマイズ可能。)
4)以上のような操作が複数の端末で競合しないよう、ファイル再生ストリームに「所有権」を設定した。
ストリームの再起動をともなう操作や再生位置の記録は所有権のある画面のみが権利を持つ。
所有権は最初、ファイル再生をスタートした画面が保有し、視聴を途中で終了した場合、他の画面に引き継がれる。
5)この引継ぎが速やかにおこなわれるよう、所有権を持った画面が他の画面や他のサイトに切り替わる際には
即所有権を返上するようにした。但し視聴画面からいきなりブラウザを閉じたり、端末offした場合は
返上しないままになるので、視聴終了する際はトップメニュー等に移動してから閉じるのがお勧め。
6)所有者が所有権を持ったまま居なくなる場合の対策として、各画面に所有権の監視機能を持たせ、
所有者のハートビートがない場合は2分程度で所有権を剥奪し、他が所有できるようにした。
どこかで何らかのTVRemoteViewer_VB画面が立ち上がっていれば監視機能は常にONになる。
(つまり例えばサーバのブラウザでTVRemoteViewer_VBのホーム画面を立ち上げておけば、監視機能が常に働くことになる。)
7)全ての環境で働くわけではないが、TVやファイルの視聴時に視聴画面を開いた後
タッチやクリックが必要になるケースをできるだけ回避して、自動開始する機能を付けた。
8)PCでファイル再生する際、ファイルの終わりに達してもFlashをハングさせず、最初に巻き戻してリピート再生するようにした。
9)背景画像をプルダウンで選択できるようにした。\HTMLフォルダに置いてある画像ファイルがリストアップされ、プルダウンで選択可能。
・2014/12/7 記事の更新。最新版機能にキャッチアップ
-TvRemoteFiles v0.63U ファイルリスト取得に時間がかかる端末でもキーワードを指定すれば、古いファイルのリストを素早く取得できるようにした。
・2014/12/4 TvRemoteFiles v0.62U
ストリーム状態のリアルタイムな反映とAndroid向けURLリンク機能
-番組表のストリーム番号およびBonDriverの選択で、現在使用されているものには* を付け、デフォルトではそれ以外が選ばれるようにした。
*が付いているものも選択可能。(デフォルトで選ばれていないだけ。)
BonDriverは複数回使えるものがあるので、2回使われているものは** のように表示。但しデフォルトの選択は使われていないものを優先
-ファイル選択でも既に使われているストリームに* を付け、デフォルトではそれ以外が選ばれるようにした。
-ストリーム状況で単に「ファイル再生」と表示されるものを、再生中のファイルが判るようにした。
-視聴画面、URL表示ボタンを、ブラウザでURLを開く動作、AnchorでURLをリンクとして開く動作、に換える選択ができるようにした。(トップ画面管理タブ)
・2014/12/2 TvRemoteFiles v0.61U
-メイン画面(index.html)のロードが特にスマホ・タブレットで遅い問題に対応。(JQueryUIを外した。)
-視聴画面にファイル選択画面に遷移するための「ファイル」ボタンを追加
-ファイル選択画面に番組表に呼出すボタンと、現在Activeなストリーム視聴に遷移するボタンを追加。
-トップ画面の最上部に表示される現在Avtiveなストリームのボタンを定期的に更新するようにした。
-実況の文字透過度を調整できるようにした。(管理画面)
・2014/11/30 TvRemoteFiles v0.60U
-ファイル選択画面をファイルリスト50件で立ち上げ、残りのリストを背景で取得するようにした。
大量のファイルがあっても直ぐにファイル再生機能を使えるようにするのが目的。
-ソートの際に現在選択中のファイルを見失わないよう、常に表示リストの中央に来るようにした。
・2014/11/27 TvRemoteFiles v0.59U
-ファイル選択画面 サーチエンジン、ソートエンジンの差し替え、高速化。画面スタイルの改造。
-トップメニュー、ファイル選択画面、視聴画面の背景機能の追加
・2014/11/24 TvRemoteFiles v0.58U \html下のファイルの修正。\jslibフォルダ下の修正
-SelectVideo.html を修正。TvRemoteViewer_VBv0.87以降のファイル開始シーク機能を反映した。
-SelectVideo.html のファイル選択画面を改造。iOSやAndroidのポップアップや独自のSelectメニューの操作性が悪いので、リストで一覧しながらファイル選択できるようにした。
-視聴画面でニコニコ実況対象外のチャンネルやファイル再生時でも、勢いカウンターを表示できるようにした。
-テレビ視聴時の最初の番組で、番組内容表示欄がなかなか次の番組に切り替わらないバグを修正した。
・2014/11/22 TvRemoteFiles v0.57U \html下のファイルの修正とSleeping.htmlの追加。\jslibフォルダ下の修正
-視聴画面にお休みタイマを追加。タイマセットして時間が来ればストリームを終了。(但しファイル再生ではストリーム維持)。黒地のスリープ用画面に移行。
javascript単体では端末のスクリーンOFFやSleepのの制御はできないが、動画再生が終わればスマホ・タブレットは自動的に画面OFF状態に移行する。
Windowsでも電源管理でディスプレイOFFやスリープの時間が設定されていれば、動画再生を止めた時点でそれらのタイマが有効になるので、そちらに任せる形。
-海外での視聴を想定して、トップメニューの管理タブにタイムゾーンの設定を追加した。(番組内容更新や実況サーバの変更を日本時間で正しく実行するため。)
-地上波・地方局の番組情報取り込みのロジックを改善し、バグ取り。
・2014/11/20 TvRemoteFiles v0.56U \html下のファイルの修正。系列局との紐付けのためch_sid.txtを追加。\jslibフォルダ下の修正
-番組情報ウインドウの新設。実況勢いカウンターで局や勢いをクリック(タップ)したり左側で局を選んだ際、10秒間その局の番組情報を赤画面で表示するようにした。
-視聴画面にストリーム終了のボタンを新設。クイックにストリームを停止できるようにした。
-iPhone等でスライドバーのタッチ操作の際、コピー対象として選択されて操作しにくくなる点を解消。
-ズームや画面方向の変更の際に出来るだけ操作性や画面レイアウトのバランスを崩さないようにした。
-その他気が付いたバグをいくつか解消。
・2014/11/13 TvRemoteFiles v0.55U \html下のファイルの修正、追加。またprojekktor関連以外の.jsファイル、cssファイルを\jslibフォルダ下に整理した。
-実況勢いカウンタにBS分を追加。(但し勢い0でないもののみ表示。)
-単独でクロスドメインアクセスが可能になったことを活用して、4時またぎで実況サーバを自動更新(getflv)するようにした。
-jsコードの整理。ViewTVから分離できるものはTvRemoteViewer_VB.jsにまとめるようにした。
記事にニコニコ実況表示関連を追加。
・2014/11/11 TvRemoteFiles v0.54U \html下のファイルの修正、追加。またprojekktor関連以外の.jsファイル、cssファイルを\jslibフォルダ下に整理した。
-実況勢いカウンタの追加。
-視聴画面(ViewTV)をデザイン。またトップページのデザインを小改修。
-その他細かいバグを修正。
・2014/11/09 TvRemoteFiles v0.53U \html下のファイルの修正、追加。また\html\projekktor下にJQuery関連のファイルを追加。主にニコニコ実況関連機能の改善。
-コメント遅延時間の自動計算。(主に新規ストリーム開始の時に有効。既存のストリームを開く時には不正確)
-プレーヤーを停止している間コメントも停止するようにした。(但し最大60秒まで)
-実況エリアを画面のズーミングに連動するようにした。・実況エリアの制限を動画エリアの上下%で指定できるようにした。(トップ管理画面)
-その他細かい使い勝手の向上。
・2014/11/06 TvRemoteFiles v0.52U \html下のファイルの大幅修正、追加。(\html\projekktor下のファイルに変更なし。)
UTF-8対応。TvRemoteViewer_VB v0.79以降でなければ使えませんので、それ以前のバージョンをお使いの方はv0.51のセットを使ってください。
ニコニコ実況表示機能の追加。コメント遅延時間バーの設置。
・2014/10/29 TvRemoteFiles v0.51 → 「TvRemoteFiles051.zip」をダウンロード
TvRemoteViewer_VB v0.78 かそれ以前を使う場合には、このVer0.51を使ってください。
当カストマイズセット Ver0.51はShift-JIS漢字コード対応の最終版です。現在TvRemoteViewer_VBの最新版(v0.79以降)は、UTF-8漢字コードが基本になりましたので、v0.79以降で当カストマイズセットを使う際は、TvRemoteViewer_VB.iniファイルのパラメーターでHTML_IN_CHARACTER_CODE = "Shift_JIS"
HTML_OUT_CHARACTER_CODE = "Shift_JIS"以上を指定しください。
v0.51のバグ対応:ブラウザのサイズ変更やiPad/iPhoneの縦横変更時に動画エリアが一瞬消えるバグ、ファイル再生の再開時にPCで全画面表示にすると動画サイズがおかしくなるバグ の2点を修正。
・2014/10/28 解像度毎のズーム率、ファイル再生時の再生位置をcookieを使ってできるだけ覚えておくロジックを追加。 v0.75に対応。
・2014/10/26 視聴画面(ViewTVx.html)に、 ズームバー機能とストリームURL取得ボタンを追加。
HLS_option.txtの高解像度配信(960x540、1280x720)のオプションに、yadifによるインターレース解除をおこなう指定を追加。
・2014/10/24 VPN、DDNSの設定手順を改訂。
・2014/10/22 Ver 0.74キャッチアップ、視聴プレーヤーをmediaelementからprojekktorに変更。
・2014/10/6 初版
« 電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用) | トップページ
「デジタルTV、TS抜きチューナー」カテゴリの記事
- iPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作る(2014.10.06)
- PX-W3U3の設定手順メモ (Spinelなしのクイックガイド追記)(2011.10.25)
- PX-Q3PE、およびPX-W3PEの活用メモ (Spinelなしですぐに使いたい人向け)(2013.06.17)
- PLEX PX-W3U3の設定について (PX-W3U2およびPX-S3U2用の手順も併記)(2011.05.25)
- TS抜きにH.265エンコード環境/再生環境を追加する。(2014.05.01)
コメント
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/570024/60430754
この記事へのトラックバック一覧です: iPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作る:
« 電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用) | トップページ
そうですか。そういう話だとこれ以上何も申せませんが、おかしな現象は何かがおかしいから起きるわけで、その辺の動作はあまりに基本すぎて今更バグ等無いような部分ですから、必ず間違いがあると思って見直したほうが良いと思います。
例えばSpinelのモニタで動きをちゃんと確認していますか?
http://vladi.cocolog-nifty.com/photos/uncategorized/2011/10/10/spinel12.jpg
排他がかかっている時は「統計情報」に「排他」と表示されますので、それが録画セッションではちゃんと表示されて配信セッションでは表示されないのが本来の動きですが、そうでなければ(理由は知りようがありませんが)間違ったBonDriverを使っていることになります。ご参考まで
投稿: Vladi | 2015年3月 8日 (日) 10時40分
Vladi さん、アドバイスありがとうございます。独立したRecTaskフォルダを作り、そこにGenBonSprで作ったコンボのBonDriverを入れ、「TvRemoteViewer_VBの設定画面」のUDPアプリにそのフォルダのRecTaskを指定しました。
結果として録画中でも、そのドライバを使って配信されますねぇ...(たとえば地上波t00を録画に使っているのにts00が選択されるので、追随してチャンネルが変わってしまう、手動でts01を指定すれば問題はない)録画さえしてなければ完璧に動作してるんですが...
せっかく初心者でもわかるように詳しく書いていただいているので、何度も読み返してみましたが、お手上げです。せっかくお返事いただいたのに申し訳ありませんでした。
投稿: bossakumamode | 2015年3月 8日 (日) 02時36分
akumamodeさん、録画に影響を及ぼしてしまうのはBonDriver_Spinelの排他がストリーム配信時にもかかってしまっているとしか考えられませんが、書いていただいた内容を見る限り、RecTask自体は(TVRockで使っているのと同じ)TvTestのフォルダに置いて、そこを「TvRemoteViewer_VBの設定画面でUDPアプリ」として指定されているということでしょうか?
その設定だとRecTask自体は同じフォルダのBonDriverを使いに行くため、すなわちTvRock用の排他制御付きのBonDriver_Spinelを使ってしまっているのではないかと思います。
たとえTvRemoteViewer_VBのBon Driver Pathで別のフォルダのBonDriver_Spinelを指定しても、RecTaskはそちらは使いません。(あくまでTvRemoteViewer_VBがch2ファイルを参照するだけです。)
その辺きちんと動かすためには、RecTaskのフォルダは完全にTvTestとは分けてそちらに視聴用のBonDriver_Spinelを置き、「TvRemoteViewer_VBの設定画面のUDPアプリ」もそこを指すようにすれば良いです。(その場合TvRemoteViewer_VBのBon Driver Pathは指定不要です。)
投稿: Vladi | 2015年3月 6日 (金) 03時04分
以前にPX-W3U3の記事にて質問させていただきました。その節はありがとうございました。
移行ノートラブルで運用中です。
今回、またロケフリ記事を参考にさせていただきストリーム配信についてはうまくいくように
なりました。
ところが、排他処理というのでしょうか、それがうまくいってないようで、TVROCK使用の録
画中に配信すると録画が失敗してしまう状況です。手順通りのBonDriver_RDCTを使用、T
VTESTも以前の手順通りBonDriver_Spine使用です。
そこで教えていただきたいのですが
TvRemoteViewer_VBの設定画面で
UDPアプリはTVTESTのフォルダ、
Bon Driver PathはREC TASKフォルダといった感じで良いのでしょうか?
お忙しい中申し訳ありません。他に必要な情報があればご教示くだされば幸いです。
投稿: bossakumamode | 2015年3月 4日 (水) 23時23分
mel さん、なるほど、自分の環境ではオリジナルのガイドの通り、管理者モード設定はWin7では不要でWin8では必要だったので、あまり深く考えていませんでしたが、そもそも何故この設定が必要なのかを考えると
http://subtech.g.hatena.ne.jp/mayuki/20121225/1356387770
Win7やVistaでも本来設定必要ですね。Win8ではこの辺が厳しくなったので「必ず必要」になっただけのようです。
ガイド修正いたしました。情報有難うございます。
投稿: Vladi | 2014年11月16日 (日) 16時40分
連続投稿すみません。
先程起動しないと書いたものですが、
netsh http add urlacl url=http://+:40003/ user=Everyoneを実行した所、無事起動しました!!
どうもWindows7でもこの動作が必要なようです。お手数おかけしました。
投稿: mel | 2014年11月16日 (日) 10時42分
大変わかり易い記事をありがとうございます。
このサイトに質問すべきではないのかもしれませんが、TVRemoteViewer_VBが起動できません。
起動した瞬間、動作を停止しましたと表示されます。
イベントビューワには
Application: TvRemoteViewer_vb.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Net.HttpListenerException
Stack:
at System.Net.HttpListener.Start()
at TvRemoteViewer.WebRemocon.Web_Start()
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart()
とでています。
この解決法をご存じないでしょうか。.NetFramework4.5が入ったWindows7 64bitで起動してみましたが、このようになってしまいました。
投稿: mel | 2014年11月16日 (日) 10時38分