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化して持ち運ぶ従来型の動画視聴のほうが有利な面もありますし、移動中にWiFiではなく LTE/3G回線を多用していると月毎の7GB制限も気にしなければなりません。この辺の特性は(NexTV-Fの名前を借りて企画した企業が期待するような)iTunes同期に替りうるものではなく使い分けるとより便利で、逆に自宅での視聴でもタブレットがあれば、Spinel/TvTestで観るより気軽な面もあります。
なおスマホでのご利用にあたっては(当然の事ながら)パケット定額など、データ通信量が増えても料金の変わらない契約形態である事をご確認ください。知らずに過大な通信料金になったとしても、当方では責任は負えません。
最新版の視聴画面はこのようになっています。
どのプラットホームでもブラウザから同じ手順で使えますし、全画面視聴もOKです。ブラウザ画面ならHTML5とAjaxの技術を使って、このようにニコニコ実況や2ch実況を流すことも出来るようになっています。
テレビ画面の右下には図のような番組情報エリアが表示されます。
ここには現在視聴中の番組/ファイルの情報のほか、裏番組のコメント勢いが気になった時はカウンター上でクリック/タップすれば
現在のそのチャンネルの番組情報が表示されますし、下のようにチャンネル切り替え前に番組内容を確認することもできます。
またファイル再生については個別のファイル再生のほかにプレイリスト機能もあり
家のPCや通勤中のスマホで再生を引き継ぎながら長いシリーズ物等を鑑賞していくことも可能になっています。
またこちらはスマホのトップ画面の例ですが
こんな感じで、プラットホームに合わせて自分で使いやすいようにカスタマイズできる点も特徴になります。
当記事ではこのようなソフトの使い方を以下の内容・順番でご説明いたします。
1.TvRemoteViewer_VBの導入
1) 準備
2)各ソフトウェアのダウンロードと配置
3)カスタマイズ用ファイルの追加(上書き)
4)一旦起動して、初期パラメータをセットする。
5) 番組表の正常表示のための設定2.家庭内LAN上での使い方
1)トップメニュー
2) 番組表からストリームを起動
3)Rockバー型番組表について
4)ニコニコ実況表示機能
5)2ch実況表示機能
6)ファイル再生のストリーミング
7)プレイリスト機能
8)ファイル/プレイリストのストリーミングも実況付きにする
9) 0.5倍速再生~2倍速再生
10)チャプター機能
11)二ヶ国語放送(または録画)で日本語/英語音声を選択する
12)タイムゾーンの変更
13)視聴画面をポップアップ型の別ウインドウにする
14)お休みタイマ
15)サーバー低負荷モード
16)サーバーイベントログ表示機能
17)手動配信
18)その他の管理・設定機能
19)スカパープレミアムの配信について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&解凍し、中のファイルを全て現在のフォルダに上書き。
(但し設置用ファイル\HTML/ffmpeg 関連はここのblogで特別な断りがない限り、バージョンアップ時の上書きコピーは不要です。)
・新しいTvRemoteViewer_VB.exeファイルを管理者モードに再設定
・バックアップした form_status.txt を上書きで戻す。
・バックアップした TvRemoteViewer_VB.ini を右クリック→編集で開いて、新しいTvRemoteViewer_VB.iniファイルも同じく開いて並べ、新しいほうを上から順に見ながら、
;【1.11】 XXXXX
のように;【バージョン番号】 のコメントで始まる設定項目の中で更新前のバージョンより新しいものを探し、コメントごと元の TvRemoteViewer_VB.ini の同じ辺りにコピーする。
・自分が使用する上で必要なパラメーターの追加/変更であれば、 当解説記事の該当箇所を見ながら適切に設定する。
・更新した元のTvRemoteViewer_VB.iniを、\TvRemoteViewer_VB フォルダに上書きコピーする。
・当ブログが提供しているTvRemoteFilesについては、リンクの手順で改めてダウンロードの上、指定箇所に単純に上書きコピー。(ご自身で編集したものがなければ、日付がお使いのものより新しいものだけコピーしてもOKです。)
以上で更新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ファイアーウォールでポート40003へのアクセスを許可する。
TvRemoteViewer_VB のアクセスには、家庭LAN内であってもリモートであってもポート40003を使いますので、TvRemoteViewer_VBを動かすPC上で該当ポートを開けておく必要があります。ここではデフォルトで動いているWindowsファイアーウォールの設定手順を解説しますが、もし他のファイアーウォールソフトを導入している場合には、それぞれの手順に従ってポート40003のアクセスを許可しておいてください。
コントロールパネルでWindowsファイアーウォールをクリックします。
「詳細設定」をクリックし、Windowsファイアーウォールの設定画面で、左の「受信の規則」をクリックし、次に右の「新しい規則」をクリックして、出てくるウイザード画面で「ポート」を選択して「次へ」を押します。
「TCP」を選択し「特定のローカルポート」を選択して入力欄に「40003」と入れ、「次へ」を押します。次の画面で「接続を許可する」、その次の画面でドメイン・プライベート・パブリックを全てチェックします。
その次の画面ではルールの名前を聞いてきますので、TVRemoteなど適切な名前を付けて、「完了」を押します。これでファイアーウォールの設定完了です。
確認のため、Windowsファイアーウォールの設定画面で(左で「受信の規則」が選択されているのを確認の上で)上で付けた名前を探し、ダブルクリックしてください。
設定内容が出てきますので、特に「プロトコルおよびポート」のタブで「TCP」、「特定のポート」、「40003」が選ばれていることを確認してください。(もし間違っているようであれば、ここで修正するか、右クリック→削除 で一旦該当ルールを削除して、もう1度定義し直してみてください。ここを間違うと視聴は確実に失敗しますので慎重に。。)
③ 対応ブラウザの準備
PCからTvRemoteViewer_VBにアクセスする場合、IEでは正常にアクセスができません(正確には番組表等のフォームが崩れるのと、肝心の配信動画が正常に表示できない) ので、Firefox/Chrome/Opera のいずれかを使います。
もしいずれも未導入のかたは、お好みのものをリンク先から導入しておいてください。(視聴する側のPCにも。)
尚いつもの事ですが、導入時に何も考えずに次へ、はい、などと答えていくとデフォルト(標準)のブラウザが変更されますので、変える気がなければ「デフォルトのブラウザにする」のような該当箇所でチェックを外す/いいえと答えるなど、しっかり意思表示してください。
(Operaは導入時に問答無用で自分をデフォルトのブラウザにしてしまいますので、後からIEなどデフォルトにしたいものを立ち上げ直して、出てくる確認メッセージに答えてデフォルトブラウザを戻してください。)
尚スマホ側はSafari、Chromeなど標準のブラウザでOKですし、Lunascapeでも同じように使えます。なおiOSの場合は個人的には後述の理由で、ilunascapeがお勧めになります。
④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:40003/
のように、コンピューター名だけ指定すれば、アドレスが固定されていなくても常にアクセス可能なのですが、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.34以降」の最新版をクリックしてダウンロードし、適切なフォルダに解凍した上で、中身を実行用フォルダ(以後、\TvRemoteViewer_VBフォルダとします)にコピーしてください。
なお TvRemoteViewer_VB v1.30 以降では、\TvRemoteViewer_VB フォルダのセットの中に CtrlCmdCLI.dll というファイルが追加になりました。これもコピー、また以前のバージョンから移行する際は必ず追加してください。このdllがないと1.30以降ではうまく起動しません。
さて、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 フォルダに、サブフォルダも含めて全て上書きコピーしてください。
これは端末側で動くJavaScriptプロフラム+HTMLで、サーバーと連携して豊富な機能を提供します。
② 同じく中にある\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オプション」に長い文字列が記入されます。(ここの編集は必要ありませんので、弄らないでください。)
これは配信のデフォルト解像度で、配信起動する時に解像度を指定しなければ自動的にこの解像度になります。
(注意) ここをきちんと設定しておかないと、解像度を指定しないデフォルト解像度(---)での配信スタートが必ず失敗します。あまり重要でない指定に見えますがここをちゃんと指定しておくのは重要で、「きちんと設定したはずなのに何故かうまく配信できない!」と焦ることになります。リモート視聴での回線の太さも考慮して、適切なものを必ず選んでおいてください。
またそれとは別にプログラム側の問題として、バージョンアップの際にこのHLSオプションのソース(HLS_option.txt)が変更になってもそのままでは反映されないという注意点があります。
それに対応するために、バージョンアップでHLS_option.txtに変更があった時(変更履歴に明記されています)には、このデフォルト解像度も選び直して(例えば一旦別の解像度に変えて再度元に戻す、のようなやり方で)この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プレミアムで特殊な音声チャンネル構成になる場合に対する設定です。とりあえず余り悩まずこれで。
Allow_BonDriver4Streams = 1
1つのBonDriverを複数ストリームで利用することを許可するオプションです。デフォルトでは許可しない = 0 になっていますが、PT1/2/3、PX-W3U3など、もともと1つのBonDriverで複数チューナーが使えるタイプも多いですし、Spinel/RDCTを使う場合、意図的に1つのBonDriverを使い回すことがありますので、ここはこの設定を推奨します。
.
もしRecTaskを同じPC上でTVRock録画などの用途でも使っている場合、以下のパラメーターもセットしてください。
Stop_RecTask_at_StartEnd = 0
これはTvRemoteViewer_VBの都合でRecTaskCentreを終わらせないための指定です。
また同じような話として、もしffmpegを別の用途、例えばエンコードやビデオコンバータで利用している場合、デフォルトではTvRemoteViewer_VBがいくつかのタイミングでffmpegのプロセスを全て終了させてしまうため、巻き添えで落ちてしまいます。それを避けたい場合、以下のパラメータをセットしてください。
Stop_ffmpeg_at_StartEnd = 0
更に追加の同じような話で、(この記事の手順では今のところ利用していないのですが)もしvlcをストリームエンコーダとして利用する場合、TvRemoteViewer_VBの都合で巻き添えになることがないよう、以下のパラメータもセットしてください。
Stop_vlc_at_StartEnd = 0
① 共通設定
TvRemoteViewer_VBは番組表から選局したり、また視聴画面で視聴中の番組や他局の番組情報を表示する機能を持っていて、基本的にTVRock、EDCB、ptTimer、Tvmaidのいずれか、またはその組み合わせから情報を取得します。
ただ地デジの番組情報だけはネットからも取得でき、それらのバックアップとして使えますので、まずはその設定をご説明します。
TvProgramD = xx ;地デジ番組表で表示する地域の番号
各地域の番組編成に合わせるための指定値は TvRemoteViewer_VB.ini の中にコメントで列記してありますので、ご参照ください。
② 難視聴地域用地上波チャンネルの関連情報は削除しておく。
これはTvRemoteViewer_VB.iniの設定ではありませんが、念のためにこのタイミングで各BonDriverのch2ファイル、またTVRock、EDCB等の設定をチェックして、もし残っているようなら削除しておくことを強くお勧めします。
削除する理由は
・サービスIDが他のCSのチャンネルと重複するため、誤動作の原因になる。
・そもそも2015/3月末で終了したサービスで、定義を残しても意味がない。
というもので、うっかり残したままだと結構悪さをしますので、ご注意ください。削除手順は以下の通りです。
i) BonDriverXXXX.ch2 から削除する。
RecTaskが使用するBS/CSチューナーのそれぞれのch2ファイルから、難視聴用チャンネルの定義が残っていたら全て削除してください。
ii) TVRockから削除する。
リンク先のチャンネルを削除する方法 と同じ手順で、BSの難視聴用チャンネルを全て削除してください。
iii) EDCBはチャンネル削除というよりEPG取得対象外にしてください。また現段階でBSをチャンネルスキャンし直せば、難視聴チャンネルは除外されるはずです。
iv) ptTimerは現段階でBSをチャンネルスキャンし直せば難視聴チャンネルは除外されるはずです。
v) Tvmaidは利用するTVTestのそれぞれのch2ファイルから同じ手順で削除し、終わったらチューナを更新してください。
③ TVRock番組表関連の設定
TVRock番組表を利用する場合は、TvRemoteViewer_VB.ini に以下を設定してください。
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を使わない場合でもこの指定にしてください。
ちなみに注意点として、実際にこのiphone用番組表を別途利用されている方は、そこで何か操作をしたら必ず最後に「チューナー選択なし」「3番組(以上の)予約表示」の状態に戻しておいてください。
というのは、前者でチューナーがどれか選択された状態だと、地上波/BSCSのどちらかの番組しか表示されない状態になったり、後者で「予約表示・無し」の状態にしていると次の番組が表示されない状態になりますが、TvRemoteViewer_VB側はその状態のままの番組情報を読んでしまうので、一部の表示が欠けることになります。
iphone用番組表は同じURIでアクセスしても前回の操作状態が引き継がれる造りになっていてTvRemoteViewer_VBからはその辺をうまくコントロールできませんので、実際にiphone用番組表をお使いの方はその点をご留意いただければと思います。
④ EDCB番組表関連の設定
EDCB番組表を利用する場合は、以下 i), ii), iii) の設定および作業をおこなってください。
i) TvRemoteViewer_VB.ini に以下を設定
EDCBがTvRemoteViewer_VBと同じPCで動いている場合
TvProgram_EDCB_url = "http://127.0.0.1:5510/api/EnumEventInfo"
別のPCで動いている場合
TvProgram_EDCB_url = "http://コンピュータ名またはIPアドレス:5510/api/EnumEventInfo"
またWeb番組表が利用できるよう、EpgTimerSrv.iniも、コメント文通りの設定がされているか確認してください。
ii) EDCBのTCP機能をONにする。
EpgTimerの設定画面を開き、動作設定→その他 で以下のチェック、および記入がされていることを確認して、「OK」を押してください。
iii) EDCB Velmy版または niisaka版を使用している際の設定
上記バージョンを使っている場合は渡されるデータのフォーマットが少し違いますので、TvRemoteViewer_VB.ini に以下の指定をおこなってください。
EDCB_Velmy_niisaka = 1
また、それに限らず実際に動かしてみてうまくEDCB番組表が表示されない時は、以下を指定してみてください。
EDCB_thru_addprogres = 1
⑤ ptTimer番組表関連の設定
ptTimer番組表を利用する場合は、以下のi)、ii) の設定および作業をおこなってください。なお、ptTimerを利用する場合は必ずTvRemoteViewer_VBと同じPC(Windows)上で動いている必要があります。
i) TvRemoteViewer_VB.ini にptTimerの実行フォルダを指定。
ptTimer_path = "ptTimerの実行パス(フルパス)"
ii) sqliteのモジュール 「sqlite3.exe」 を \TvRemoteViewer_VB フォルダにコピーする。
こちらのサイトの左にある
「Precompiled Binaries for Windows」の「sqlite-shell-win32-x86-xxx.zip」をダウンロードして解凍してください。
すると中に「sqlite3.exe」というファイルが入っています。
これを \TvRemoteViewer_VB フォルダにコピーしてください。
⑥ Tvmaid番組表関連の設定
Tvmaid番組表を利用する場合は、 TvRemoteViewer_VB.ini で Tvmaid_url = を適切に指定してください。
⑦ TvRemoteViewer_VB.iniを保存してTvRemoteViewer_VBを再起動する。
以上で「ファイル→上書き保存」を選んで設定内容を保存し、メモ帳を終了させてください。
設定内容の反映のために、一旦TvRemoteViewer_VB設定画面右上の をクリックしてTvRemoteViewer_VBを終了させた後、再度TvRemoteViewer_vb.exeをダブルクリックして起動してください。
この状態で同じPCからブラウザ(FirefoxまたはChrome)を立ち上げて、アドレス欄に
と入れてEnterを押してください。
なお(このタイミングではありませんが)最初にストリームを起動しようとした時に、以下のようなファイアーウォールの警告が表示されると思います。
これには速やかに「アクセスを許可する」と答えてください。
ブラウザには図のようなトップメニューが表示されます。
ちなみにこの画面は今後の実利用でのトップ画面になりますので、「ブックマークに登録」しておくのをお勧めします。
⑧ 番組表にアクセスしてみる。
まずはご利用のTVRock、EDCB、またはptTimer/Tvmaidの番組表ボタンを押してみてください。すると以下のような、サーバーが基本機能として提供する番組表が表示されます。
日常的に使う番組表はこれではなく、様々な機能を付加したこちらが主体になると思いますが、まずはこの基本の番組表が正しく表示されることをご確認ください。
以前のバージョンではTVRock/EDCBから取得する「チャンネル名:番組情報」と、実際に視聴に使うチューナーの「チャンネル名:サービスID」を正しく紐付けするため設定が必要でしたが、v1.11以降ではサーバー側が自動で紐付けしてくれるようにになりました。
確認したら、説明は前後しますが新番組表に表示を切り替えてください。以後はそちらを使います。
⑨ 地デジ番組表(ネットから取得した番組表)の紐付け情報を定義
一番上にあるボタンの「地デジ番組表」は補助的な位置づけですが、TVRock/EDCB/ptTimer/Tvmaid番組表と違って番組表のチャンネルとチューナー(RecTask)のチャンネルとの紐付けを自動でやってくれません。(一応試みますが、紐付け情報がないとかなり不正確です。) よって紐付け作業が必要になります。
ただし番組表自体が補助的な位置づけですので、ご面倒な場合はここの作業は省いて構いません。
(お時間のある時にやっておけば、万一EDCB/TVRock/ptTimer/Tvmaidの不具合があった場合にバックアップとして、「地デジ番組表」が実用的に使えるようになります。)
紐付けは以下のようにおこないます。
トップメニューで「管理タブ」の「Rockバー型の番組表を使う。」のチェックを一旦外した上で、「地デジ番組表」をクリックします。
ここでメモ帳を開いて、番組表の()内のチャンネル名を一行ずつコピペしていってください。
次に、半角の : を各行末に付加
次に「地上波対応BonDriverのch2ファイル」をどれかメモ帳で開いて、各行に対応するチャンネル名をそれぞれの右側にコピペしてください。
下の方から行末で「DEL」キーを順に押していけば、これらが一行にまとまります。(一番最後の, は削除しておいてください。)
この一行を TvRemoteViewer_VB.ini のTvProgramD_channels = の後にコピペし、保存してください。
以上でTvRemoteViewer_VBを再起動すれば、地デジ(ネット)番組表が正確に表示されるようになります。
.
ここまで設定が終われば、家の中でPCだけでなくスマホやタブレットからも、自由にテレビや録画ファイルの視聴ができるようになります。
使い方は実際触れてみればすぐに判ると思いますが、簡単にご説明いたします。
(リモートでの視聴もこの応用になりますので、まずはここでしっかり操作方法を習熟して、ブックマークも付けておいてください。)
一旦TvRemoteViewer_VBを落して再起動してください。
なお今後日常的に使っていく上では、TvRemoteViewer_VBをWindowsの起動に合わせて自動起動するのが良いかもしれません。
(いざ外から観たい、というときに立ち上がっていなければ元も子もないですので。。)
これは「いじくるつくーる」を導入して「起動時に毎回実行」に指定するのと割と簡単です。
ただしうちの環境でテストした限りでは、Windows8以降の環境では何故か自動起動できない、という問題が起きるようです。
恐らくこれと同じ問題で、対策としては間にバッチを噛ます必要がありますので、そのサンプルバッチを添付しておきます。
「TvRemoteViewer_VB_bat.zip」をダウンロード
ダウンロード&解凍後、バッチの中を編集して、お使いのTvRemoteViewer_VBの実行パスに修正した上でお使いください。このバッチを上記「いじくるつくーる」等でスタートアップ登録すれば、無事自動起動するようになります。
なお別の話として、TvRemoteViewer_VB ver1.08以降では起動パラメーターに -dok と指定することで多重起動させることができます。(スカパープレミアム専用の環境を立てる、家族で配信元のフォルダを分ける、等の応用ができます。)
多重起動させる際はそれぞれのTvRemoteViewer_VB を上記バッチでstart "" "C:\BON\TvRemoteViewer_VB\TvRemoteViewer_vb.exe" -dok
と少し書き換えたもので起動してください。その上で片方の設定で、HTTPポート/UDPポートを40004/42425 のように別の値に変え、そちらのHTTPポートもファイアーウォールの設定に追加すればOK。片方はhttp://アドレス:40004/でアクセスできます。
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
① 使用していく上で最も良く利用するのは番組表からのストリーム開始だと思います。
使い方についてはまず、トップメニューで番組表のボタンを押してください。「トップページ-管理タブ」で「Rockバー型の番組表を使う」にチェックしておけば、次のような番組表が表示されます。
観たいチャンネル/番組の行をクリック/タップすると、上の絵の「日テレ1」のように選択された状態になります。
これをもう1度クリック/タップすると、次のようなポップアップが表示されます。
② 放送内容を確認のうえ、このまま視聴する場合は、ストリーム番号と利用するBonDriver、および解像度を選んで、[視聴]ボタンを押してください。
視聴しない場合は周りの暗いエリアのどこかをクリック/タップすればポップアップは消えます。
この時、どのストリーム番号とBonDriverを選択すれば良いかの手助けとして、既に他で使われているストリーム番号とBonDriverには頭に*が付き、使われていないもので最も番号の若いものがデフォルトで選択されますので、普通はこのまま視聴ボタンを押せば良いです。
(ちなみにBonDriverは複数回使えるタイプもありますが、そういう使い方をする場合は*が1個ついている状態のものを改めて選んでください。2回使われているものには*が2個付きます。)
.視聴ボタンを押すと、次のような「配信準備中」の画面になります。
③ この画面が出ている間、サーバ側で配信用のデータファイルを準備していますので、しばらくお待ちください。視聴ボタンを押してから約5~10秒で準備完了して視聴画面に切り替わります。
しかし、設定や指定が正しくないと何十秒経っても表示が変わらないか、場合によっては「配信されていません」と表示が変わったままになることがあります。
これは例えば、そのチャンネルの受信に適切でないBonDriverが指定されていたり、そもそも設定の問題としてスクランブル解除の設定がうまくできていない、デフォルト解像度が設定されていない、というようなミスがまず疑われます。いくつかのチャンネル/BonDriverでやっても同じ現象が起きる時は、設定を再度見直してください。
無事配信が開始されれば、まずは標準のブラウザ視聴画面になります。
ただしスマホ/タブレットの場合、多くのブラウザでは「ストリームの開始は必ず人が介在する」 という暗黙のルールに従っており(無駄なデータ課金を避ける意図があるようです)、したがって動画は本来自動開始できず、動画エリアには最初、 のようなボタンが表示されるのが元の仕様になります。
これをタップすれば動画スタートしますが、いちいちストリームを開いたり再起動するたびに動画エリア中央を探してタップするのは面倒で、ボタンの反応も鈍い上に、この操作の邪魔にならないよう「自動開始できない端末」では、「実況表示」を自動開始することもできない仕様になっていました。
(実況は動画エリアの上に被るため、先にスタートさせると動画エリアの開始ボタンをタップできなくなってしまう。)
ただしスマホ/タブレット環境でもブラウザによっては自動開始をサポートしているものもあります。ちょっと調べてみた結果はこちら。
私がモバイル用に今まで使っていたiPad/iPhone のiOS環境ではiLunascapeがぴったり目的に合うため、あまりここは深く考えていなかったのですが、最近Android環境を手に入れたところ、私の中華パッドの環境にはぴったり来るものがありませんでした。(但し最新の速いモデルであれば、Dolphinがぴったりくると思います。)
それほど最新CPUでもない私の環境ではHabit Browserが動作快適で機能も豊富なのでTvRemoteViewer_VB用に常用したいと思ったものの、この「自動開始できない」点を何とか出来ないものかと考えてみました。
システム的にはスマートな解決策はない事が判ったのでちょっと考えた結果、「どうせ人手の介在が必要なら出来る限り簡単にすればいい」という結論に至りました。
それで作った仕組みがこれです。
動画が自動開始しなければ1秒程度で最前面にこの大きなボタンが現れ、押せば動画開始します。
最前面ですので実況がスタートしていても操作に影響はありませんので、この仕組みに合わせて実況も(前回終了時にONになっていれば)自動開始するよう改修しました。
また、スマホを日頃どのように持つかに合わせてボタンの出現位置も上下左右の端か、中央に設定出来るようにしました。
この辺、快適な利用の助けになれば幸いです。
.
さて動画を起動すると、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バー型」を常駐させた上で、視聴画面を毎回動画サイズに合わせた別ウィンドウで起動させることもできます。
またこの番組表フォーマットで、トップ画面にお気に入りチャンネル(番組表ポータル)を表示することや、視聴画面のサイドパネルに表示しながら、直接選局することも可能になっています。
これを使うにはトップ→管理画面で
番組表設定のところで「Rockバー型の番組表を使う」にチェックをしてください。それで番組表を呼べば新しい番組表が立ち上がるようになります。
この新しい番組表はいろいろカスタマイズが可能です。その場合「番組表カスタマイズ」ボタンを押してください。すると以下のような画面がポップアップします。
ここで設定した項目は、右下の「適用する」を押せば反映されます。
まず表示項目については、上にある「時間を表示」「詳細を表示」で選択できます。
画面が広い端末では両方とも「表示する」のままで良いと思いますが、スマホなど狭い画面の端末では
このように「番組時間」を省略したほうが一覧性が良くなります。
番組の時間も判らないのでは番組が始まったばかりなのか終わる間際なのかも判らない、という声もあるかもしれませんが、実は「色」でそれを表すようにしました。大まかな目星は見た目で付けられます。
局名以外のエリアは指やマウスで左右にスクロールしますので、詳細情報は敢えて省かなくても、必要な時に右に辿って行って見ることができます。
(尤もPCであればモニターで充分横全部の情報を表示できます。)
またマウス操作のPC/Macでは、番組名のところにマウスオーバーすれば最初の絵のように詳細情報がポップアップするようになっていますので、日頃はこれもRockバーのように縦長にして置いておくのも良いかもしれませんね。
さて、この番組表から観たい番組が決まったら、その行で一回クリック/タップしてください。すると行が反転しますので、
この状態でもう1回この行をクリック/タップすれば
開始指示の画面が出てきますので、ここでストリームを起動すれば良い訳です。
またこのポップアップ画面は番組内容の確認用に使っても有用です。(ポップアップエリア外の暗くなっているところをクリック/タップすればポップアップは消えます。)
なお、タップ操作のモバイル系の場合、あまり急いで2回タップするとダブルタップと見なされて(拡大/縮小など)別の動作をしてしまいますので、タップの間隔は気持ち1呼吸入れるのがコツです。(マウス操作の場合はダブルクリックでも構いません。)
この番組表の文字の色は、番組の進捗を表しています。
(実装では一応色覚にハンデのある方でもわかるよう微妙な明度の差もつけたつもりですが、わかりにくい場合は教えてください。)
このように番組が進むに従って色が変わっていき、赤やグレーになった番組は今から見てもほぼ終わっているか、既に終わって(特にBS/CSの場合、番組時間帯の終わりは長い通販や番宣が入ることが多いですので)余り今からチャンネルを合わせる意味がないかもしれない、という意味になっています。(他に放送休止中や通販番組もグレーアウトします。)
番組時間が残り9分以下になると、番組の表示はグレーアウトしますが、「詳細」欄には次の番組情報が表示されるようになります。
次はどのチャンネルに行くか、迷ってる時のご参考にどうぞ。
(なおこの次の番組情報が表示されるのはTVRockかEDCBから取得した番組情報の場合のみで、地デジ(ネット)番組表やptTimer/Tvmaid番組表あるいはそれらを元にしたポータル/サイドパネルの情報には出てきません。)
番組表ポータル
他の便利な設定もご紹介します。
カスタマイズ画面の上にある「ポータル」 をチェックすると、トップ画面にも図のように番組表がリアルタイムに表示されるようになります。
ここから直接視聴の開始も可能です。
ポータルに表示する放送局はカスタマイズ画面のチェックマークで選択できます。
あまり沢山表示するとポータルの意味がなくなってしまうので、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の機能ですが、何%でどのぐらいの透過度になるかは、各プラットホーム/ブラウザの特性で微妙に異なります
⑥ 最大コメント数の調整機能(TvRemoteFiles ver1.14以降)
従来の実況機能では画面に同時に表示されるコメント数は最大40個という制限があり、それを越えるコメントが来ると、先に表示したものからどんどん消していくようになっていましたので、PC等の大きな画面でいわゆる「弾幕状態」になると、コメントが左端に達する前にどんどん消えていってしまう、という現象が起きていました。
そこでver1.14以降では2ch実況機能が加わる事もあり、その辺の違和感をなくすため、
-コメントの出現位置がかならず右端になるように調整した。
-デフォルトの最大コメント数を120に増やしたのと同時に、「コメ表示数上限」を調整する機能を付け、コメントが左端まで流れるようにした。
という改良を加えました。実況サイドパネルの図の位置に調整用スライダーが付きます。
このスライダーで最大コメント数を40~320の間で調整できます。
スライダーを動かすと図のようにボタンに表示されている数字が赤くなりますので、
数字を調整したらこのボタンを押してください。するとコメントプレーヤーが再起動してシステムに反映されます。
但し単純に最大コメント数を増やしていくと、システムの負荷が高くなって肝心の映像がカクつく場合もありますので、そのような時には少し低めに調整した方が良い場合もあります。
(コメントの表示自体はカクついたり時々止まったりしてもあまり気になるものでもありませんが、動画そのものがカクつくのはあまり気持ちの良いものではありません。)
意外なことですが、コメント数が増えた時の動画カクつきはCPU性能控えめなAndroidやiOSではなく、Flashで動画再生をソフトウェアエミュレーションしているPCのほうが出やすいです。その辺、気になったら都度適切に調整してみてください。
⑦ 実況がうまくスタート/表示されない時はコメントプレーヤーを再スタートしてみる。
どういうタイミングで起きるのかは何とも言えないのですが、実況ボタンを押して実況スタート/あるいは自動で実況がスタートしている筈のタイミングで、なぜか(実況サイドパネルは表示されていてそこそこ勢いもある筈なのに)数十秒待っても実況が表示されない事があります。
そういう時は実況プレーヤーを再スタートさせることで復旧することが多いですので、「⑥最大コメント数の調整機能」 にあるボタンを、「単なる実況プレーヤー再スタートボタン」として使ってみてください。
使い方は簡単で、上記の「最大コメント数調整用スライダー」を少しだけ動かすと、ボタンに表示されている数字が赤くなり、ボタンが押せるようになります。そこでボタンを押せば実況プレーヤーが再スタートし、うまく表示できない状態も大抵は解消すると思います。
TvRemoteFiles ver1.14以降では2ch実況を流す機能が追加になりました。
表示はニコニコ実況と一体化していますが、どちらがどちらのコメントか判るように2ch実況にはお好みの色を付けることができます。
またver1.22以降では、(2ch実況はこうでなくては、という方もいるかもしれませんので)色をランダムに付けるモードも追加しました。ランダムとは言っても一応同じIDの人のコメントは同じ色になります。
2ch実況を加えることのメリットは、(NHKやキー局の)局専用板があるのとは別に、BS、CS、野球/サッカー/スポーツ等のカテゴリー板や、いわゆるなんJ等もあってそれなりに実況民が集まる番組であれば必ずどこかに実況スレがある点です。
ただ逆を言えばニコニコのように放送局ごとの実況場所が決まっている訳ではないので、システムにとっては適切な板/スレを探す機能や、実況中のスレが1000レスに達して次のスレに移る時に(スムーズに次スレが立つと決まっている訳でもないので)それを自動で検知して適切な次スレに繋げていく機能も必要です。
あるいは局専用板でも番組が切替われば主スレが途中で切替わりますので、それらを想定した都度のスレ勢い計測も必要になるなど、いろいろと仕組みが必要になります。そういうことを考えながら開発にも時間をかけていました。
結果としてこのプログラムでは、一旦板/スレを選べばあとはほぼ自動で動きます。
2ch実況を開始するには、(ニコニコ)実況機能を開始したあと、実況サイドパネルに新しく追加された「2ch実況」ボタンを押せば、
以下のポップアップが表示されます。
この段階で主要キー局/系列局や、BS/CS/スカパープレミアムでも常設スレが立っているような局では上のようにデフォルトの板が表示されています。
が、そうでもない局やスポーツ専門チャンネルでは「板選択」とだけ表示されますので、
まずはプルダウンで希望する板を選択してください。
なお、デフォルトの板が表示されるチャンネルでも、野球/サッカー/テニス/競馬などは専用板の試合/チーム専用スレや「なんJ」スレのほうが活発に実況がされていますので、番組内容によってそちらも見て、勢いをチェックしてから選んだほうが良いと思います。
プルダウンでは局の特性によってできるだけ適切な板が上に来るように都度調整されています。
地上波NHK/キー局で局専用板の実況を流す場合は、「■■ 自動選択 ■■」という項目があってデフォルト選択されています。
その状態のまま「開始(あるいは変更)」を選べば、その板で最も勢いのあるスレを常に自動選択するようになります。(これを仮に「板指定モード」と呼びます。)
また、前回視聴時に実況ONの状態で終わっていれば、その端末で次にテレビ視聴する時も実況自動スタートの際に、「板指定・自動選択が使えるチャンネルであれば」、それが指定されたものとして自動で2ch実況もスタートします。
局専用板の無いチャンネル、また東京MXのように局専用板があっても殆ど機能していないチャンネルでは、この「自動選択」という選択肢はありませんので、希望する板とスレを選んでください。(但しかなりの数の局でデフォルト板とデフォルト起動スレの参考名がサーバーファイル「2chThreads.json」に設定されていて、とりあえずその設定で「スレ指定モード」の自動起動を試みるようになっています。)
またデフォルトの板が表示されているチャンネルでも、野球/サッカー/テニス/競馬などは専用板の試合/チーム専用スレやなんJのほうが活発に実況がされていますので、番組内容によってそちらも見て、勢いをチェックしてから選んだほうが良いと思います。
「勢い測定」ボタンを押すと、(表示中のスレ一覧を取得した時点からシステムが最低10秒程度の間を置いた上で)増加したレス数を計算し、上図のように増加の多い順にスレが表示されます。これでどのスレが生きているか、適切に実況されているスレか、が判断できると思います。
ここからスレをクリックして選んだ上で「開始(あるいは変更)」ボタンを押せば、
そのスレを使った実況表示が始まり、そのスレが終了した後も
「最初に指定したスレタイにどれだけ名前が似ているか、またスレ勢いはどうか」
を総合的に判断しながら適切なスレを選んでいきます。(これを仮に「スレ指定モード」と呼びます。)
一度2ch実況をスレ指定モードで起動すれば、「その番組時間が終わるまでは」、サーバーに「チャンネル+指定した板/実況スレの紐付け情報」が記録されます。
この機能によって、他の端末に移ってそのチャンネルを見続けたい時や、一旦別のチャンネルを観た後でチャンネルを戻しても、該当の番組が放送されている間は指定したスレの実況が自動でスタートします。この辺は特にスポーツ観戦時に便利かと。
一応ご参考までにまとめると、2ch実況の自動スタートでは以下の3種類のロジックが働くことになります。
2ch実況ボタンの下には、2ch実況のステータスが表示されています。
実況開始時に「板指定モード」を選んだ場合、また上の3つのどれかのパターンで自動起動する際は、最初に図のように
黄色の背景でスレ選択中、というメッセージが表示されます。この間は勢いを自動計測しながら最適のスレを選んでいます。
十数秒で最初の選択結果のスレが表示されます。そのとき5秒間だけ、新しく選択されたことが判るように背景が赤くなります。
最初の5秒間だけ赤い背景で表示される
その後は通常表示に。(スレが変更されればまた5秒間赤背景になる。)
実況中はコメント取得の度に、取得したコメント数がスレ名の頭に勢いとして(7) のように表示されます。これは10秒間のコメント数ですので、6倍すればニコニコの勢いと比較できます。
スレが1000レスに達したら再度背景が黄色くなり、次スレを選択していきます。
10秒~20秒で次スレが選択されてほぼ切れ目なく実況継続していきますが、スムーズに選択される場合は黄色背景の「次スレ選択中」が表示されない場合もあります。
この辺のスレの選択は勢いの揺らぎもありますので、コメントがまばらな時や、実況開始/スレ切り替え直後の数十秒間は最適のスレが選ばれるとは限りませんが、大抵は暫く待っていればより適したスレが選択し直されますし、板指定モードなら番組が替って主スレが替っても数十秒で自動追尾されます。
ただしたまにスレ指定モードでスレ名称ががらりと変わってしまったり元々名称が単純すぎる場合、あるいは局専用板でないにも関わらず番組専用スレが次々に立つ場合には、システムがうまく次スレを選択できない事もあります。そういう時にはポップアップからスレを指定してください。
(特にNHK BS板は、利用するチャンネルがBS101、BS102、プレミアムと3局あるにもかかわらず「あまちゃん」のような番組専用のスレが立つため、デフォルト定義では番組の切れ目で追尾できなくなる事があります。そういう時には明示的にスレを指定してください。)
なお、仕組み上は複数スレが盛況だったり候補になる場合(例えば巨神戦での巨専/とらせん、なんJスレなど)それらを同時に流すことも出来るのですが、実況板に余計な負荷をかけない観点で、同時に流せるのは1スレのみという仕様にしています。どうしても複数スレを流したい場合は複数画面を立ち上げてください。映像が不要な時は0x0モードで映像offにしたり音声offにしておけば良いです。
以上が2ch実況機能です。使う上では特に難しいことを考える必要もなくニコニコと並ぶ実況機能として使えますし、2chの実況板の性格を知っていけば更に便利に使えると思います。
尚、2chに関しては2015年3月以降いろいろな話があるのに対して、この機能は「公開されているスレを1つだけ標準のブラウザで開いて10秒単位で前回スレ番以降をリロードしながら動画の上に流す機能」なので、専用ブラウザの「2ch.netウェブサイトの閲覧及び書き込みを可能にする専用ソフトウェア」という定義には当てはまりません。(その辺の議論には応じられませんのでご遠慮願います。)
但しapiもdatも使用していないとはいえ、いつまで使えるかも保証はできませんので、あくまで期限不定のテスト機能としておきます。
ただ使ってみれば判る通り便利なのは確かですし、そもそも2chはニコニコのようにリアルタイムにコメントを読み込むような仕組みになっておらず、無理にやろうとすると数百ミリ秒単位に新規コメントを読みに行くような負荷をサーバーに掛けることになります。(それを避けるためNicortなども数秒~十数秒遅れのコメント表示になっているわけで。)
それに対して、TvRemoteViewer_VBはもともと映像自体に放送から十数秒の遅延がありますので、それを逆用すれば2chからの読み込みも十秒程度の間隔でゆっくりやって充分間に合いますし、もともとニコニコ実況用に作った遅延時間バーを使って映像にぴったり合うよう調整することもできます。(仕組み上、ニコニコと2chのタイミングがずれることは殆どありません。) そういう面でも2ch実況との相性は非常に良いと思います。
(残念ながら投稿機能やログを取る機能は無く、その辺に立ち入ると問題になりますのでやる気はありません。投稿する時にはお好みの専ブラを使ってください、ということで。)
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以降にバージョンアップしてからお使いください。
なおこの「キーワード絞込み再ロード」ボタンは、全ファイルのリストを取得した時点で消えます。画面に表示されないかあっという間に消えてしまう、という方は十分に速い端末を使っていると思いますので、そもそもこの機能は不要かと思います。
TvRemoteFiles ver1.20 以降ではファイルの保存場所で絞り込む機能も追加になりました。
図のような「保存場所で絞込み」のチェックボックスが追加され、チェック状態にするとファイルリストの左側に図のようなフォルダリストが表示され、クリックして選択することで、そのフォルダ下に保存されているファイルだけが表示されます。
「保存場所で絞込み」のチェックを外すか「TOP」をクリックすれば絞込みは解除されます。
エクスプローラーでファイル一覧を表示しているイメージに近くなり、フォルダの先頭の[+]をクリックすれば一階層下のフォルダ一覧が表示され、[~]をクリックすれば下の階層は隠れます。
ただしエクスプローラーと違う点は、
(1) コンピュータに存在する全てのフォルダではなく、表示対象の映像ファイルがあるフォルダだけが一覧になっている。
(2) 選んだフォルダの下位の階層に存在する全ての映像ファイルが表示される。(エクスプローラーでは直下のファイルのみ)
特に(2)は映像ファイルを扱う上ではこちらのほうが便利と考えていて、この辺のポリシーはWhiteBrowserを参考にしています。つまりファイラではなく映像データベースに近く、フォルダ名もあくまで絞込みキーワードの一種という扱いになっています。
⑤ ファイル再生開始
以上のようにして選択したファイルは、上の「再生」ボタンを押すことで再生スタートしますが、この際に指定するストリーム番号/解像度などの選択は、番組表の操作と殆ど同じですので、適切なものを選んでください。
ここで「開始シーク位置」は番組表にはない指定ですが、これは映像ファイルの先頭から指定秒数だけ経った位置から再生する、というパラメーターです。(ちなみに秒数だけでなく、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以降)の機能を使って、エンコード進行中であってもプレーヤーに頼らずにシークできるようにしました。
それでも 「エンコード進行中」 と「エンコード済み」 の状態では操作にいくらか違いがありますので、ここではそれも踏まえて説明いたします。
エンコード進行中とエンコード済みの状態でのシーク動作の違いは以下の通りです。
このようにエンコード進行中にはシークや再読み込みを実行するたびにストリームの再起動をおこないますので動作のタイムラグがありますが、ファイル再生ストリームの再起動は放送ストリームと比べて仕組みが単純で速い(数秒程度)ので、十分実用的に使えます。
更にエンコード済みになるとシークや再読み込みはプレーヤーの機能のみでサクサク反応しますので、時間の余裕のある時は早めにストリームを開始してエンコード終了させておくのも良いと思います。
このような振る舞いの変化がありますので、シークボタンはエンコード進行中とエンコード済みで以下のように変わります。
エンコード済み(エンコード終了したがプレーヤーが未認識の状態)
↓ (iOSでは自動的に切り替わります。PC、Androidでは赤丸部を押せば切り替わります。)
.
最初のエンコード進行中のシークボタンでは、押した分の時間を加(減)算したものが青いボタンに表示され、
これを押すことでシークが実行されます。
シーク動作にストリーム再起動が伴うため、例えば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キーを押すか、一旦他の入力欄やファイル名などをちょっとクリック/タップしてから「保存」ボタンを押すようにしてください。
次の音声(「主・副」「主」「副」「音声2」) の設定は、
次節でご説明している二ヶ国語放送のプリセットです。
主・副がデフォルトですが、それ以外を設定しておけば二ヶ国語放送を再生する際に言語を選択できます。
次節にある通り二ヶ国語放送のタイプによって、例えば英語を選択したい場合に「副」にすべきか「音声2」にすべきかは変わります。
(なお、TSファイルではなくMP4にエンコード後であれば、原則「主」「副」でしか選べません。)
タイプによっては何も指定しないと日本語と英語が同時に再生されて聞きにくくなる場合もありますので、そういう録画についてはここで「主」か「副」のどちらかを選んでおけば、再生時に気にしなくとも日本語/英語が自動選択されます。(再生時に変更することもできます。また変更内容は以後のリスト再生でも引き継がれます。)
以上のような形でお好みのプレイリストをカスタマイズしていってください。
・ なお作成できるプレイリストは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上のどこからでも使えるプレイリストが作成できます。
.
TvRemoteViewer_VBでは、録画したファイルを実況付きで再生することもできます。
利用のためには録画内容に応じた実況ログファイルが必要になりますが、その手順を自動化するためにTvRemoteViewer_VBは2つの仕組みを用意しています。
長所 | 弱点 | |
---|---|---|
① NicoJK用に保存した実況ログを流用する方法 | ・既にNicojCatchの仕組みがあれば利用は簡単。 ・実況再生に必要なASSファイルはファイル再生の都度作成するので、事前に準備したりメンテナンスする必要がない。 |
・録画時に実況ログを保存していないものはこの方法は使えない。(JikkyoRecで保存した実況ログにも非対応) ・「祭り」状態が続くような巨大な実況ログになると再生開始時のASS作成処理に暫く待たされる。 |
② NicoConvAssで改めてニコニコ実況ログを取得してASSファイル化する方法 | ・NicojCatchの仕組みで実況を保存していなくても、生の放送TSファイルが保存してあれば実況再生可能。(この場合ニコニコ実況のみ) ・再生の都度ASSを作成する訳ではないので、ファイル再生時のレスポンスが良い。 ・ASSさえ用意してあればMP4やMKVファイルでも実況付きで再生できる。 |
・準備に手間がかかる。(一旦準備してしまえば後は楽。) ・ファイルと同じ名前で同じ場所にASSファイルがなければならないので、ファイルの移動やリネーム時に注意要。 |
現在は両方式ともNicojCatch + 2ch2NicoJK で保存された実況ログがあればそれを活用できるようになっていますので、このシステムがリアルタイムに流す実況と同じく、ニコニコ実況 + 2ch実況 の豊かなコメントを再生時にも流すことができます。
(多少違うのは2chスポーツ実況のように本スレが判りにくいものでもリアルタイムなら見比べながら選べるのに対し、2ch2NicoJKで保存したければ条件設定が必要な点ですが、これは実況板の性格上止むを得ないところです。)
これら2つの方法は併用できます。併用する場合、NicojCatchで実況ログが保存してあるものは①、ないものは②の方法が自動的に選択されます。
それぞれを準備する手順は後で説明するとして、まずは実際の実況付き再生がどうなるかをご紹介します。これにも2つの形式があります。
ファイル/プレイリストの実況付き再生には[ハードサブ]と[ソフトサブ]の2つの形式があります。
[ハードサブ] 実況を映像に焼きつける方法
[ソフトサブ] ニコニコ実況や2ch実況と同じく、端末側でHTML5の機能を使って実況をオーバーレイさせる方法 (TvRemoteFiles v1.19以降の新機能)
ハードサブの場合はサーバーでコメントが焼き込まれた状態で配信されますので、端末側ではほとんどやる事がありませんが、ソフトサブの場合はニコニコ実況や2ch実況と同じ仕組みを使っていますので、端末側操作のためのスライダーやボタンが追加されます。
それぞれの利用手順について
利用手順 | |
---|---|
ハ | ド サ ブ |
単体のファイル再生では、以下の「実況焼込」をチェックすればハードサブの指定になります。 同じくプレイリスト再生時も、実況焼込のチェック/非チェックを選択します。
ファイル/プレイリスト再生中は「再読込操作」のポップアップでハードサブするか否かを変更でき、指定変更後「ストリームを再起動」すれば即座に反映されます。
|
ソ フ ト サ ブ |
ソフトサブを指定するには、まずはハードサブの指定をおこなわない、すなわち「実況焼込」のチェックをおこなわない状態でストリームを起動します。 この状態で起動あるいは再起動した視聴画面では、実況サイドパネルを表示すると以下のようなバーとボタンが表示される筈です。 この「実況ログを再生する」ボタンを押せばソフトサブでの実況表示が開始されます。 このボタンを押さなければ実況表示のない普通の再生になります。また実況再生中にこのボタンを押せば実況表示は停止します。 前回視聴終了時に「実況ログ再生」がONの状態であれば、次に視聴画面を立ち上げる時にも(他の条件も合って実況ログも存在するならば) 実況再生の自動起動を試みます。 上の「タイミング調整」スライダーは、遅延時間スライダーと同じような役割で、+の数字ならコメントが流れるタイミングが遅れる方向になり、-(マイナス)の数字ならその秒数だけ、コメントが進んでいる方向になります。調整幅は-30秒~+5秒です。 この調整幅になっている理由は、通常のソフトサブであれば(ハードサブと同じく)元データに起因する誤差がありますが、最大±5秒程度のタイミング調整ができれば良いので+方向は5秒としています。 |
ハードサブとソフトサブの選択について
最初このシステムはハードサブの仕組みだけしか持っていませんでしたが、(特に可変速再生で)負荷が高く、また画質が落ちるため通常より2段ぐらい高い解像度にしないと満足いく画質にならない、という弱点が気になってきましたので、後になってソフトサブを追加しました。
といってもそれぞれ特長と弱点がありますのでそれぞれ補完するものとして、都度使い易い方を選べば良いと思います。
PCやiPad、Androidで普通に使う場合はソフトサブが使い易いと思いますが、iPhoneではそもそも全画面でしか動画を観られないので、ハードサブにする必要があります。
長所 | 弱点 | |
---|---|---|
ハ | ド サ ブ |
・全画面でも表示できるのでiPhoneでも実況が楽しめる。 ・映像に同期して焼き込まれるため、映像と実況コメントのタイミングの誤差はせいぜい±5秒以内である。 |
・サーバーの負荷が高く、特に1.5倍速や2倍速の映像に実況を焼き込もうとすると、ハイエンドのPCでも処理が追いつかないことがある。(映像が頻繁に一時停止する。) ・画質上不利。特に弾幕状態になると映像がかなり崩れる。 ・映像と実況コメントのタイミングの誤差は小さいが、補正もできない。 ・コメントを消したい時でもストリームの再起動が必要。 |
ソ フ ト サ ブ |
・サーバーに負荷はかからない。エンコードも通常通り終わる。 ・画質への影響がない。 ・映像と実況コメントのタイミングに(ハードサブと同じ理由で)±5秒以内の本来的な誤差があるが、それもスライダーで補正できる。 |
・全画面では利用できない。 ・Androidで「エンコード未了」の状態では(Androidの標準プレーヤーの特性で)タイミングに大きな誤差があり、スライダーで毎回補正が必要。(エンコード完了すれば解消する。PCやiOSではこの問題は無い。) ・実況開始時にASSファイルを映像とは別にサーバーから読み込むが、回線速度やASSファイルのサイズによっては無視できない待ちが発生し、その間以下のようなメッセージが表示される。 ASSファイルのサイズは通常は数百KB程度なので殆ど気にならないが、たまに「祭り」の「1時間以上の映画や番組」だと数MBに達する。 |
なお一部のファイルに限定した問題として、経過時間を計算するための構造が壊れているものがあり、サーバー側でのシーク(時間指定でファイルを途中から再生する機能)がうまく働かず、やろうとすると常に最初に戻ってしまう場合があります。
これは本質的にはソフトサブの問題というより、ストリーム再起動をともなうシークや指定位置での再起動が全てうまく動かない問題になるのですが、ソフトサブについて言えば、一旦そういう「不良」ファイルでサーバー・シークしてしまうと経過時間の積算が全く狂ってしまい、コメントのタイミングも狂ってしまいます。
そういうファイルではエンコードが完了するまでシーク操作は待つ必要があります。
以上が実況付き再生の手順で、ここからはこの機能を使うための設定手順です。
この方法を利用するには、既にNicoJK + NicojCatch を使って録画と同時にニコニコ実況(および2ch実況)を取り込んでいることが前提になります。
関連フォルダを以下のように指定してTvRemoteViewer_VBを再起動するだけで、実況付き再生ができるようになります。
図にあるNicoConvAss.exeはTvRemoteViewer_VBと同じ作者さんが提供しているツールです。
このツールは「② ニコニコ実況を取得してASSファイルを作成する」手順でも使いますが、ここではコメントのフォーマットを整えるためだけに使います。
作者さんのサイトを下に辿って行くと
おまけ ~ ニコニコ実況の過去ログを取得し字幕ASSファイルを作成するソフト
という記載があります。そこに
NicoConvAss vx.xx 20xx/xx/xx
という行があり、そのvx.xx という所がファイルのリンクになっていますので、クリックしてダウンロードし、解凍した上で、適切な導入用フォルダを作成して(以下では\NicoConvAssフォルダと呼びます)、解凍した中身を全てコピーしてください。
その上でTvRemoteViewer_VB.ini に、このNicoConvAss.exeへのフルパスを(図の例であれば) NicoConvAss_path = "C:\BON\NicoConvAss\NicoConvAss.exe" のように指定してください。以上で準備完了です。
ただしこの方法で実況を表示する場合、内部的にはTvRemoteViewer_VBが(NicoJKフォルダにある実況ログから)毎回自動的にASSファイルを作成するのですが、文字の大きさや実況密度の条件を決める「-height」のパラメータ(→参考) はNicoConvAssが持っているデフォルト値が使われ、利用時に指定することはできません。
これをiPhoneのような小さな画面でハードサブで再生したい場合、文字サイズをもっと大き目にしたい場合があるかもしれません。また逆に充分大きな画面のPCで再生する事が多い場合、コメントをシステム側で勝手に削ってほしくない場合もあります。
heightのデフォルト値は、\NicoConvAssフォルダにある form_status.txt ファイルを編集することで変更できます。
この TextBoxVheight = の値がデフォルトのheight値になります。
再生の都度この設定を変更することはできませんが、最も利用の多いシーンを想定して設定すると良いです。
(ちなみに私はこの辺どうしてるかと言うと、録画終了後にリンク先のエンコードバッチでiPhone用SD画質のMP4とそれ用の -height 720 設定のASSを生成してiPhoneでは配信も持ち運びもそちらのファイルを使うと同時に、PCやタブレットではTSファイルを直接再生することでデフォルトの大きな画面用パラメータで実況再生、というような使い分けをしています。)
なおこのform_status.txt ファイルが見つからない場合、1度でもNicoConvAss.exeを起動すれば自動的に作成されます。
② NicoConvAssでニコニコ実況を取得してASSファイルを作成する方法
この仕組みでは①でも利用したNicoConvAssと、実況データ取り込み用ソフトのJKCommentGetterを活用します。概要と設定手順は、以下のようになります。
一見複雑な仕組みに見えますが、基本は各ソフトを導入していくだけでOKです。
それぞれの手順は赤枠内をクリックすれば出てきますので、Firefoxでniconicoにログインした上で、(1)から順に実施してください。
なお(5) NicoConvAss は① で導入済みであればそれをそのまま利用できます。
その場合(3) JKCommentGetter の導入の際には新規フォルダを作るのではなく、NicoConvAss導入済のフォルダにまるごとコピーてください。
また① で導入したものを流用する場合でも、(6)NicoJKで保存している実況ログを活用する設定を(NicojCatchを導入済みの方は)おこなってください。そうすればNicoConvAss.exeを呼ぶ際にオプション -nicojk 1 を指定することによって、NicoJKフォルダの実況ログを優先して読み込むようになります。
尤も① と併用する場合は、TvRemoteViewer_VBがNicoJKフォルダに実況ログがあれば直接取りに行くので、ここで実況ログ保存済みのファイルにASSを作成してもあまり意味はありません。(といっても保存済みかどうかの判別も面倒ならとりあえずまとめて作っておいても構いません。)
併用しない(①でNicoJK_first=0 とする)場合には意味があります。(ストリーム起動時に毎回ASSを作成しないのでストリームの起動が速くなる、というメリットもあります。)
また、(1)~(6)を導入するのはTvRemoteViewer_VBが動いているPCである必要はありません。もしTVRockやEDCBで予約録画に使っているPCが別にあれば、そちらに導入するのが適切です。ただし(7)についてはTvRemoteViewer_VBの動作環境に導入してください。
この仕組みの流れは簡単に言えば、録画したtsファイルに埋め込まれているチャンネルや時刻の情報をNicoConvAssが解析の上、NicoJK用に保存された実況ログがあればそちらから、それが無ければJKCommentGetterというツールを使ってniconicoのサイトに問い合わせて実況ログを取得した上で、ASSという字幕ファイルを吐き出す手順になっています。
ASSは汎用的な字幕ファイルで、ここではそれに実況風の「横に流す」オプションを付けることによって実況の雰囲気を再現しています。
元の映像ファイルが「映像1.ts」というファイル名なら同じフォルダに「映像1.ass」という名前で置いてあれば、TvRemoteViewer_VB側ではそれを対応する実況ログとして取り込む仕組みになっています。
またこの仕組みで準備したASSファイルは、MPC-HC等で再生する際もそのまま働きます。但しMPC-HC/VLC等での使い方はここの主題ではないので、ご興味のある方はリンク先を参照してください。
このASSファイルを対象の録画ファイル分予め用意しなければなりませんが、録画ファイルがtsで取ってあれば何年前のものであっても自動で生成でき、外出時に仕掛けておけば数千ファイル分でも半日ほどで仕上がります。
ファイル容量はテキストファイルなので大したことはなく、過去にNicojCatchでコメントを取っていなかった頃とか取り損なっていたtsファイル分も改めて実況取得できるので、新たな発見もあります。(え、あの番組にはこんな実況コメントが入ってたのか!とか。。)
なお、RubyはJKCommentGetterを動かすために必要なスクリプト言語環境、またsqlite3はFirefoxのcookieにあるniconicoの認証情報を読み出すためのデータベースソフトです。
fonts.confはffmpegでASSの字幕焼き込みをおこなうためのフォント管理情報です。この導入は以下のようにしてください。
・TvRemoteViewer_VBで使っているffmpegのbinフォルダ(ffmpeg.exeがあるところ)で、右クリック→新規作成→フォルダー で新しいフォルダーを作成し、 fonts という名前にしてください。
・リンク先のサイトから(最新版ではなく)
GTK+ 2.x ~ GTK+ 2.24 is the current maintained version.
にある Required third party dependencies Fontconfig 2.8.0 Run-time
をクリックしてfontconfig_2.8.0-2_win32.zipをダウンロードしてください。
解凍すると、\etc\fontsフォルダに fonts.conf というファイルがあるので、これを上で作成した\ffmpeg\bin\fonts フォルダにコピーしてください。以上でffmpegのフォント管理ファイルが導入されます。
.
さて、これを活用する上でもう1つ必要なのは、録画のたびにASSファイルを自動で生成したり、既に大量にある録画済みデータにまとめてASSを付加する仕組みです。
片っ端からASSを付加しておけば、TvRemoteViewer_VBでは視聴時に実況付きにするか否かをいつでも選択できることになります。
NicoConvAssはショートカットを作っておいてASSファイルを生成したい録画tsファイルをドラッグ&ドロップするだけでASSが作成できますが、1度に1個しかドロップできず、リストを作ってバッチで処理するのも数が増えれば面倒です。
そこで、
(a) TVRockやEDCBの録画後処理で、自動的に実況ファイル(ASSファイル)を作成する。
(b) 既に録画済みのtsファイルや、それを保管したフォルダを一括してドラッグ&ドロップで一気にASS作成できるようにする。
以上の仕組みがあればより利用が簡単になると思います。
(a) の仕組みは、実は①と併用する場合には不要です。(NicojCatchが導入済であれば、録画の際にNicoJK用の実況ログが作成されて、TVRemoteViewer_VBは再生時に毎回そちらを使ってASSファイルを作成します。)
①と併用しない(NicoJK_first=0 の指定)の場合は録画後処理でASSを作成するのが便利です。ここではTVRockでの指定をご説明しますが、EDCBでも中の%1を$FilePath$と書き換えて後処理に組み込めば良いです。
まず、以下の録画後処理用バッチファイルをダウンロードし
解凍した中にある RecConvAss.bat を\NicoConvAssフォルダにコピーしてください。
次に(TvRockの場合)、設定→プロセス タブ に
TN:"C:\BON\NicoConvAss\RecConvAss.bat" "%1"
という一行を加えてください。(赤い部分は導入環境に合わせて修正してください。)
TN:は録画後何も指定がない場合にデフォルトで呼び出される処理です。もし既にTN:で指定してある処理があれば、それにこの1行を並べれば良いです。
また他の録画後処理と併せて実行する場合も、それに並べて加えてください。(例えばCOPY: という後処理が定義してあれば、その先頭に COPY:"C:\BON\NicoConvAss\RecConvAss.bat" "%1" という行を加える、など。)
RecConvAssはNicoConvAssを呼び出す際に
i) まず何もせず4分待つ。これはNicoJKから実況ログを取得する場合に、2ch2NicoJKが録画終了3分後に処理することを想定した待ち時間
ii) パラメータに NicoJKフォルダの実況ログを優先して読み込むための -nicojk 1 を指定
iii) パラメータに、(ハードサブをおこなう場合の文字の大きさに関連する)-height 720 を指定
以上の前処理やパタメータをセットします。
カスタマイズする場合、-height 以外のパラメータは特に弄る必要はないと思います。
-heightについては、これを大きくしていくと、「ハードサブ」で観る時の文字サイズが小さくなります。(「ソフトサブ」では文字サイズは端末側が再調整しますので、特にこの数字は関係ありません。)
デフォルトの-height 720だと iPhoneサイズで見るには丁度良いですが、PCやタブレットでは字が大きすぎるかもしれません。尤もPCやタブレットではソフトサブの方が便利だと思いますので、ここはむしろ(ハードサブしか使えない)iPhoneのようなデバイスを優先して決めています。
ただ、それとは別の考慮点として、-height 720程度だと NicoConvAssは、非常に密度の高い実況になった時に 「小さな画面には表示し切れない」と判断してコメントを削ってしまうことがあります。
例えば有名なこのシーン
は本来これだけの弾幕になるのですが、-height 720の設定で作ったASSファイルを大画面&ソフトサブで実況表示した場合
半分以上のコメントが削られていることが判ります。
もちろん広い画面一杯にコメントを表示させて再生するような必要がなければ削られてもあまり気にならない(むしろ読みやすくなる)ような違いなのですが、もしハードサブの利用は考えておらず、ソフトサブで大画面で再生する時のコメントも取りこぼしがないようにしたい場合、むしろ-heightは実際より大きく(例えば-height 2160 ぐらいに)しておいた方が良いです。(そのぐらいの設定だとコメントが削られることはありません。)
あるいはそういう「祭り系」映像ファイルだけ、改めて (b) のAutoAssConvに直接ドラッグ&ドロップして、ASSファイルを作り直す方法もあります。
(b) の一括処理については、(そもそもは自分用のつもりで)ツールを作成しましたので、ご活用ください。
使い方は、以下のファイルをダウンロード&解凍して、
中にある
AutoAssConv.exe
AutoAssConv.ini
MsgBox.exe
を \NicoConvAssフォルダにコピーしてください。
このAutoAssConv.exe をデスクトップ等にショートカットを作っておけば、複数ファイル/フォルダをまとめてドラッグ&ドロップして
一挙にASSファイルを作成できます。フォルダについては下の階層にある全てのtsファイルにASSを生成していきます。
処理進行中でも別のファイル/フォルダ群をドラッグ&ドロップすれば、並列で処理します。
生成が終われば図のようなポップアップで
処理したtsファイル数が表示さます。
ただし対象が数百個以上になるとそれなりに時間がかかりますので、寝る前や出かける前にまとめて仕掛けておくのがよいかと。
なお、AutoAssConv.ini を編集すれば一括処理のパラメーターを設定可能で、デフォルトでは以下のようになっています。
ここでも重要なのは上の録画後処理の場合と同じく「height=」 の数字ですので、一括で適用したいパラメータをここで指定してください。
また応用として、AutoAssConv.exe とAutoAssConv.ini の組み合わせは名前を変えたものを別の設定で動かすことができますので、例えば同じフォルダで以下のように別の名前にコピーしたものを作ってiniファイルの設定を変えた上で
AutoAssConvLarge.exe
AutoAssConvLarge.ini (例)
対象のファイルをD&Dすれば、その分だけ別の設定、例えばheightを大きくとったASSファイルに差し替えることが可能です。
以上が録画ファイルを実況付きにするためのASSファイル作成手順になります。
他に、tsファイルだけでなく録画をエンコードしたmp4/mkvファイルもASSファイルが使えますが、手順はリンク先をご参照ください。リンク先の手順ではmp4/mkvファイル用のASSをまた改めて作りますので、そちらはそちらで利用画面サイズに合せた設定が出来ます。
以上の手順で一度実況ログファイル(ASS)を作成すれば準備完了です。以後新規に録画されるファイルにもASSが自動的に作成されるようになります。
TvRemoteViewer_VB v1.24とTvRemoteFiles v1.17以降の組み合わせなら、ファイル/プレイリストの再生で通常の等倍速再生の他に
1/2 3/4 1.3 1.5 1.7 2.0 倍速
の音声付き再生ができます。
利用方法は簡単で、ファイル再生で最初から速度指定したい場合は、図の位置に緑色のボタンがありますので、
これをクリック/タップすれば(ロックが外れて)再生速度のセレクトボックスが現れます。
ここで速度を指定して「再生」ボタンを押せば、最初からその速度での再生になります。
等倍速以外の再生では、図のように視聴画面の情報パネル先頭に、現在何倍速で再生中かの情報が表示されます。
同じようにプレイリスト開始時も同じボタンが追加されていますので、
押して速度を指定してください。
プレイリストの場合は(途中で意図的に変更するまでは)同じ速度で後続のファイルも再生されていきます。
ファイル/プレイリストの再生中に速度を変える場合は、(ストリーム再起動を伴う操作になりますので)「再読込操作」ボタンから操作します。
使ってみた感じでは(番組の性格によりますが)1.5倍速程度までなら台詞もほぼ理解でき、ニュースのようにゆっくり喋ってくれるものや野球中継なら(そもそも解説をあまり真面目に聞くものでもなく絵と球場の雰囲気が味わえればよいので)2倍速でも十分実用的です。
但し、等倍速以外ではプレーヤー下の経過時間/全体時間 が意味を持たなくなりますので、ご注意ください。
これはプレーヤーが実際に再生する時間なので、等倍速以外では「ファイル本来の再生位置/全体時間」ではなくなります。
TvRemoteFiles内部ではその辺の時間補正をきっちりおこなっていますので、再生位置/全体時間は何倍速であっても正しく把握されています。あくまでプレーヤーが表示しているこの数字は正しくありません、という意味です。
TvRemoteViewer_VB v1.40以降と TvRemoteFiles ver1.27以降の組み合わせではチャプター機能が使えるようになりました。
これはチャプター移動、自動スキップと、それをナビゲーションするための進捗バー、時間表示等の周辺機能で構成されます。
① 進捗バーと時間表示の機能
チャプター機能を説明する前に、チャプターファイルの有無に関係なく、全てのファイル再生共通で新たに使えるようになった機能をご説明します。
表示は以下のようになります。
右端の時間表示は現在の再生位置の、ファイルの先頭からの経過時間です。
途中で再ロードしたり倍速再生にしても関係なく、ファイル先頭からの時間を常に表示しています。
また進捗バーは、ファイルの全体時間の中の現在の再生位置をバーで表示します。
ただし全体時間が判らない間はバーは表示されません。(とはいえ、現在はエンコード終了を待たなくてもASSファイルやチャプターファイルから全体時間を推測しますので、どちらかがあれば最初からバーは表示されるようになりました。)
エンコード進行中は、進捗バーは上の図のように青で表示されます。一方エンコードが終了すれば、バーは赤い色に変わります。
尚、途中で再ロードした状態でエンコード終了した場合、再ロード位置より前が青いバー、再ロード位置より後ろが赤いバーになります。
赤い色は再ロードせずにプレーヤーの機能だけで移動可能な範囲、青い色は移動するのに再ロードが必要な範囲になります。
この識別はチャプターを移動する際にも重要です。
② チャプター機能
チャプター機能を使いたいファイルは事前にリンク先を参考にして、チャプターファイルを作っておいてください。
リンク先でご紹介しているツールは地上波キー/系列局とそのBS/CS再放送の番組限定ですが、チャプターイン/チャプターアウト、つまり本編と思われる部分とそうでない部分(恐らくはCM)の区分け情報を自動で作成してくれます。
なお、このツールがチャプター作成できる対象はtsファイルのみですが、作成した.chapterファイルをエンコードファイル名に合せてリネーム(例えば ファイル名.QSV.mp4 なら ファイル名.QSV.chapter)すれば、mp4等でも同じようにチャプター機能が使えます。
このツールでは字幕の空き時間を評価しながら作っていきますので、たまに台詞や説明のない長いシーンやOP/EDなどを本編以外と誤検出することもありますが、TvRemoteViewer_VBのチャプター機能は自動でスキップしながら違うと思ったら手動に切り替えるなど、いろいろ気楽に使えるようになっています。
さて、チャプターファイル(ファイル名.chapter)が添付されたファイルをTvRemoteViewer_VBで再生すれtば、図のような表示になります。
今までのシークボタンの左側に、切替用の緑ボタンが追加され、SKIPと表示されたものを押せばチャプタースキップのボタンが表示できるようになります。
SEEKと表示されたものを押せば元ののシークボタン表示に戻ります。
エンコード途中の状態ではこのように青いボタンに指定先チャプターの時間が表示され、これを押すことで(リロードを伴った)チャプター移動ができます。
自動スキップはチェックはできますがグレーアウトしており、該当時間帯に差し掛かっても発動はしません。
一方、エンコードが終了していれば、表示がこのように変わります。
インターフェースは殆ど同じですが、チャプターを移動するのに改めて青ボタンを押す必要は無く、最後にチャプター指定ボタンを押した4秒後に自動的にチャプター移動が発動します。
(もし取り消したい場合は、4秒以内に「SEEK」ボタンを押してボタンを切り替えてください。)
また自動スキップが働くようになり、図のようにチャプターイン/アウトに囲まれた領域をスキップするようになります。
いわゆるCMスキップ機能として使えますね。
なお、ファイル再生途中でリロードをおこなった場合、エンコード完了後の進捗バーは以下のような表示になります。
つまりプレーヤーの機能だけで移動できる範囲とリロードを伴った移動が必要な範囲が混在することになりますが、このチャプター機能では移動先によってどちらになるかを自動判断し、それに合わせてボタンの色も変わります。
以上がチャプター機能の概説になります。
11)二ヶ国語放送(または録画)で日本語/英語音声を選択する。
日本の放送では、二ヶ国語放送の際に(番組表には[二]のように表記されます。)、おおまかに2つの方式のいずれかを使います。
Inputがチューナーで受信したストリームです。(これ以外に映像ストリームがあります)
①は(アナログ放送時代からなんとなく引き継がれた方式として)本来右左の音声を流すチャンネルでそれぞれ左に日本語、右に英語の音声を流す方式で、当システムのデフォルトでは左右から日本語と英語の音声が同時に聞こえます。
②はデジタル放送になって実現した、音声ストリームを2つ作ってそれぞれステレオで日本語、英語を流す方式で、当システムのデフォルトでは日本語のみがステレオで聞こえます。
どちらの方式を使っているかは局によって違い、またNHKのようにニュースでは①、映画やドキュメンタリーでは②の方式を混成で使っているケースもあります。
①の場合は左右のどちらかを選べないと二ヶ国語が混ざって非常に聞き取りにくくなりますし、また②の方式で敢えて英語の音声を聞きたいケースもあるかもしれません。
そこで当システム最新版では、TV視聴時に言語を選べるように以下のような選択肢を付けました。
ここでデフォルトの「主・副」を選べば
- 二ヶ国語放送でなければ通常のステレオ音声
- ①Dual Mono Modeであれば左から日本語、右から英語音声
- ②ステレオ二ヶ国語であれば日本語のステレオ音声
になります。
「主」を選べば、いずれの場合も日本語(モノラル)が左右から聞こえ、
「副」を選べば①Dual Mono Modeであれば英語、それ以外であれば日本語のモノラルが聞こえます。
「音声2」を選べば
- ②ステレオ二ヶ国語であれば英語のステレオ音声
- それ以外であれば基本は無音、但したまに「解説音声」が聞ける番組もあります。(NHK朝ドラなど番組表に「解」の表記があります。)
どのパターンかの自動判別は残念ながらできませんが、判らないときはとりあえず「主・副」でスタートしてみて、二ヶ国語が混じっている場合は①のパターン、二ヶ国語放送の筈なのに日本語しか聞こえない場合は②のパターンとして、再度言語を選択すれば良いと思います。
視聴画面では以下のセレクタで言語を選択し直してストリーム再スタートすることができます。
これらはファイル再生でも基本的に同じですが、放送の生ストリームを録画したTSファイルと、それをエンコードしたMP4、MKV等では、扱いが少し異なります。
TSファイルであれば上記のストリームがそのまま保存されていますので、選択肢も同じで、再生開始時に以下のセレクタで選択します。
プレイリストでも各ファイルでデフォルトの音声選択ができます。
再生中にもこの選択は「再読込操作」ボタンからいつでも変更できます。
またプレイリストの場合、この「再読込操作」で設定値と異なる音声トラックを選択した場合、以後のファイル再生でも(再度変更しない限り)、その選択が引き継がれます。
ただ、ファイルが二ヶ国語放送のTSファイルを元に、例えばMP4やMKVの形式にエンコードされていると、以下のように少し形式が異なってきます。
これは①Dual Mono Modeと殆ど同じに見えますがシステム的な扱いは少し違っていて、音声はストリームもチャンネルも1つで単なるステレオ音声として記録されています。
ここから日本語/英語だけを再生するために、それらのファイル形式の場合は(似たような選択ですが)「主(L)」 「副(R)」の選択肢が表示されるようにしました。
これで二ヶ国語放送の録画をエンコードしても、音声言語の選択ができます。(なお、「音声2」は通常のエンコードでは破棄されます。)
この辺は元のTSと同じような使い方なのですが敢えて説明したのは、(普通にエンコードすればこうなる筈なのですが)、人によっては(音声の品質を重視して)エンコード時に音声は敢えて元のストリームから変換しない、つまり「AACパススルー」を使う場合もあります。
また「音声2」も保存するために、MP4/MKVでも音声を2ストリームで作成している場合もあるかもしれません。
そういった場合この「主(L)」 「副(R)」方式では日本語・英語の分離はできませんので、下に「passthru」の選択肢を加えました。これはTSの場合の「主」「副」「音声2」と同じ処理をおこないますので、そういったケースでも問題なく扱うことができます。
(逆にそういった事をしない場合はpassthruの選択肢は無視して構いません。というか、使っても効果はありません。)
この機能は従来のバージョンでは端末を海外で使うことを想定して、時差を手設定して日本時間で進行していく番組情報を適切に処理できるようにしていました。
しかし、TvRemoteFiles ver1.14以降ではその時差情報を自動で取得できるようになりましたので、設定不要になりました。(なんでこんな簡単なjavascript機能も知らなかったのか・・勉強不足です。。)
以下は過去記事でタイムゾーン設定する理由を書いた部分ですので、一応残しておきます。
================
当システムはロケフリなので、当然海外出張や旅行の際にもLAN/WiFiの環境さえあれば、PCやタブレットから日本に居る時と同じようにテレビや録画を視聴でき、結構便利だと思います。(アクセスの料金体系にはお気をつけください。今はホテルで自由に使えるLAN/WANの環境がかなり充実していますので、その辺の安価で帯域十分な回線が確保できれば、殆どストレス無く使えるようになります。)
この場合、PCやタブレットが日本時間のままなら環境として何も変わらないのですが、それなりの期間滞在する場合は現地時間にシステム時計も修正していくと思います。(現地のスケジュールは当然現地時間がベースになりますし、そうやって現地時間に全てを合わせていかないとなかなか時差ボケも抜けません。)
そういう時に何が問題になるかと言うと、端末側(javascript)のプログラムが更新している番組情報や実況サーバの接続が本来の日本時間のタイミングに合わず、タイムリーに切り替え出来なくなるため、番組情報がなかなか切り替わらなかったり、実況も日本時間の4時に切れたままになったりという現象が起きます。
海外旅行なら旅先でわざわざ日本の番組ばかり観ていては異国情緒にも浸れないので、余り多用はお勧めできませんが、海外出張でしかも長期となると、ある程度現地のテレビとか限定的な日本語放送に慣れては来ても、やはり日本の番組が恋しくなりますし、実況付きでリアルタイムに観られるとなると尚更価値が出てくると思います。
================
ということで海外での使用も便利ですが、現在は時差を意識することなく当システムが自動で現地時間との時差も換算しますので、より気軽に使えるようになりました。こういうのも手軽に使えるという便利な時代になりましたね。
端末ごとにお好みに合わせて、テレビやファイルの視聴画面を常に別ウィンドウでポップアップさせるような設定ができます。
設定はトップの管理タブでおこないます。
この設定にした場合、番組表やファイル再生画面の「視聴」ボタンでストリーム開始したり、既存のストリームのボタンを押したタイミングで、図のように最小限の装飾かつ視聴画面サイズに適正に合せた別ウィンドウが立ち上がります。
番組表やファイルリストを常に表示したままで視聴画面を、必要があれば複数起動できる点も便利で、リンクのように番組表/ファイルリストを(視聴画面のサイズとは関係なくなりますので)見やすい大きさで縦長にしてデスクトップに並べておいて、観たいものがあったらいつでもそこから起動、という使い方もできます。
但し、この機能はタブレットやスマホでは(そもそも非マルチウィンドウで、動画表示も同時に1画面しかできないので)あまり意味がなく、またスマホ/タブのブラウザでは「閉じる」ボタンがうまく働かないような問題もありますので、主にPCやMac向けの機能と考えてください。
ウィンドウサイズは画面起動時に適正に調整されますが、ズームで動画エリアを調整したり、サイドパネルをON/OFFした場合には、ウィンドウの枠をつまんでサイズ調整しても良いですが、もっと簡単な方法として画面の再読み込みをおこなうだけで、ウィンドウサイズが適正に修正されます。
再読み込みは「再読み込み」ボタンを押すだけで良いのですが、押しにくい位置にある時は図のように
Chromeでは上辺のバーで右クリックから選択できますし、Firefox/Opera/Safariではページ内の(映像以外の)エリアで右クリックすればメニューから指定できます。
なお、ポップアップ型に切り替えた直後、ブラウザによっては「視聴」ボタンを押しても視聴開始できない場合があります。
これはブラウザがセキュリティの観点でポップアップを弾いているのが原因で、よく見るとポップアップブロックのメッセージが表示されている筈ですので、速やかにポップアップを許可してください。なおトップ画面はOKでもファイル再生画面ではブロックされる事もありますので、視聴画面が立ち上がらない場合は都度、それぞれの画面で許可してください。(ちょっと面倒ですが最初だけです。)
Chromeではこのようなメッセージが表示されるのでクリックして
Firefoxではこのようなメッセージが出るので、「設定」から許可する。
ポップアップ型画面の通常との流れの違いを以下の図にまとめました。
ポップアップ型に設定した場合、視聴画面からトップ画面や番組表画面への遷移は(操作系が混乱するだけですので)出来ないようになっていて、代わりに「閉じる」というボタンが加わります。
ファイル/プレイリストの再生時には前述の所有権受け渡しが円滑におこなわれるよう、視聴終了時にはウィンドウをボタンで強引に終わらせるのではなく、できるだけ「閉じる」ボタン又は「(この)ストリームを終了する」ボタンを使うようにしてください。
視聴画面でのチャンネル/ファイル切替えや別ストリームへの切替えは今まで通りになります。
ちょっとした機能ですが、TvRemoteFiles v0.57U以降、でお休みタイマを付けました。
使い方は簡単で、視聴画面で下の操作バーに「タイマ」のボタンがありますので、これをクリックしてください。
すると「時間のセット」→(タイマ稼動中)「タイマの取り消し」の順にボタンが切り替わります。
これは私自身が欲しくて付けた機能なのですが、スマホやタブレットで「ながら視聴」しているうちに、うっかり映していることすら気にならなくなってしまい、必要もないのに長時間付けっぱなしになってバッテリー切れを起こす事があります。(スマホ・タブレット・PCとも、動画が動いている間は画面スリープに移行しない設定になっている事が多いですので、バッテリー消費も多くなります。)
そういう場合、予めタイマをセットしておけば良いわけです。セットしても視聴を続ける時は簡単にセットし直すことができます。
また、私は寝る時にナショジオ等の録画を流したまま寝ることが良くあります。(教養系の番組は刺激や音量変化が少なくいい具合に眠れます。決して学生時代に授業中居眠りしていたのが子守唄として身に染み付いている訳ではありません。)
今まではTVTestの「スリープタイマ」の機能が使いやすく、VLC等と外部のタイマソフトの組み合わせで使うよりずっと手軽な反面、MP4のファイル等の再生には使えないのが弱点でした。そのTVTestと同等に簡単、かつ更に汎用的なタイマが欲しいという発想です。
javascriptそのものの機能では機器/OS個別のスクリーンOFFやスリープ機能を直接起動はできませんので、設定した時間になったらストリーム終了(但しファイル視聴のストリームは、存続してもシステム負荷が殆どないため保持)の上で、視聴画面を終了させ、専用の黒背景のシンプルな画面に移行するという形になります。
黒のブラウザ画面では只の誤魔化し、という声もあるかもしれませんが、動画が終了すればスマホ/タブレットでは程なくスクリーンOFF/休止状態に移行しますし、PCでも(動画表示中は保留されていた)スクリーンOFFやスリープ移行のタイマが(設定されていれば)働き始めます。
実際のハードの制御はこの辺に任せる、という発想です。
TvRemoteViewer_VBサーバーはストリームごとに配信用のファイルをエンコードしながら作成していきますので、それなりにサーバー負荷が掛かります。
しかし例えば解像度を低くする、ストリームの数を1個に絞る、ファイル・ストリーミング時はass(実況ログ)の焼き込みをおこなわない、等の工夫で、ローエンドCeleronのような非力なサーバーでも実用的に使うことが出来ます。
(テレビ視聴での実況表示は端末側が独自に取得しますので、サーバー負荷には関係ありません。)
ただしバージョンを重ねるにつれて、視聴中も単にストリームを受け取るだけではなく裏でいろいろな処理が動くようになってきたため、このような工夫でなんとか動かしている場合だと、特に視聴開始時のサーバー使用率が100%に張り付くケースが出ています。
そこでそのような非力なサーバー用に、できるだけ負荷のかかる裏の処理を減らすモードを追加しました。
設定にはトップ画面の管理タブで、以下のチェックをおこなってください。
これがチェックされた端末では、視聴画面が
① 番組表の問い合わせを行なわない。
② ストリーム監視を10秒間隔から20秒間隔に変更する。
③ ファイル再生では再生状態の監視と記録を20秒間隔から1分間隔に変更する。
という動作に変わります。
但し、①によってサイドパネル番組表の機能と、実況勢いウインドウクリック/タップでの番組情報表示、およびチャンネル直接切り替えの機能は使えなくなります。
また②では現在動作中の他のストリーム情報の更新が遅くなるほか、他の端末の操作で視聴中のストリームが不意に停止したり、チャンネルを切り替えが発生した場合に「自分のストリーム消失を検知して視聴画面を終了させる動作」や、「自分のストリームの変化を検知して画面の再ロードをおこなう動作」 が遅れ、結果として(PC視聴の場合)Flashがハングすることがあります。その場合ブラウザ上部にFlashハングのメッセージ
が表示されますので、ボタンを押してFlashを一度停止させれば、再びページ移動や再ロードなどの操作ができるようになります。
この辺は負荷を下げることとのトレードオフとしてご了解いただければ。
ほかにサーバー負荷を軽減する方法として、HLS_optionファイルの差し替えもご紹介しておきます。
TvRemoteFiles ver1.04以降では一部のAndroid端末での再生不良を解決した新しいHLS_optionファイルを使っていますが、ファイル再生のエンコード中はサーバー負荷が少し重くなる傾向があるようです。
これは負荷が重いからと言って悪さをするわけではなく、(エンコード自体の仕様は変わらずセグメンテーションを調整しているだけの違いなので)一時の負荷が増える分エンコード終了までの時間も短縮されますが、サーバーの発熱を少しでも抑えたい等の理由があり該当のAndroid端末対策も不要な方は、改修前の古いHLS_optionファイルをダウンロードして\TvRemoteViewer_VBフォルダ直下に差し替えてみるのも1つの選択肢になると思います。
(但し繰り返しになるかもしれませんが、ファイル再生時のエンコード負荷が高いと言うのはそれだけ有効にCPUを使いに行ってる訳で、タスクの優先度自体は低いので他の処理に影響を与える訳でもなく、あまり気にしなくても良いと思います。)
TvRemoteViewer_VB v1.14で追加されたWEBインターフェース・ログの機能を使って、サーバーイベントログを表示する機能を追加しました。
トップ画面管理タブの一番下に「サーバーイベントログ」というボタンがありますので、
通常はあまり使わない機能ですが、何か動きがおかしかったり視聴が開始できない時に、この画面でサーバーの動きを調べることができますし、掲示板で問い合わせる時もこの情報が役に立つと思います。
この画面は別ウインドウで起動し、「閉じる」で終了します。スマホやタブレットでも一応使えますが、「閉じる」ボタンが効かない場合がありますので、その際はブラウザの機能を使ってウインドウを閉じてください。
ここに表示されるログはTvRemoteViewer_VB の設定画面下
に表示されるものと同じです(但し自分自身のリクエスト/WI_SHOW_LOG.htmは省略しています)が、サーバー画面ではログがどんどん流れていくのに対してこのWeb画面では(意図的に)「更新」ボタンを押さない限り表示更新しない仕様になっています。
また簡単なログ分析機能として、サーチ機能を付けました。サーチ動作自体はファイル再生画面用のサーチ機能に準じますので、そちらをご参照ください。
サーチが効いている状態で「更新」ボタンを押してもサーチ条件は維持されますので、特定イベントだけを監視したい時にメッセージフィルタとして使えます。
例えば図では2つのキーワードを指定することで、特定のストリーム配信の進行を監視しています。
またサーチ結果に出てきた特定のイベントの前後のログを知りたい時は、そのイベントをクリックして選択状態にした後、
「クリア」ボタンでサーチ条件を解除すれば、
選択したイベントが画面中央あたりに表示された状態になり、その前後のイベントも表示されますので、ログの分析に役立ちます。
トップメニューで「手動配信」のタブを押すと、図のようなメニューが表示されます。
ここからストリーム番号とBonDriver 、および解像度を選んで配信をスタートさせることができます。
ただしこの手動配信でしか出来ないような事も特にないので、今となっては何かうまく動かない時のテスト用途以外では使わないと思います。
トップメニューの管理タブにある設定項目の使い方は、各機能に紐付くものはそれぞれの説明の中にありますが、ここではそれ以外の機能について説明いたします。
① ストリームの管理
ここで現在Activeなストリームの一覧を見て、既に不要になったものは個々に、あるいは全部のストリームを停止させることができます。
ストリームの停止だけであれば視聴画面でも出来ますが、ここは各ストリームの内容と使っているBonDriverの情報を見渡すことができる唯一の画面ですので、ストリームの状況をチェックしながら整理するのに便利です。
ストリームを動かしっぱなしでも別に回線を浪費する訳でもなく、観たい時にすぐ観られる状態なのはある意味便利なのですが、サーバ側のCPU負荷は(それなりに)ずっと掛かっていますし、また同じBonDriverを使いたい録画タスクがタイマーで立ち上がった際に、該当のBonDriverをこちらが握りっぱなしなのはまずい場合があります。
(Spinel経由で録画タスク側に優先権を持たせてあれば、競合しても単にチャンネル制御権を奪われるだけですが。)
そういう事もありますのでときどきこの画面でチェックして、必要のなくなったストリームは忘れずに停止させると良いと思います。
② 背景画像と背景色の選択
TvRemoteViewer_VBの端末側はブラウザの機能だけで動いており、現在のHTML5やJavascript/JQuery/Ajaxの機能の豊富さ/パフォーマンスの高さを我ながら実感していますが、(つまらない話かもしれませんが)「余白」の部分がブラウザデフォルトの白い背景のままだと、
いかにもブラウザの中に間借りしてます、という風にちょっとプアな感じです。
ちなみにこれも関係のない話で、最近往年のWinampの機能をHTML5とJavaScriptだけで動かしてしまった、という話もあって、技術的には結構参考になります(しかもやっぱりIEは対象外orz)が、それに対する反応が「良くやった」という声より、単に「ブラウザの枠が邪魔」という感じなのは笑えました。まあWinampはブラウザで動かす必然性が少ない(しかもローカルファイルを開く仕様は実はプラットホームフリーではない)のも事実ですが、ブラウザ上でアプリ実装する場合はやはり単に箱庭的なアプリではなく様々なブラウザ画面サイズを活かした機能域のスケーラビリティ (つまり小さい画面なら小さいなりに、大きければより広さを効果的に使う工夫)も必要で、加えて空白部の装飾も重要ですね。
そういう事の対策と言えるほどの大した機能ではありませんが、以下のように背景画像や背景色も指定できるようにしました。ここで指定した背景はトップメニューと視聴画面、およびファイル選択画面で有効になります。
背景イメージはTvRemoteViewer_VBの\htmlフォルダに入れておけばここのプルダウンに出てきますので、好きなものを選んでください。解除するときは空欄を選択すればよいです。
背景色は背景イメージが指定されていない時に有効です。プルダウンでカラー名を選ぶことができます。
モノトーン系とか赤系・青系のように分類されていますので、いろいろ試してみてお好みのものを選んでください。
(何故ここでカラーチャートのような形にせずカラー名で選ぶようにしたのか?という点については、何となく名前で選ぶ方がどんな色になるのか楽しいんじゃないかと。。)
当システムを使えはスカパープレミアムも、(BonDriverの使えるチューナーをお持ちであれば)ここまでの手順そのままでリモート/モバイル機器で視聴することが可能になります。
(上のスライドスイッチにスカパープレミアムのみを表示する"PS"という選択肢が加わりました。)
といっても私自身スカパープレミアムの受信環境を持っていませんので、チューナーの設定/RecTask/EDCB(TVRock)の設定等についてあまり語れませんが、その辺は以下のサイトに
http://dtv.air-nifty.com/sphd/blog_index.html
とても詳しく説明されていますので、これから導入されるかたはぜひご参照ください。
また、当システムでの利用法もこちらに解説していただきました。参照がループするのもどうかと思いますので、設定手順そのものについては該当箇所をご参照いただくとして(但し現在のバージョンでは TvProgramEDCB_channels = の設定は不要になっています) 、ここでは特に、地上波/BS/CS110とスカパープレミアムの共存環境を想定してTvRemoteViewer_VB ver1.12以降に追加されたパラメーターを解説します。(といっても、本質的に1ヶ所だけ。)
共存環境で問題になるのは、以下の2点です。
① RecTaskの使い分け
スカパープレミアムは地上波/BS/CS110とはスクランブル解除の方式がB1とB25と異なるのですが、RecTaskはEDCB、SpinelやTvTest0.9.0 と違って1つのインスタンスで両方の処理の共存はできません。スカパープレミアムのスクランブル解除にはRecTask for SPHDを使いますので、1つのTvRemoteViewer_VBで共存させる場合は、他の放送波(B25)用のRecTaskとは分けて立てる必要があります。
(共存ではなくスカパープレミアム専用のTvRemoteViewer_VBを別個に立てる場合は、それぞれで今までの手順通りにRecTaskを(ポート番号を分けて)立てればOKです。
また、Spinel側でスクランブル解除するならRecTask1個でもOKです。Spinel側の解除では衛星チューナー同時使用数が3個以上になると負荷が重くなる弱点がありますが、SpinelではBonDriver_Spinel毎にスクランブル解除をSpinel側に依頼するかしないかの指定ができますので、例えばB1対応のRecTaskが手に入らない/うまく動かないような場合、1つのRecTaskに纏めた上でプレミアム用のBonだけB1処理をSpinelにやってもらうという選択肢もあります。)
このシステムで使うRecTaskが1個だけの時はここまでの説明通りの手順になりますが、共存環境でRecTaskを2個立てる場合、地上波/BS/CS110用のRecTaskは従来の設定画面で指定する一方、スカパープレミアム用のRecTaskは、TvRemoteViewer_VB.iniの
にて指定する必要があります。(逆の指定にならないようご注意ください。)
② 番組表の使い分け
EDCB、TVRockとも、地上波/BS/CS110とスカパープレミアムの両方を管理対象にすることができます。(但しTVRockは対象放送波が3波までなので、RDCTを使って地上波とBS/CSを1つのチャンネル空間にまとめる等の工夫が必要です。そもそもプレミアムの利用はEDCBを使う情報が多いかと)
といっても共存環境だと放送局が非常に増えますし運用も異なると思いますので(当システムではEDCB、TVRockとも対象は1インスタンスということもあり)TVRockで地上波/BS/CS110、EDCBでスカパープレミアムを分担させるのも1つの方法になります。
その場合、現在は特別な設定は必要ありません。それぞれを分けて立てた上で、EDCB、TVRockそれぞれで必要なiniパラメータをセットするだけでOKです。
また、特にスカパープレミアム用という訳ではないのですが、チャンネル数が増えて観ない/契約していないチャンネルも多くなるということで、当システムの番組表から除外する指定がより有効になると思います。その場合iniファイルではもともと表示除外のパラメータ
TvProgramEDCB_NGword TvProgramTvRock_NGword
とEDCBから番組情報を取得しないパラメータ
TvProgramEDCB_ignore =
があり、今回のスカパープレミアム対応を機に、これらに局名ではなくサービスIDで指定することが可能になりました。
サービスIDが判らない時はRecTaskのch2ファイルを見ればわかります。
サービスIDで指定すれば正確なマッチングができますし指定もシンプルになりますので、この辺もご活用いただければと思います。
.
以上で一通りの操作手順の解説は終わりです。特に視聴画面についてはプラットホームによって微妙に使い勝手が違いますので、まずは使って慣れるのが早道だと思います。
.
3.外部から家庭内LANにアクセスして視聴するためにDynamicDNSとVPNを設定する
さて、1.の設定が終わっていれば、家庭内のLAN環境であればスマホ/タブレットでもPCでも、同じ手順でストリームを視聴できるようになります。
これを家の外から使うためには
・外部インターネットから家のLANに"セキュア"な「通り道」を作って、"192.168.*.*"のような「家庭内プライベートアドレス」へのアクセスをそちらの通り道に誘導する仕組み(VPN)
・その「通り道」を確かに家のルーターに向けて張るために、家のルーターに割り振られた(しょっちゅう変化する)「グローバルIPアドレス」にドメイン名でアクセスできるようにする登録サービス(DynamicDNS)
以上が必要になります。
これらを準備しておけば、外からでも家のルーターに与えられたドメイン名を使ってアクセスして、ID&パスワードで(内部LANと)「接続」すれば、あとは家の中のLANに接続したのと同じ状態になりますので、全く同じ手順でストリーム視聴ができるようになります。
(違うのは回線の太さだけですので、無理のないビットレート(=解像度)指定などをおこなってください。またイントラネットからアクセスする際は、ご家庭のIPアドレス体系と重なっていないことをご確認ください。)
なおつまらない事ですが、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経由では外部インターネットに繋がらなくなってしまう。)
これは別にルータVPNを使う場合でも同じで、(この設定にしなくても繋がりますが)インターネットアクセス全てがご自宅のルーター経由になるわけで非効率ですし、その経路ではイントラネットからご自宅にアクセスしている場合はイントラネットに繋がらなくなりますので、とくに理由がない限りこの設定にしてください。
またWindowsVPNでもルーターVPNでも大抵はPPTP接続ですので、PPTP以外のIPSecやL2TPをうっかり選択しないよう、ご注意ください。
主に家庭内で視聴する場合は高めの解像度で問題はありませんが、リモート視聴を予定さていれる方は、家からプロバイダへのアップストリームの帯域、および利用する端末がそれぞれの場所で使える帯域をよく考えて、余り無理のない解像度を選んでください。各解像度のモードでストリームあたりに必要な帯域は以下の通りです。
アップストリームについては例えば、10Mbpsのアップリンク帯域がある場合は最高の解像度[1280x720]でも3本のストリームを同時配信できますが、ADSLのように数百Kbpsのアップリンク帯域しかない場合は、見合った解像度をデフォルトに設定しておく方が無難です。
うっかり能力を超えた解像度に気付かずに動画開始しようとすると、画面が妙に重くなったり、バッファリング中の車輪が延々と回転するだけの状態になります。
またビデオのシーク時には部分的とはいえビデオファイルの中の情報を舐めていきますので、ビットレート/帯域 に余裕がないとシークや頭出しのレスポンスが悪化する点にもご注意ください。
逆にそういう現象はこの解像度の選択が原因というケースが多いですので、そういう場合視聴画面からもう少し軽いビットレートの解像度を指定し直して(→TV視聴時、ファイル再生時)、ストリーム再起動すれば良いです。
仮に回線の状態が悪くても最も軽い[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から使えるようになります。
以下で利用手順をご説明いたします。
① 動作環境
(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.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フォルダでも可) の中身を丸ごとコピーしてください。
以上でTvRemoteViewer_VB を再起動すれば、BonDriver_Spinel/RDCTを使う環境が完成します。
.
終わりに
この記事はほぼTvRemoteViewer_VBあってのものですが、端末側機能(TvRemoteFiles)と、4章のGenBonSprは私謹製ですので、使い勝手など気が付いたことがあれば教えてください。。(^^ゞ
TvRemoteFilesの機能は私自身まだあれこれ構想中だったり、こうしたいと思っても体力がついていかなかったりで思うようになりませんが、ゆくゆくは2ch実況なども組み込みたいですね。
といっても結構大胆なロジック追加と端末負荷の軽減が難しいところですが、2ch実況の特長は野球/サッカーの実況板の存在だと思うので、その辺のシーズンまでには何とか・・と思っています。あてになりませんが気長にお待ちください。(←期限未定のテスト機能ですが、実装しました。2015/4/22)
尚、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/6/26 TvRemoteFiles ver1.28
1) 1) 2ch実況板のアドレス変更に対応しました。(これだけが目的の方は、HTMLフォルダの2chThreads.json のみを入れ替えればOKです。)
2) Chromecastプリビュー版を載せました。ストリーム指定して映すことができます。但し主にWindows版のChromeでの制御のみ乗せています。
・2015/6/16 TvRemoteFiles ver1.27
1) チャプター機能を追加しました。 チャプター移動、自動スキップ、チャプターナビゲーションバー等。自動スキップはエンコード終了後に利用可能になります。
ファイル先頭からの時間表示とナビゲーションバーはチャプターの無いファイルでも表示されます。
2) 実況の多いファイルでストリーム起動に時間がかかる時にファイル管理情報が消えてしまい、ストリームが操作できなくなるバグをfixしました。
3)その他細かいバグをいくつかfixしました。
・2015/6/6 TvRemoteFiles ver1.26
1) 表示しているコメントの数が上限値に達した時のロジックを、表示中のコメントを流してから次のコメントを表示する方式に変更しました。
その間のコメントは間引かれますが、表示されるコメントは右側に偏ることなく、左端まで流れるようになります。
2) コメント表示数上限値を10~320で調整できるようにしました。(従来は40~320)
・2015/5/30 TvRemoteFiles ver1.25
1) 番組表ポータルに表示するチャンネルをcookie保存からサーバー保存に変更し、各端末で共通としました。
2) ファイル再生時のソフトサブ表示で、改行のASSオーバーライド・コードに対応し、また改行無しの120文字を超える コメントは表示しないようにしました。・2015/5/20 TvRemoteFiles ver1.24
1) いくつかのffmpegパラメータを見直しました。
①yadifのインターレース解除フィルタを、640x360以上の解像度にも適用しました。SD放送でのインターレース縞も抑止するためです。
②256x144L解像度でffmpegの一部のパラメーターを見直し、ほぼ額面通り100kbpsのビットレートになるようにしました。(従来150kbps程度だった。)
2) ブラウザの「戻る」ボタンによる画面遷移を抑止しました。厳密な禁止ではなくうっかり操作で戻らないようにするのが目的です。
・2015/5/17 TvRemoteFiles ver1.23
音声選択を全面的に改訂。従来解像度選択の際に(_Main _Sub)で日本語/英語音声の選択も出来ましたがその選択を無くし、全て音声選択に統一しました。NHKモードの表記は無くしました。
\HTMLフォルダ下のファイルの他に、\TvRemoteViewer_VBフォルダ直下のファイル(HLS_option.txt、HLS_option_ffmpeg_file.txt)も更新してください。
1) TV視聴時は「主・副(デフォルト)」 「主」 「副」 「音声2」 の4種類の音声選択ができます。
2)ファイル/プレイリスト再生時は、TSファイル再生では1)と同じ選択肢になります。
放送をエンコードしたMP4ファイルで(左右のスピーカーから)日本語と英語の両方が聞こえる場合は、「主(L)」 「副(R)」 で音声言語が選べます。
但しMP4エンコード時にAACパススルーやマルチ音声チャンネルで出力している場合でもTSと同じ選択ができるよう、passthruモードも付加してあります。
3)プレイリストではリスト作成時にファイル毎に2)を設定できる他、再生中に音声選択を上書きした場合、以降のファイルでもその選択が引き継がれます。
・2015/5/14 TvRemoteFiles ver1.22
2ch実況のカラー選択にランダムモードを追加
・2015/5/12 TvRemoteFiles ver1.21
1) 従来NHKのチャンネル選択時だけ表示されていた音声トラック・セレクタ(主副/主/副)をどのチャンネル選択時でも表示するようにしました。
2) Tvmaidに対応しました。TvRemoteViewer_VB v1.32以降が前提になります。(それ以前のバージョンだとボタンの位置に%TVPROGRAM-TVMAID-BUTTON%の文字が表示されてしまいます。)
TvRemoteFiles ver1.20
1) ファイル選択画面にフォルダ・ビュー機能を付けました。
2) ファイル選択画面のファイルリストを最新状態にするための、「最新リストに更新」ボタンを付けました。
3) ソフトサブのロジックを改修し、タブレット/スマホ環境で数MBに達するような大きなASSファイルの読み込みが終わらない事があった点を解消しました。
4) Android端末でソフトサブを使う場合、ファイルのエンコードが完了した時点でタイミングの誤差がほぼ解消する事に対応してタイミング調整バーを0にリセットするようにしました。
5) ソフトサブでサイドパネルの情報ウィンドウに(コメント勢い/1分間)の数字を表示するようにしました。ファイル先頭から1分を経過した時点から表示されます。
・2015/5/7 TvRemoteFiles ver1.19
ファイル/プレイリスト再生
1) ファイル/プレイリスト再生時の実況組み込みに、従来のハードサブに加えてソフトサブ(ニコニコ実況や2ch実況と同じく端末側の仕組みのみで再生し、サーバーに負荷がかからない)機能を追加した。
2) 番組の終了9分前になったら、番組表の詳細欄に次の番組を表示させるようにした。
・2015/5/1 TvRemoteFiles ver1.18
ファイル/プレイリスト再生時に等倍速再生以外ではassハードサブを抑止していたロジックを除去。どの再生速度でも実況付きで再生できるようにした。(サーバ側v1.26以降が前提)
・2015/4/30 TvRemoteFiles ver1.17
1) ファイル/プレイリスト再生で0.5~2.0倍速の可変速再生をサポートした。
2)動画をAutoStartさせるか否かのチェックボックスを無くし、常にAutoStartさせるようにした。併せて実況もAutoStartにした。ストリームAutoStartできない端末でも簡単に動画スタートできるよう「ストリーム開始ボタン」を表示させる仕組みにし、その出現位置を指定できるようにした。
3)トップ画面を表示したままスリープさせた時に、復帰の際ファイル/プレイリスト再生ストリーム情報をストリーム一覧から消してしまう事がある、というバグをfixした。
・2015/4/24 TvRemoteFiles ver1.15
1)ptTimer対応 (TvRemoteViewer_VB 1.21以降が前提。それ以前のverだとトップページに%pttimer%の文字が表示されてしまいます。)
2)2ch実況機能のいくつかのバグをfix (スレ指定モードで適切な次スレが見つけられない、実況自動スタートがうまくできない、一部チャンネルで2ch実況の開始ができない、等)
・2015/4/21 TvRemoteFiles ver1.14
1)2ch実況機能の追加
2)実況機能全般の改良。
・最大同時コメント表示数(従来40)を40~320で調整できるようにした。(変更したらボタンの数字が赤くなるのでクリックで実況プレーヤーをリスタートさせること。)
・コメント出現位置が画面サイズが大きくなると中途半端な位置になっていたのを右端になるよう調整。以上でコメントが右端から左端まで流れるようにした。
・ニコニコ勢いをAPIで取得するようにしてより正確な数字にした。(従来ニコニコトップページから取得していた。) 更新間隔を1分→30秒にした。
3)海外時間での時差を自動取得するようにし、トップ管理画面の時差設定項目を削除した。
4)一部環境で視聴中に突然トップ画面に戻る現象の対症療法として、トップ管理画面に「監視機能をカット」するチェックボックスを付けた。
・2015/4/8 TvRemoteFiles ver1.13
1)TS,BS,CS,プレミアム共存状態での番組表安定化に関するfix(1.12A~1.12C)を集約。番組表組み立てを小さなスレッドに分け、例外事象で処理が止まらないようにしました。
2)いくつかの小改修。(サーバーイベントログでの検索除外(-)が機能しなかった点のfix、assハードサブの有無チェックを記憶するようにした。番組表でおかしな時間表記があっても適切に処理するようにした)。
・2015/4/5 TvRemoteFiles ver1.12
1)サーバー低負荷モードでファイル再生時の動作特性を追加し、エンコード終了チェック頻度(20秒→60秒)、ハートビートおよび再生位置の書き込み頻度(20秒→50秒)の低減によってサーバー負荷を下げる方向にチューニングしました。
2)Rockバー型番組表で放送波別の表示をオプションにし(トップ画面管理タブで「放送波別に番組表を表示」をチェックした場合のみ)、標準では受信したWI番組表の内容を全て表示するようにした。
・2015/4/4 TvRemoteFiles ver1.11
1)サーバー低負荷モードを追加しました。視聴中のサーバー負荷を下げるため、視聴画面での番組表取得を行なわず、ストリーム監視の間隔も10秒→20秒に変更します。このモードではサイドパネルの番組表機能や、コメント勢い欄からの番組内容表示やチャンネル切り替えは使用できません。
2)サーバーイベントログ表示機能を追加しました。
・2015/4/2 TvRemoteViewer_VB 最新版の機能に合わせ記事を改訂しました。最も大きな違いは、チャンネルマッチング用の定義が不要になり、導入手順がより簡単になった点です。
TvRemoteFiles ver1.10
1)番組表全般のロジックを改善。エラーデータへの対処を強化。
2)旧番組表は分離して動作を軽くし、Rockバー型の番組表はEDCB/TVRock/地デジ共用でProgramTable.htmlを新設。同じく旧番組表のロジックから完全に分離させて動作を軽くしました。
3)トップページと視聴画面の番組表で、従来TVRockの番組表が取得できた場合はEDCBの番組表の取得はしないロジックでしたが、共存環境を想定して、両方が接続されている場合は順に両方から取得するようにしました。チャンネル表示順のカスタマイズも両方合わせてできるようにしました。
・2015/4/1 TvRemoteFiles ver1.09
1) Rockバー型番組表の表示ロジックを変更。DOM構造に問題があっても表示に支障をきたさないようにしました。
・2015/3/29 TvRemoteFiles ver1.08
1) 視聴画面のポップアップモードを追加し、関係するロジックを幾つか修正しました。
2) 画面遷移で一定時間(0.3秒)以上の読み込み待ちが発生する場合、「Processing」のポップアップを表示するようにしました。
3)尚、1)の修正に関連してcookieの仕様を少し変更したため、既存バージョンから移行する際に直前の画面ズーム倍率等を忘れてしまいますが、ご了承ください。
・2015/3/23 TvRemoteFiles ver1.07
1) EDCB/TVRock番組表の表示対象を[全て、地上波、BS、CS]から選べるようにしました。(スカパープレミアムはCSに含まれます)
2) 番組表のBonDriver選択ロジックをポータルに合わせ、該当放送波で使えるBonDriverのみをリストし、空いているものをデフォルト選択するようにしました。サーバーの優先BonDriver指定は無効になります。
3)zoomを1%刻みにしました。
・2015/3/20 「ファイル/プレイリストのストリーミングを実況付きにする」手順の解説を追加し、NicoConvAss一括処理用ツールを添付しました。
・2015/3/15 TvRemoteFiles ver1.06
1) ファイル再生時に、NicoConvAssでファイルと同じフォルダに作成した実況ファイル(ファイル名.ass)をハードサブ(焼き付け)する/しない の指定(withAss)ができるようになりました。
従来のTvRemoteViewer_VBでは.assファイルが存在すればハードサブする仕組みになっていましたが、TvRemoteViewer_VB v1.07以降とこの機能で都度実況を表示する/表示しない指定が出来るようになります。
2) プレイリストで再生ファイル切替え時の挙動をより安定化し、従来はファイル終了10秒前に次のファイルに切り替えたものを1秒程度にしました。
・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)
- PLEX PX-W3U3の設定について (PX-W3U2およびPX-S3U2用の手順も併記)(2011.05.25)
- PX-BCUDを使ったBS/CS110の"お手軽"視聴&録画システムについて(2012.05.22)
- TVRock (およびTVTest) のスカパーe2最新編成対応と、チャンネル名称も最新にする方法(2012.10.02)
- PX-Q3PE、およびPX-W3PEの活用メモ (Spinelなしですぐに使いたい人向け)(2013.06.17)
コメント
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/570024/60430754
この記事へのトラックバック一覧です: iPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作る:
« 電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用) | トップページ
あ、入れ違いでその通りのレス頂いていましたね。解決してなによりです。
**************
yさん、ffmpegのPES packet size mismatchというのは単なるワーニングでこれで動かない事はありませんので、問題の本質ではないと思います。
状況からするとRecTaskからのストリームに何らかのエラーがあるんじゃないでしょうか?例えばうまくスクランブル解除できていないとか
適切に選局できていない事が疑われます。その辺をチェックしてみてください。
投稿: Vladi | 2015年5月21日 (木) 18時58分
自己レスです。
スクランブル解除の設定ができておりませんでした。
解決いたしました。
お騒がせしてすみません。
投稿: y | 2015年5月21日 (木) 15時09分
失礼いたします。
大変有益な情報をありがとうございます。
当方、トラブルが発生し、リアルタイム視聴ができず困っております。
もしよろしれければ、ご助力頂ければ幸いです。
番組のリアルタイム視聴を行おうとすると、ffmpegが「[mpegts @ 0000000004462ec0] PES packet size mismatch」というエラーを吐き、エンコードが始まりません。BS、CS、地上波共に同じ状態です。
.tsファイルを利用したストリーミングは問題なく行うことが出来ました。
ffmpegのバイナリは2015/05/20のビルドと、2014/12/10のビルド、両方で試してみましたが、うまく行きません。
何か対策等ご存知でしたら、お教え頂ければ幸いです。
投稿: y | 2015年5月21日 (木) 03時16分
超長い記事ですね。詳しく教えてくれてありがとうございます。
投稿: 秋 | 2015年5月15日 (金) 19時27分
o_hiroさん、レス遅くなりすみません。
録画ファイルが再生できない件は良く判りません。ファイル名がその違いの程度であれば、それが原因ではない筈です。
一応可能性として、録画ファイルがきちんとサービスで分離されておらず、ワンセグや他のサービスが混じったものになっている疑いは指摘しておきます。
もしその場合、解消のしかたは以下をご参考に。
http://vladi.cocolog-nifty.com/blog/2012/01/plex-usbfaq-px-.html#4Q5
EDCBで録画している場合はTVTestではなく、「指定サービスのみ処理対象とする」をチェックしてください。
もう1つの、フォルダ機能ですが、個人的には映像ファイルの管理はフォルダを意識させない形が望ましいと思っていて、たとえばこういったツールを意識して作っています。
http://vladi.cocolog-nifty.com/blog/2011/05/plex-px-w3u2-0d.html#UO-2-6
ただたまに特定の場所にあるファイルだけを抽出したい場合があるのも確かで、そういう場合のフォルダ絞込み機能はあったほうがいいかな、とも思いますので、そのうち実装を考えています。
その場合もファイラを作るのが目的ではなくあくまで絞込み機能なので、エクスプローラーでフォルダを開くのとはちょっと違うイメージにはなりますが、少々お待ちください。
→2015/5/12 フォルダ・ビュー機能を追加しました。お試しください。
http://vladi.cocolog-nifty.com/blog/2014/10/iphoneandroidpc.html#FolderView
投稿: Vladi | 2015年5月10日 (日) 08時13分
TvRemoteViewer_VBを楽しんでいるものです。
質問がありますが、地デジ、BSはパソコンでもiphoneでも視聴可能ですが、ファイル再生で録画したTSファイルが表示はされますが、再生できません。(表示が0のままで1に変わりません。)ちなみに、mp4やaviファイル等の動画ファイルはすべて見れます。但し、再生できるTSファイルもあります。このHPを熟読したつもりなのですが、自分の設定にいたらない所があるのでしょうか?
ちなみに、ファイル名(自動で作成されます。)がダメなのかと思い下記に再生◎と×を書きました。
再生×:201504032032020102-ミュージックステーション 桜・卒業・旅立ち…春の応援ソングスペシャル[字].ts
再生◎:Record_20150124-222837.ts
再生×のこのファイルですが、TVTestでは普通に再生されます。
ご指導しただけると助かります。
もう一つ、ファイル再生でフォルダーが表示されると助かるのですが、そのような機能はありますか?
よろしくお願いします。
投稿: o_hiro | 2015年5月 7日 (木) 15時23分
返事が遅くすいません
早速対応いただきありがとうございます、おかげさまで無事に設定することが出来ました
ありがとうございます。
投稿: Ro | 2015年5月 3日 (日) 20時12分
Roさん、ご返答遅れてすみません。
GenBonSprをver1.01に改修し、最もサイズ的に厳しいと思われるBonDriverの組み合わせ画面
http://vladi.cocolog-nifty.com/photos/uncategorized/2014/10/06/genbonspr_combine.jpg
をサイズ可変・縦スクロール可能な形式に改修しました。ダイアログが画面の下にはみ出している時はダイアログの上端をつまんで下げることで一旦縦サイズを圧縮し、次に全体を上に持っていってスクロールすれば下端のボタン類にアクセスできるようになります。
ファイル差し替え済みですので、再度ダウンロードして試してみてください。
もともとWXGA+以上の画面を想定して固定サイズで作っていたものを無理やり改修した形なので小さめの画面で使い易いとは言えないかもしれませんが、SVGA以上の解像度であれば一応操作できると思います。
投稿: Vladi | 2015年4月29日 (水) 06時05分
GenBonSprを使おうとしたのですが、解像度の低いNotePCだと画面がはみ出してしまい次へボタンが押せません
プログラムの修正をしていただくことは可能でしょうか?
投稿: Ro | 2015年4月27日 (月) 09時00分
うーん、MXの相性が悪いという事はないと思いますので、MXの受信状態が悪く(drop多いとかで)ffmpegがうまく処理出来ていない、という事もありえますが、そうでない場合、よく判らないですね。
他の可能性として、番組表からrectaskを呼ぶ時はサービスIDで紐付けしているのですが、tvrockは実は地上波に限っては、サービスIDを設定しない・あるいは間違った設定をしてもチャンネル番号さえ合っていれば動いてしまいます。
特にDTunesでデフォルトだと図のように
http://blog-imgs-45-origin.fc2.com/l/e/g/legacybp/tvrock05_convert_20110220221132.jpg
地上波のサービスID欄はデフォルト0になっていますので、ch-ts.txtをきちんと作ってからDTunesを動かすか上記の図でサービスIDを設定しない限りその状態になります。
それでMXだけうまく紐付けできないというのは有り得ると思います。(「地デジ番組表」からMXが映るかどうかも試してみて、OKであればその疑いが濃くなります。)
それが原因の場合はもう1回DTunrsを流して地上波サービスID(MXは23608)を正しく設定するか、設定->チューナーで、地上波チューナー1個1個にMXのサービスIDを設定してください。
ch-ts.txtの簡単な作成方法はこちらにガイドがあります。
http://vladi.cocolog-nifty.com/blog/2013/06/px-q3pepx-w3pe-.html#tauto
なお、DTunesで再設定する際の注意点は以下にガイドがあります。
http://vladi.cocolog-nifty.com/blog/2012/10/tvrock-8734.html#afterDtune
投稿: Vladi | 2015年4月15日 (水) 06時25分
丁寧な解説ありがとうございました。
概ねバッチリ動作しているのですが、一点だけ不具合が。
・TOKYO MXだけ受信できない
TVROCKからBonそのまま持ってきてて、
TVROCK側では正常に受信できてるんですが、
RemoteViewerで、番組表から「視聴」押しても、
数十秒「配信準備中」と表示された挙句「配信されてません」と表示され、停止します。
MX以外は、放送大学ですら正常に受信できるんですが。
当方、住居は東京都内です。
何か調整すべき箇所に心当たりありましたら、ご教授お願いしたい。
投稿: ちんす | 2015年4月15日 (水) 02時12分
お役に立てなかったようですみません。
一応追加で、やってみられたかもしれませんが、もしそのスマホを家の中の無線LANで繋げても同じ状態ならスマホの再生環境の問題、家の中なら問題ないのであれば回線の問題という切り分けができます。
再生環境の問題であれば、ブラウザを別のものに変えてみる、また(可能であれば、ですが)システムを更新してみるとどうか、というのを試してみるのも良いかもです。
また回線の問題であれば、理由は判りませんが瞬断というか、何分かおきに通信が途絶えるような現象が起きていることが疑われます。
役に立たないかもしれませんが、ご参考まで。
投稿: Vladi | 2015年4月15日 (水) 01時39分
Vladi さん,アドバイスありがとうございます。
PCからの接続では全く正常で、なぜ携帯電話でこのような現象が生じるのか不思議です。
接続環境は、WIMAX2+で7GB制限のかからないタイプで使用してます。
解像度も最低のところまで落としても駄目でした。
また何か情報など入りました時にはよろしくお願いします。
お忙しい中申し訳ありませんでした。
投稿: 佐々木 孝夫 | 2015年4月14日 (火) 17時17分
佐々木さん、「画面がフリーズし携帯電話のVPN接続を切断およびVPN設定を削除し再設定しないとだめ」という状況がなぜ起きるのか、私にも全く判りません。
もしTvRemoteViewer_VB側の生成する配信ストリームに問題がある場合は都度、停止・再始動の操作
http://vladi.cocolog-nifty.com/blog/2014/10/iphoneandroidpc.html#unstableEnv
をおこなうことで再開できる場合があります。
ただ一般的にVPN接続を一旦切らないと回復しないような現象は速度が許容範囲を超えている場合ですので、もう少し低い配信解像度を選んでみるのはいかがでしょうか?
そもそも256x144Lでなければ再生できないぐらい配信速度が遅く、それでも数分で止まってしまうようであれば、7GB制限(あるいはキャリア毎の類似の制限)
http://www.appbank.net/2014/01/30/iphone-news/741850.php
に引っかかっている場合もあります。
この制限がかかると平均的に遅くなるだけではなく、時々途絶えてしまうような通信状態になりますので、丁度おっしゃっているような時間経過でぱったり止まってしまう形になります。
投稿: Vladi | 2015年4月12日 (日) 11時17分
何度も挑戦してやっと外出先からでも接続できるようになり感謝しております。
但し、携帯電話(アンドロイドver 4.3)で接続すると必ず約4分で突然画面がフリーズします。
復旧させるには、携帯電話のVPN接続を切断およびVPN設定を削除し再設定しないとだめです。
PCで外部からの接続では全く問題ありません。
何とか解決できないでしょうか?。
投稿: 佐々木 孝夫 | 2015年4月12日 (日) 08時38分
そうですか。そういう話だとこれ以上何も申せませんが、おかしな現象は何かがおかしいから起きるわけで、その辺の動作はあまりに基本すぎて今更バグ等無いような部分ですから、必ず間違いがあると思って見直したほうが良いと思います。
例えば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分