« 電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用) | トップページ | Chromecast(クロームキャスト)とTvRemoteViewerで未来型テレビを作る »

2014年10月 6日 (月)

iPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作る

TvRemoteFilesのダウンロードのみの方は→ こちら

今まで当Blogではネットワーク経由で"TS抜き"チューナーを使う仕組みとして何度か、Spinelを使った家庭内配信をご紹介していたのですが、これはロケフリ視聴というよりも、チューナーのフル機能を家庭内の全てのPCで使えるようにするのが目的でした。

Spinelは家庭内の十分なLAN帯域が確保できる環境内であれば全てのPCをテレビや録画機に変身させることができ便利この上ないのですが、これだけだと単に視聴したいだけの場合もiPhoneやAndroid端末からは(SpinelクライアントやTvTest等が開発されていないので)直接テレビを観ることはできませんし、またネットワーク帯域を大食いするため、家を離れた場所でPCから家のチューナーを使ってテレビを視聴する「ロケフリ視聴」という使い道にも向いていません。

一方そのような"TS抜き"環境で録画されていく動画ファイルの再生環境やライブラリ化についても、過去の記事ではTvtPlayWhiteBrowserをご紹介していましたが、これも同一LAN上のPCでは便利に使えるものの、モバイル端末やリモート環境を想定したものではありませんでした。

そういったモバイル環境や非Windows環境でテレビ視聴&動画鑑賞を目一杯楽しめるフリーウェアとして、この記事ではTvRemoteViewer_VB をご紹介したいと思います。
このソフトは最初はロケフリ・テレビの実現が主眼で動画ストリーミングはオマケ的だったのですが、バージョンを重ねるうちに現在では動画ストリーミングの目的だけで使っても(Qloud Media等と比較しても)十分使えるものになっていると思います。(勿論放送TSファイルだけではなく大抵の動画ファイルのストリーミングに対応しています。)

Tvremoteviewer_top

さて、ロケフリを実現するソフトとしては以前からRemoteTestなど十分に実績のあるものがあったのですが、今に至ってのご紹介になったのは、「既に公開の停止されたRemoteTestに代わって現役ソフトとしての発展が見込めるTvRemoteViewer_VBが出てきた」という点が大きいものの、他にも訳があります。

リモート視聴をおこなう際、ネットワーク帯域だけの問題であればSpinelのような「ストリーム圧縮のない」仕組みであっても、太いアップ/ダウンストリームの回線さえあれば理論的には可能なのですが、公衆ネットワークの帯域を無駄に使ってしまう点でハタ迷惑ですし、特にアップストリームの使い過ぎはプロバイダの帯域制限に引っかかる危険性があります。したがってリモート視聴に必要十分な画質/帯域に圧縮してから送る、というロケフリ視聴向けサーバ・システムは不可欠になります。

しかしそれ以前の問題として、以前「まねきTV」が違法とされた事が解釈によっては、(不特定多数ではなく)自分での利用に限定したリモート視聴の仕組みであっても二次放送と見なされて、違反と判断され得るのではないか、という疑いがありました。
この辺はある意味厳密な法規定ではなく法の運用で決められている話なので、公にやっている事例が無い以上どこまでなら可能なのかは判断のしようがなく、そういう話もあってかSpinelの場合は作者の意思として利用の前提条件にリモート視聴には使わないという制限が付いていましたし、RemoteTestの作者が公開を止めてしまったのもその辺の恣意性を警戒しての事かもしれません。

ところが「テレビの放送や録画をリモートから視聴する」という仕組みは(iPhone/Androidでの持ち出しすら不自由な現状ではTV/レコ共々ますます売れない、という現実をなんとかしようと思ったのか)NexTV-F起案で仕様を決めたようで、"nasne"についてはこの秋から、またBDレコーダについてはその少し前から、いずれもソニーが先鞭をつけて堂々と始めることになり、「公にやっている事例」が存在することになりました。(さすがルール拡大解釈請負人ソニー様・・)

ある意味毒見済みとなった訳で、そうとなれば「TS抜き」システムであればより簡単で柔軟な構成が実現できる応用分野なので、それをご紹介できる環境は揃ったと判断したわけです。
ただそういう経緯ですので、外からのご利用は厳密にアクセスをパスワード等で保護の上、ご自身での視聴の範囲内に留めることを守ってください。その辺を守っていただかないとご自宅のシステムのセキュリティが守れないのは勿論のこと、二次放送行為として罰せられる可能性があります。

「TS抜き」環境をベースとするメリットは、(この話に限りませんがメーカー独自仕様やガラバゴス規格に振り回される事なく)、HLSという次世代映像配信の主流に最も近いと目され今後の発展も見込まれる手順によって、機種を選ばず特別な端末用ソフトも不要な形で、「痒い所に手が届く」システムが構築できる点です。(考えてみればHLSもそうですがMPEG-DASH、MSEと次世代のストリーミング標準を競っている技術はどれも、配信のために毎回無数のビデオファイルに「ダビング」する仕様なので、「ダビ10」ルールでは永遠に利用できませんね。こんなところにもオープン性を欠いた規格が結局自らの将来性を閉ざしてしまうという事例が・・)

実際に試してみると確かにTVTestで直接観るのと比べれば遅延もありますが、家の中でiPad等でもTVが見られるのは単純に便利ですし、安いAndroid端末を防水パックした上で「お風呂TV」にするのも楽しそうですね。
外からだと家に帰れない時や出張中に見逃したくない番組や気になるニュースを見るのに便利です。(特にワンセグでも見られない衛星放送など。)
また録画したものをこの仕組みで外から再生するのも簡単で、一種のクラウド型サービスとして、異なる端末で再生シーンを引き継ぎながら観られるのも便利です。
但し画質や軽快さの点ではMP4化して持ち運ぶ従来型の動画視聴のほうが有利な面もありますし、移動中にWiFiではなく LTE/3G回線を多用していると月毎の7GB制限も気にしなければなりません。この辺の特性は(NexTV-Fの名前を借りて企画した企業が期待するような)iTunes同期に替りうるものではなく使い分けるとより便利で、逆に自宅での視聴でもタブレットがあれば、Spinel/TvTestで観るより気軽な面もあります。
なおスマホでのご利用にあたっては(当然の事ながら)パケット定額など、データ通信量が増えても料金の変わらない契約形態である事をご確認ください。知らずに過大な通信料金になったとしても、当方では責任は負えません。

    システム全体図

Whatistrvnew

最新版の視聴画面はこのようになっています。

Nicotvremote_w_2ch1

Musicstation

どのプラットホームでもブラウザから同じ手順で使えますし、全画面視聴もOKです。ブラウザ画面ならHTML5とAjaxの技術を使って、このようにニコニコ実況や2ch実況を流すことも出来るようになっています。

現在のバージョンでは並列ストリーミング数の上限が事実上なくなり、定義した数までサーバ能力が許す限りの並列ストリーミングが可能になりました。

Trvmanystream

またファイル再生については個別のファイル再生のほかにプレイリスト機能もあり

Pl1_natiogio

家のPCや通勤中のスマホで再生を引き継ぎながら長いシリーズ物等を鑑賞していくことも可能になっています。

またこちらはスマホのトップ画面の例ですが

Trvmobiletop

こんな感じで、プラットホームに合わせて自分で使いやすいようにカスタマイズできる点も特徴になります。

後日追加された機能として、ChromecastやFireTVAndroidTV等を併用すれば

Chrocastvr2

こんな感じで家にあるテレビや余ったモニターを活用して、大画面でもストリーミング&実況を楽しめるようになります。
勿論それらにPCを繋いでも同じことは出来ますし、テレビはテレビ本来のチューナーも持っていますが、Chromecastとストリーミングを使うメリットは自在なコンテンツの扱いや実況など豊かな楽しみ方ができること、画面1つ映すのにかかる費用やN/Wコストが僅かで済むこと、それでいて十分な画質で楽しめること等がポイントで、この辺は実際使ってみると実感できると思います。

写真に映っているWiFi経由のリモコン機能は当初Chromecast専用だったのですが、最新バージョンではどの端末画面でもリモコンから操作できるようになりましたので、テレビ代わり(あるいはテレビの置き換え)として使うのにも便利になっています。

当記事ではこのようなソフトの使い方を以下の内容・順番でご説明いたします。

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)手動配信
 20)その他の管理・設定機能
 21)スカパープレミアムの配信について
 22)インターネットラジオ(超!A&G+)の実況付き視聴

3.外部から家庭内LANにアクセスして視聴するためにDynamicDNSとVPNを設定する
 1) 設定手順
 2) 解像度とビットレートの関係について
 3) SoftEther VPN を利用して1)より強力なVPN環境を作成する。

4.使い勝手の向上とストリーム起動の安定化のためにSpinelとRDCTを利用する
 1) 主要なメリット
 2) Spinelの説明と導入方法
 3)RDCTの説明
 4)自動生成プログラムによるクイック導入

補足.改訂履歴

なお、後日の重要なトピックとして、ハードウェアエンコード(QSVおよびNVEnc)の本格サポートが追加されました。これは単なる機能追加と言うより、TVRemoteViewer_VBの活用範囲が大幅に拡がる話なので、別記事にまとめてあります。
これによって今持ってるPCがかなり古かったりショボくて、とか、PCすら持っていないという方でも、気楽にロケフリ&ストリーミング環境が作れるようになります。
ぜひそちらもご参照いただければと思います。

また、TvRemoteViewer_VBはアップデートが速く、機能の進化や使い勝手の改善も多いです。既にTvRemoteViewer_VBをお使いの方も、折を見て最新版にアップデートするのをお勧めします
更新は後日公開した「TvRemoteViewer_VB バージョンアップ支援ツール

Trvi1_2

を使えばほぼ自動化でき、数分もかかりません。リンク先を読んでご利用いただければと思います。

1.TvRemoteViewer_VBの導入

まずは家庭内LAN/Wi-FiI環境で、スマホ・タブレットやPCから自由に視聴できる環境を作成します。ここをしっかり作っておけば、リモート視聴に必要なのはVPN環境の追加だけです。

1) 準備

そもそもの前提として、この記事の手順でロケフリ環境を作るには、"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ファイルをダブルクリックしてみれば判ります。

「checkvdnfw.zip」をダウンロード

(これはatmarkITさんの記事にあったバッチファイルを少々修正の上転載させていただきました。)

Tvremoteviewer_dotnetcheck

ここに「Framework 4.0(または4.5)がインストール済み」と出てくればOKです。
未導入の場合は、Windows7かそれ以前であれば、以下のリンクからダウンロード&導入してください。

http://www.microsoft.com/ja-jp/download/details.aspx?id=30653

またWindows8以降であれば、コントロールパネル(またはスタートボタン右クリックで)→プログラムと機能で、「Windowsの機能の有効化または無効化」を選んで、以下の場所をチェックした上でOKを押し、Framework 4.5を有効化してください。

Tvremoteviewer_dotnet45on8

② Windowsファイアーウォールでポート40003へのアクセスを許可する。

TvRemoteViewer_VB のアクセスには、家庭LAN内であってもリモートであってもポート40003を使いますので、TvRemoteViewer_VBを動かすPC上で該当ポートを開けておく必要があります。ここではデフォルトで動いているWindowsファイアーウォールの設定手順を解説しますが、もし他のファイアーウォールソフトを導入している場合には、それぞれの手順に従ってポート40003のアクセスを許可しておいてください。

コントロールパネルでWindowsファイアーウォールをクリックします。

Tvremoteviewer_fw0

「詳細設定」をクリックし、Windowsファイアーウォールの設定画面で、左の「受信の規則」をクリックし、次に右の「新しい規則」をクリックして、出てくるウイザード画面で「ポート」を選択して「次へ」を押します。

Tvremoteviewer_fw1

「TCP」を選択し「特定のローカルポート」を選択して入力欄に「40003」と入れ、「次へ」を押します。次の画面で「接続を許可する」、その次の画面でドメイン・プライベート・パブリックを全てチェックします。

Tvremoteviewer_fw2

その次の画面ではルールの名前を聞いてきますので、TVRemoteなど適切な名前を付けて、「完了」を押します。これでファイアーウォールの設定完了です。

確認のため、Windowsファイアーウォールの設定画面で(左で「受信の規則」が選択されているのを確認の上で)上で付けた名前を探し、ダブルクリックしてください。

Tvremoteviewer_fw3_2

設定内容が出てきますので、特に「プロトコルおよびポート」のタブで「TCP」、「特定のポート」、「40003」が選ばれていることを確認してください。(もし間違っているようであれば、ここで修正するか、右クリック→削除 で一旦該当ルールを削除して、もう1度定義し直してみてください。ここを間違うと視聴は確実に失敗しますので慎重に。。)

③ 対応ブラウザの準備

PCからTvRemoteViewer_VBにアクセスする場合、IEでは正常にアクセスができません。
理由はWindows環境に必須のFlashフォールバック・プレーヤー(Projekktor)がIEでうまく動かなかったためで、そういった経緯で初期の段階から独自性の高いIEのCSS形式等は一切考慮しておらず、トップページの表示自体も崩れますが、本質的にはプレーヤーが動かないのが理由です。
それ以外のブラウザであればほぼ問題なく使えます。Windows8.1までの環境であればChrome/Firefox/Opera のいずれでも使います。このアプリは一部webkitしかサポートしていない装飾を使っている関係で、Firefoxでは表示が格好良くない部分があるかもしれませんが、いずれにしろ問題なく使えるはずです。
またWindows10から標準添付されているEdgeブラウザは、Windows環境では初めてHLS動画を標準サポートし、綺麗で滑らかな画質での再生が可能になっていますので、Windows10を導入された方には第一のお勧めです。→解説記事にしてあります。

もしいずれも未導入のかたは、お好みのものをリンク先から導入しておいてください。(視聴する側のPCにも。)
尚いつもの事ですが、導入時に何も考えずに次へ、はい、などと答えていくとデフォルト(標準)のブラウザが変更されますので、変える気がなければ「デフォルトのブラウザにする」のような該当箇所でチェックを外す/いいえと答えるなど、しっかり意思表示してください。
(たとえばOperaは導入最初の画面で小さく「標準ブラウザにする」の選択肢がチェックされているなど、初めての人にわかりにくくなっていると思います。うっかり変更してしまった場合は後からIEなどデフォルトにしたいものを立ち上げ直して、出てくる確認メッセージに答えてデフォルトブラウザを戻してください。)

尚スマホ側はSafari、Chromeなど標準のブラウザでOKですし、Lunascapes等でも同じように使えます。iOSの場合は個人的には後述の理由で、ilunascape、Android環境ではDolphinBrowserがお勧めになります。

Chromeブラウザ( Windows環境・特に低解像度) で映像が乱れる場合の解決策

なお説明は前後しますが、PCでChromeを使う場合、Windowsのバージョンや利用するGPU(インテルCPU内蔵HDグラフィクス)等によっては、たまに動画にブロックノイズが出やすくなることがあります。
そういう場合、以下の3)-①でコピーするファイルのうち、\TvRemoteViewer_VB\html\projekktor\swf\StrobeMediaPlayback にある StrobeMediaPlayback_hls.swf というファイルを、以下のものに置き換えてみてください。

StrobeMediaPlayback_hls.swf」を右クリックしてダウンロード
これはバージョンとしては新しいのですが、Firefoxとの相性が悪い(動画が時計マークが出たまま再生できなくなる)ため、標準では少し古いバージョンを添付しています。もしPCでFirefoxよりChromeの利用が主体の場合、こちらのバージョンの方が相性が良い場合もありますので、お試しください。
一度入れたら滅多に更新のあるモジュールではありませんので、こちらに置き換えて使っていく場合、バージョンアップツールで除外リストに入れて、アプリ更新時にも維持していくのをお勧めします。

④Flash Playerの導入

PCのブラウザからストリームを再生するためにはFlash Playerが必要ですので、リンク先から導入してください。(但しChromeブラウザは現在Flashプラグインを標準添付していますので、導入不要です。またWin10のEdgeの場合はそもそもFlashを使いませんので、ここは飛ばしてください。)
これは③の使用するブラウザ導入の後にやらないと該当ブラウザに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)各ソフトウェアのダウンロードと配置

最初に各種ソフトウェアパッケージをダウンロード・解凍して、以下のように配置します。

Tvremoteviewer_fig1

なお全体の注意点ですが、導入するフォルダ、およびその上位フォルダには日本語(を含む2バイト文字)は使わないようにしてください。例えば上記①~⑦のフォルダ名が全て英数字名でも、全体が「D:\ロケフリ\DIR\」 のようなフォルダの下にあるとNGです。(ffmpegがうまく扱えないようです。)  ご注意ください。

① TvRemoteViewer_VB パッケージはリンク先

http://vb45wb5b.seesaa.net/

の「ロケーションフリー TvRemoteViewer_VB」の記事に、バージョンの新しい順に「v0.XX」のリンクでアップされていますので、最新版をクリックしてダウンロードし、適切なフォルダに解凍した上で、中身を実行用フォルダ(以後、\TvRemoteViewer_VBフォルダとします)にコピーしてください。
なお TvRemoteViewer_VB v1.30 以降では、\TvRemoteViewer_VB フォルダのセットの中に CtrlCmdCLI.dll というファイルが追加になりました。これもコピー、また以前のバージョンから移行する際は必ず追加してください。このdllがないと1.30以降ではうまく起動しません。

さて、TvRemoteViewer_VBは簡易Webサーバの機能を持っていますが、これは(Windows Vista以降では)管理者モードでの起動が必要な場合があります。(でないと、うまく動かないだけでなく起動すら失敗する)。したがってこのタイミングで、\TvRemoteViewer_VBフォルダにあるプログラム本体 TvRemoteViewer_vb.exe の上で「右クリック→プロパティ」から「互換性」タブを開き、

Tvremoteviewer_8managementmode

「管理者としてこのプログラムを実行する」をチェックして、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を使えばリモート視聴が録画タスクと競合するのを避けられる ため、使い勝手が上がります。
Spine+RDCTを導入する場合は先にやっておいたほうが手間がかかりませんので、こちらをご参照ください。

3)カスタマイズ用ファイルの追加(上書き)

Tvremoteviewer_fig2

以下のリンクからカスタマイズ用ファイル群をダウンロードし、適切なフォルダに解凍してください。この中身を2)で配置したフォルダに(上書き)コピーしていきます。

「TvRemoteFiles_179.7z」をダウンロード

注: TvRemoteFiles ver1.70 より以前のバージョンから上げる時は、ffmpegも最新版にバージョンアップしてください。,→参考
なお、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)を書き加えたものです。

4)一旦起動して、初期パラメータをセットする。

ここまでセッティングできたら、一旦\TvRemoteViewer_VB フォルダのTvRemoteViewer_vb.exe ファイルをダブルクリックして起動してください。
タスクトレイにこのようなアイコン Tvremoteviewer_icon が出ていたら立ち上がっていますので、これをダブルクリックしてください。設定画面が表示されます。

Tvremoteviewer_setting1

ちなみにTvRemoteViewer_VBの画面をタスクトレイに戻す際には、間違ってもTvremoteviewer_endボタンを押してはいけません。(TvRemoteViewer_VBが終了してしまいます。)
タスクトレイに戻すときには必ず、Tvremoteviewer_minimize最小化ボタン_ を押してください。

なお、この画面で「BASIC認証」も設定できるようになっていますが、これは空欄にしてください。
(ちょっとした経緯でこの機能は残っていますが、BASIC認証を掛けるとモバイル系の端末でうまくアクセスできないトラブルが続出しますし、そのサポートもいたしません。)
またサーバを直接外部に晒すような構成でBASIC認証程度ではセキュリティ上、物の役にも立ちませんので、外部からのアクセス制御は必ずVPNの構成にすることをお勧めします。

① フォルダ/ファイルの場所、および固定値の指定

Tvremoteviewer_setting11

上図の赤い囲みのように、2)で配置したフォルダおよび実行ファイル/フォルダの情報を反映させてください。
[...]をクリックすればファイル/フォルダの選択ダイアログが表示されますので、マウスで探して設定していくことができます。

また緑の囲みの部分は[初期値]のボタンを押せばセットされますので、3箇所とも初期値を設定してください。

②デフォルト解像度の設定

Tvremoteviewer_setting2

次に上図の赤い囲みの解像度の設定をプルダウンから適切に選んでください。すると緑の囲みにある「HLSオプション」に長い文字列が記入されます。(ここの編集は必要ありませんので、弄らないでください。)
これは配信のデフォルト解像度で、配信起動する時に解像度を指定しなければ自動的にこの解像度になります。
(注意) ここをきちんと設定しておかないと、解像度を指定しないデフォルト解像度(---)での配信スタートが必ず失敗します。

③iniファイルの設定

Tvremoteviewer_setting21

図の「設定ファイルを編集」ボタンを押すとTvRemoteViewer_VB.ini ファイルの編集画面が立ち上がります。
(エクスプローラーからTvRemoteViewer_VB.ini ファイルの上で「右クリック→編集」でも構いません。)
ここでは上のほうから以下のようにセットしていってください。

MAX_STREAM_NUMBER= 8

Trvmaxstr

並列して配信可能なストリーム数の上限です。以前のバージョンではシステムの作り上8ストリームまででしたが、最新バージョンではその制約が取り除かれ、20ストリームでも100ストリームでもここで定義しておけば並列配信可能になりました。
但しテレビ放送のストリームのようにCPUがリアルタイムにトランスコードするものはサーバCPU能力による限界があり、それ以上の並列ストリーミングでは映像がスムーズではなくなりますので、能力の範囲に収まるよう利用時に気をつけてください。それを越えるような数の並列配信は、エンコードの終わったファイル/プレイリストのストリーミング(特に無変換配信)を多数並べるような使い方に活用できます。
そういう場合、ここに必要なだけの数をセットするのも可ですが、増やす場合も20~30ぐらいにしておくのがお勧めです。あまり大きな数にすると定期的な監視タスクの負担になり、特にトップページを開いて暫くの間固まったようになりますので、ご注意ください。

tsfile_wait = 2

Tvremoteviewer_tsfile_wait
デフォルトでは3になっていますが、2に修正してください。(このほうが配信開始が早くなります。)

STOP_IDLEMINUTES = 0

Tvremoteviewer_timeout

視聴端末が無い状態でここに指定した時間(分)が経過すると、動いているストリームはすべて停止します。
ただし、ファイル再生のストリーミングでは意図的にストリームを保持したい場合が多いですので、ここは特にこだわらない限り 0 (つまり、自動では停止しない)の設定にしてください。
また本来、「視聴していなければ」ストリームを止めるタイマなのですが、視聴中でもこの時間でストリームを止めてしまうケースがあるようです。そういう現象を避けるためにも、ここは 0 の設定が推奨です。

VideoPath = "録画先フォルダのフルパス1","録画先フォルダのフルパス1",・・・,"録画先フォルダのフルパスn" 

Tvremoteviewer_iniedit2

録画ファイル配信機能ではここで指定したフォルダにあるファイルを一覧にしますので、必要なものを列記してください。
ただしネットワーク上で共有しているフォルダについては、X: のようなドライブ名が割り当ててあってもそれは使わず、上図のようにネットワークパス="\\コンピュータ名\・・・" のような形式で書いてください。(割り当てドライブ名を使うとTvRemoteViewer_VBがアクセスできない現象が起きやすいです。)
ネットワークパスは図のように、エクスプローラーで「ネットワーク」から辿って行くと表示されますので、そのアドレス欄からコピペすれば良いです。

Tvremoteviewer_iniedit22

沢山ファイルがあっても選ぶのが大変、と思われるかもしれませんが、ファイル再生ではキーワード検索やソート機能がありますので、あるだけ登録しておけば割と自由に観たいファイルを指定できます。

一覧に表示するファイルタイプは、以下のように VideoExtensions = ".拡張子1", ".拡張子2" で指定できます。
Tvremoteviewer_iniedit21

ここに何も指定しないと単なるテキストファイルやログファイル等も全て一覧表示されるので煩雑ですし、うっかり選ぶと配信エラーを起こして時間の無駄になります。
.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

5) 番組表の正常表示のための設定

① 共通設定

TvRemoteViewer_VBは番組表から選局したり、また視聴画面で視聴中の番組や他局の番組情報を表示する機能を持っていて、基本的にTVRock、EDCB、ptTimer、Tvmaidのいずれか、またはその組み合わせから情報を取得します。

ただ地デジの番組情報だけはネットからも取得でき、それらのバックアップとして使えますので、まずはその設定をご説明します。

TvProgramD = xx   ;地デジ番組表で表示する地域の番号

Tvremoteviewer_terraprogram

各地域の番組編成に合わせるための指定値は TvRemoteViewer_VB.ini の中にコメントで列記してありますので、ご参照ください。

② 難視聴地域用地上波チャンネルの関連情報は削除しておく。

これはTvRemoteViewer_VB.iniの設定ではありませんが、念のためにこのタイミングで各BonDriverのch2ファイル、またTVRock、EDCB等の設定をチェックして、もし残っているようなら削除しておくことを強くお勧めします。
削除する理由は

・サービスIDが他のCSのチャンネルと重複するため、誤動作の原因になる。
・そもそも2015/3月末で終了したサービスで、定義を残しても意味がない。

というもので、うっかり残したままだと結構悪さをしますので、ご注意ください。削除手順は以下の通りです。

i) BonDriverXXXX.ch2 から削除する。

RecTaskが使用するBS/CSチューナーのそれぞれのch2ファイルから、難視聴用チャンネルの定義が残っていたら全て削除してください。

Tvremoteviewer_

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で動いている場合

Tvremoteviewer_iniedit4

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"

Tvremoteviewer_iniedit6

またWeb番組表が利用できるよう、EpgTimerSrv.iniも、コメント文通りの設定がされているか確認してください。

ii) EDCBのTCP機能をONにする。

EpgTimerの設定画面を開き、動作設定→その他 で以下のチェック、および記入がされていることを確認して、「OK」を押してください。

Epgtcp

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の実行パス(フルパス)"

Pttimerfolder_2

ii) sqliteのモジュール 「sqlite3.exe」 を \TvRemoteViewer_VB フォルダにコピーする。

こちらのサイトの左にある

Sqlite1
「Precompiled Binaries for Windows」の「sqlite-shell-win32-x86-xxx.zip」をダウンロードして解凍してください。

すると中に「sqlite3.exe」というファイルが入っています。
これを \TvRemoteViewer_VB フォルダにコピーしてください。

⑥ Tvmaid番組表関連の設定

Tvmaid番組表を利用する場合は、 TvRemoteViewer_VB.ini で Tvmaid_url =  を適切に指定してください。
Maid1

⑦ TvRemoteViewer_VB.iniを保存してTvRemoteViewer_VBを再起動する。

以上で「ファイル→上書き保存」を選んで設定内容を保存し、メモ帳を終了させてください。

設定内容の反映のために、一旦TvRemoteViewer_VB設定画面右上のTvremoteviewer_end_2 をクリックしてTvRemoteViewer_VBを終了させた後、再度TvRemoteViewer_vb.exeをダブルクリックして起動してください。

この状態で同じPCからブラウザ(FirefoxまたはChrome)を立ち上げて、アドレス欄に

http://192.168.xxx.xxx:40003/

と、192.168.xxx.xxxの部分に 「上記⑤で設定したIPアドレス」 を指定した上で、Enterを押してください。ここまでの設定に間違いがなければ、TvRemoteViewer_VBのトップ画面が表示されるはずです。

なお(このタイミングではありませんが)最初にストリームを起動しようとした時に、以下のようなファイアーウォールの警告が表示されると思います。

Tvremoteviewer_ffmpegblockwhenfirst

これには速やかに「アクセスを許可する」と答えてください。

ブラウザには図のようなトップメニューが表示されます。

Trvnewtoppage00_2

ちなみにこの画面は今後の実利用でのトップ画面になりますので、「ブックマークに登録」しておくのをお勧めします。

⑧ 番組表にアクセスしてみる。

まずはご利用のTVRock、EDCB、またはptTimer/Tvmaidの番組表ボタンを押してみてください。すると以下のような、サーバーが基本機能として提供する番組表が表示されます。

 Tvremoteviewer_rockchmatched0

日常的に使う番組表はこれではなく、様々な機能を付加したこちらが主体になると思いますが、まずはこの基本の番組表が正しく表示されることをご確認ください。

以前のバージョンではTVRock/EDCBから取得する「チャンネル名:番組情報」と、実際に視聴に使うチューナーの「チャンネル名:サービスID」を正しく紐付けするため設定が必要でしたが、v1.11以降ではサーバー側が自動で紐付けしてくれるようにになりました。

確認したら、説明は前後しますが新番組表に表示を切り替えてください。以後はそちらを使います。

⑨ インターネット番組表(ネットから取得した地デジ番組表)の紐付け情報を定義

トップメニューの一番下にある「インターネット番組表」は補助的な位置づけですが、TVRock/EDCB/ptTimer/Tvmaid番組表と違って番組表のチャンネルとチューナー(RecTask)のチャンネルとの紐付けを自動でやってくれません。(一応試みますが、紐付け情報がないとかなり不正確です。) よって紐付け作業が必要になります。

ただし番組表自体が補助的な位置づけですので、ご面倒な場合はここの作業は省いて構いません。
(お時間のある時にやっておけば、万一EDCB/TVRock/ptTimer/Tvmaidの不具合があった場合にバックアップとして、「インターネット番組表」が実用的に使えるようになります。)

紐付けは以下のようにおこないます。

トップメニューで「管理タブ」の「Rockバー型の番組表を使う。」のチェックを一旦外した上で、「インターネット番組表」をクリックします。
Tvremoteviewer_dchmatch1

ここでメモ帳を開いて、番組表の()内のチャンネル名を一行ずつコピペしていってください。
次に、半角の : を各行末に付加
Tvremoteviewer_rockmatcha2

次に「地上波対応BonDriverのch2ファイル」をどれかメモ帳で開いて、各行に対応するチャンネル名をそれぞれの右側にコピペしてください。
Tvremoteviewer_rockmatcha3

各行を半角の" ", で囲んで
Tvremoteviewer_rockmatcha4

下の方から行末で「DEL」キーを順に押していけば、これらが一行にまとまります。(一番最後の, は削除しておいてください。)
Tvremoteviewer_rockmatcha5
この一行を  TvRemoteViewer_VB.ini のTvProgramD_channels = の後にコピペし、保存してください。

以上でTvRemoteViewer_VBを再起動すれば、インターネット番組表が正確に表示されるようになります。
.

2.家庭内LAN上での使い方

ここまで設定が終われば、家の中でPCだけでなくスマホやタブレットからも、自由にテレビや録画ファイルの視聴ができるようになります。
使い方は実際触れてみればすぐに判ると思いますが、簡単にご説明いたします。
(リモートでの視聴もこの応用になりますので、まずはここでしっかり操作方法を習熟して、ブックマークも付けておいてください。)

1)トップメニュー

一旦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 を押します。
すると以下のようなトップメニューが表示される筈です。(まだブックマークしていない場合は、ここでブックマーク登録しておくと良いと思います。)

Trvnewtoppage0_3

ここで既に配信中のストリームがある場合はこのように

Trvnewtoppage3_2

下のタブが「ストリームサービス中」の表示になり、「表示」ボタンを押すと現在配信中のストリーム一覧が表示されます。
観たいストリームを一回クリック/タップして反転させ、もう1回クリック/タップすれば、そのストリームをすぐに視聴できます。

またTvRemoteFiles 1.77以降ではこの各ストリームの先頭にΘボタンが付き、これを2回クリックすれば該当ストリームを簡単に終了できるようになりました。

Stopbutton1

なお、TvRemoteFiles v1.51以前のバージョンでは、このトップ画面は次のようなデザインでした。、

Tvremoteviewer_web11

V1.52でデザインが大分リフレッシュされています。

以下の解説では「旧版」の画面のまま特に差し替えていないものも多いのですが、基本的な操作は一緒です。

iPhone等でも画面の広さが違うだけで操作は変わりませんが、iPhoneの場合はプルダウンメニューは、プルダウンはせず次のような選択画面になります。

Tvremoteviewer_web12iphone

この辺はiPhoneを使っている方にはお馴染みですね。

こういう微妙な違いはありますが、iPhone/iPad/AndroidでもWindowsでも同じような操作性を実現しています。(ブラウザベースですから当たり前ではありますが。)

なおTVRemoteViewer_VBの視聴のためには、ブラウザのcookieを有効にしておいてください。
cookieが無効でも使えない訳ではありませんが、端末側のカスタマイズを全く覚えてくれなかったりファイル再生で所有権が取得できなかったりで、いろいろと不便です。
現在のPC用ブラウザではcookieは(敢えて設定しない限り)大抵は有効になっていますが、iPhone/iPadやAndroidでは意図的に無効化されていたり、「訪問先のみ」というような制限付きの設定になっている場合があります。それらの機器を使う場合、以下のように設定されているか確認してみてください。

Cookie_ios iOS 設定→Safariの設定から

Cookie_andro Android ブラウザのSetting→Privacy&Security

また、スマホからアクセスする場合別の注意点ですが、スマホでカスペルスキーのようなセキュリティソフトが動いている場合、TvRemoteViewer_VBのようなプライベートサーバは見知らぬサイトと見なして、アクセスをブロックしてしまう事があるそうです。(トップページはアクセスできても、ストリーミング開始と同時にブロックされる等。)
そのような場合はセキュリティソフトの設定で、危険サイトブロックをOFFにしてお使いください。

2) 番組表からストリームを起動

使用していく上で最も良く利用するのは番組表からのストリーム開始だと思います。
使い方についてはまず、トップメニューで番組表のボタンを押してください。「トップページ-管理タブ」で「Rockバー型の番組表を使う」にチェックしておけば、次のような番組表が表示されます。

Newprogramtable1

観たいチャンネル/番組の行をクリック/タップすると、上の絵の「日テレ1」のように選択された状態になります。
これをもう1度クリック/タップすると、次のようなポップアップが表示されます。

Newprogramtable2

放送内容を確認のうえ、このまま視聴する場合は、ストリーム番号と利用するBonDriver、および解像度を選んで、[視聴]ボタンを押してください。
視聴しない場合は周りの暗いエリアのどこかをクリック/タップすればポップアップは消えます。

この時、どのストリーム番号とBonDriverを選択すれば良いかの手助けとして、既に他で使われているストリーム番号とBonDriverには頭に*が付き、使われていないもので最も番号の若いものがデフォルトで選択されますので、普通はこのまま視聴ボタンを押せば良いです。
(ちなみにBonDriverは複数回使えるタイプもありますが、そういう使い方をする場合は*が1個ついている状態のものを改めて選んでください。2回使われているものには*が2個付きます。)

.視聴ボタンを押すと、次のような「配信準備中」の画面になります。

Tvremoteviewer_1

この画面が出ている間、サーバ側で配信用のデータファイルを準備していますので、しばらくお待ちください。視聴ボタンを押してから約5~10秒で準備完了して視聴画面に切り替わります。

しかし、設定や指定が正しくないと何十秒経っても表示が変わらないか、場合によっては「配信されていません」と表示が変わったままになることがあります。

Tvremoteviewer__2

これは例えば、そのチャンネルの受信に適切でないBonDriverが指定されていたり、そもそも設定の問題としてスクランブル解除の設定がうまくできていない、デフォルト解像度が設定されていない、というようなミスがまず疑われます。いくつかのチャンネル/BonDriverでやっても同じ現象が起きる時は、設定を再度見直してください。

④ 視聴画面の操作について

無事配信が開始されれば、まずは標準のブラウザ視聴画面になります。

Tvremote_browserscreen
(右の実況勢いエリアは「実況」ボタンを押せば出現します。)

ただしスマホ/タブレットの場合、多くのブラウザでは「ストリームの開始は必ず人が介在する」 という暗黙のルールに従っており(無駄なデータ課金を避ける意図があるようです)、したがって動画は本来自動開始できず、動画エリアには最初、Tvremoteviewer_playbutton のようなボタンが表示された後、数秒で図のような大きなスタートボタンが表示され、これをタップすることで動画がスタートします。

Trvstartbutton1_2

この大きなボタンは日頃スマホ等をどのように持つかに合せて、出現位置をカスタマイズすることができます。(トップページ管理タブ)
Autostartsetting

但しモバイル環境でもブラウザによっては、自動開始をサポートしている=毎回スタートボタンを押さなくてもよいタイプもあります。ちょっと調べてみた結果はこちら。

Autostartmatrix3

iPad/iPhone のiOS環境ではiLunascape、AndroidではDolphin Browserが自動開始をサポートしています。ただ機種や回線速度によっては自動スタートできない事もありますので、その時はスタートボタンで開始してください。
特にiPad/iPhoneの場合iOS 9.x以降はタイミングにシビアで、動画読み込みが間に合わないと一発でスタートできない事があるようです。その際はちょっと待ってから、(スタートボタンタップ後に現れる)図のボタンを押してみてください。
Iosrestart

このような自動スタートにそれほど拘らないのであればお好みのブラウザが使えます。他の機能との兼ね合いもあります(例えばiPadのiLunascapeはPiPと相性が悪いという話もあります)ので、使い勝手の気に入ったものを選べば良いです。

他の基本設定として、AndroidやiOSの場合、デフォルト設定では動画再生にNative HLSプレーヤーをそのまま使うようになってますが、(トップページ管理タブで図の位置がチェックされた状態になっている)

Hlsrel1

このチェックを外せば添付の汎用プレーヤー(Projekktor)が動くようになります。
通常はAndroid、iOSの環境でProjekktorを使うメリットはありません。(但しFirefoxはNative HLSプレーヤーが使えませんので、デフォルトでチェックされていない=Projekktorを使う設定になっています。)
ただ、少し古いAndroidではProjekktorのほうが再生安定する場合があります。
もしAndroid 4.2x以前のバージョンで動画再生が安定しない場合は、上図のチェックを外してみてください。
.

さて動画を起動すると、iPhone の場合は、再生開始と同時に全画面表示になり、iPhone標準のビデオプレーヤーで視聴する形になります。仕様上動画のブラウザ視聴はできません。

Tvremoteviewer_iphone iPhone全画面表示
(上下のバーは数秒で消え、画面タップで再表示。これは他も同じ。)

iPad/Android の場合はブラウザ画面のままで再生開始します。

Nicotvremote_w_nico_ipad_2 iPadブラウザ表示

全画面ビデオプレーヤーの方が良いかたは「動画エリアの右下」をタップすれば、それぞれOS標準のビデオプレーヤー全画面表示になります。
全画面だと実況が流せないのが弱点なのですが、映像に集中したい時はこちらでどうぞ。

Tvremoteviewer_ipada2 iPad全画面表示

このタイミングで画面が止まっている時は、下のPlayボタンTvremoteviewer_playstart を押せば動画開始します。

なお回線状態が悪いと、映像/音声が時々止まったまま自動で再開しないことがありますが、そういう時もこのボタンを順に StopStopbutton PlayTvremoteviewer_playstart と押せば大抵の場合再開します。(ブラウザ視聴の場合も左下のボタンを同じように2回押してみてください。)

iPhone/iPadとも元のブラウザに戻る時は画面をピンチインするか、「完了」をタップしてください。
.

いっぽうブラウザ視聴ではPC/Mac/iPad/Androidとも共通で、以下のような視聴画面&操作になります。

Nicotvremote_w_nico_pcmain

画面構成はどの機種でも同じで、どちらかというとYouTubeの操作に近くなります。
下のコントロールバーは暫くすれば消えますが、マウスの軌跡によって消えないことがありますので、以下の絵もご参考に。

Funcbar

動画エリア右下のボタンを押すと全画面表示になります。但しPCで全画面視聴しようとすると、全画面化直後に右・下が欠けた状態になるかもしれません。
その際は動画が表示されているエリアのどこかを1秒程度の間隔を置いて2回クリックしてください。それで正しく表示されるようになります。

Tvremoteviewer_projekktor_a2

PCの画面操作にはこのようなちょっとしたクセがありますが、慣れの問題かと思います。

なおPC視聴の場合、TvRemoteViewer_VBサーバに最初にアクセスして全画面表示する時だけ図のような「許可」を求めてきますので

Tvremoteviewer_projekktor11Chrome
Tvremoteviewer_projekktor1Firefox

速やかに「許可」してください。それ以降の全画面視聴時には聞いて来なくなります。

全画面から元の画面に戻るときはEscキーを押すか、右下のTvremoteviewer_tonomalscreen をクリックしてください。

全画面表示は「ながら見」に不便で実況も表示できませんので、汎用的にはブラウザ視聴のほうがお勧めできます。その際動画サイズ調節機能としては「ズームバー」をご活用ください。
下のスクリーンショットのように視聴画面で「ZoomBar」のボタンを押すと、動画エリアの上にズームバーが表示されます。

Newzoom1
           ↓
Newzoom2

これをスライドさせていくことで、画面に合ったお好みの動画サイズに調整できます。
バーを操作しにくい時は ±ボタンで10%ずつの調整ができ、また Xボタンで100%に戻すこともできます。

ただAndroid端末の場合殆どのブラウザでは、動画入り画面(すなわち視聴画面)では、縦横の向きを切り替える度に全体が強制的に縮小表示される仕様になっているため、操作ボタンが小さ過ぎると感じるかもしれません。
そうなるのを出来るだけ防ぐためには、事前にZoomを使って動画サイズと文字サイズの差が大きくなり過ぎないよう調整しておくのがお勧めです。
全く別の対策としては、DolphinBrowserのように縦横入れ替えでも勝手に縮小表示されない(されてもワンタップで元に戻せる)ものもありますので、Androidでお使いの方は試してみると良いと思います。

DolphinBrowserの設定例
Andrdol1
Andrdol2 Iruka1

他に、再生中のストリームのURLを表示したり、外部プログラムと連携させる機能もあります。
URLボタンはデフォルトでは非表示になっていますので、

Urlstream

この機能を使いたいときはトップ画面・管理タブの「URLボタンの設定」で適切な機能を選んでください。例えば「ストリームURLを表示」を選んでおけば、以下のようにボタンが表示され、押すことで現在のストリームのURLが表示されます。

Nicotvremote_w_nicourlbtn1

Nicotvremote_w_nicourlbtn2

これは他の動画プレーヤーで視聴する場合を想定しています。例えばAndroid環境でMX動画プレーヤーなどで観たい、Mac環境で(こういう話もありますので)QuickTime X をテレビ代わりにして観たい、というような場合、ここからストリームURLをコピペすれば良いわけです。

また、ここを「ブラウザに渡す(アプリ選択機能前提)」または「MIMEタイプ指定でリンク」に設定すれば、URLボタンもそれぞれ以下のようなボタンに変わり

Urlbuttonalterd

これを押せばそれぞれの方法で、ブラウザ経由でのアプリ起動を試みます。
外部プレーヤーの連携ではHabit BrowserのようにURLのパターンで起動アプリを指定できるものは前者で良いと思いますし、標準ブラウザやChrome、Firefoxの場合後者の指定で、初回にこのストリーミング・タイプに紐づけて起動するアプリを選べますので、MX動画プレイヤー等に紐づけすることができます。

この機能はAndroid端末では元々こういう話があり、外部プレーヤーと連携させたいというニーズに対応したものです。

但しTvRemoteViewer_VB v1.03、TvRemoteFiles v1.04以降の組み合わせで利用すれば、このAndroid端末での再生問題はほぼ解決しますので、敢えて外部プレーヤーを利用する必要性は減っている筈です。
.

⑤チャンネルの切り替え

視聴画面で図のチャンネル名をクリックすればプルダウンでチャンネルが選択できますので、ここで選んで[視聴]を押せば、視聴中のストリームのチャンネルと解像度を切り替えることができます。(解像度だけの切り替えもOKです。)

Changingchanneldirectly

ただ、ここでのチャンネル切替えは一覧性が良くありませんし、各チャンネルで放送中の内容もいちいち情報ウインドウで確認することになります。
この辺のチャンネル切替えをもっと使いやすくするために、TvRemoteViewer_VB v1.05以降では、サイドパネル番組表の機能を付けました。

Sidepanelpg2

Sidepanelpg3

「番組表」ボタンを押すと、右側のサイドパネルに図のような番組表が表示されます。
ここに現在のストリーム(BonDriver)で視聴可能なチャンネルと番組の一覧がリアルタイムで表示されます。
この表示は3)の新番組表の仕様に準じます(但し局名とタイトルのみ表示)ので、詳しくはそちらを参照してください。

「番組表OFF」ボタンを押すと番組表は非表示となります。(もし実況ONの状態なら、隠れていた勢いカウンタと遅延時間バーが表示されます。)

Sidepanelpg

また上の図にあるように、番組表をクリック(タップ)してチャンネルを選択状態にすると(約10秒)、番組詳細が情報ウィンドウに表示され、選択状態のチャンネルをもう一度クリック(タップ)するとチャンネルが切り替わります。
その際にチャンネル切替えを実施するかどうか確認メッセージ

Confirmchchange

を表示することも可能で、これは「トップページ-管理タブ」で設定できます。

Sidepanelpgctrl

これをチェックしない(デフォルト)のほうがチャンネル切替えが素早くできますが、逆にタップ操作のミスの多いタブレット/スマホでは、チェックしたほうが「うっかり操作ミス」による意図しないチャンネル切替えが防げますので、却って使いやすくなります。この辺の設定はお好みでご選択ください。

さてHLS配信は仕組み上、TVチャンネル切り替えそのものは速くない(5~10秒)のですが、TvRemoteViewer_VBの場合、多ストリームの利用でそれを補うこともできます。
もしメインの番組を見ながら時々チェックしたい裏番組があるとか、いくつかのチャンネルをザッピングしたいという場合には、いちいちチャンネルを切り替えるのではなく、(チューナーの数にどれだけ余裕があるかによりますが)複数ストリームで観たいチャンネルを予め立ち上げておくと良いわけです。
複数ストリームが立ち上がっていれば、視聴画面では図のように表示されます。

Trvswcnl

ここで切り替えたいストリームを選択して「切替え」ボタンを押せば、ほぼ瞬時にそのストリーム視聴に切り替わり、まさにザッピングしている感覚になります。(機能上は並列配信数の制限はなく、MAX_STREAM_NUMBERで定義した数までの並列配信が可能です。)
この辺の使い勝手は多ストリームでの安定動作を目指したTvRemoteViewer_VBのメリットになります。

並列配信は実際に視聴していない限り回線の負荷にはなりませんが、TV放送をストリーミングする場合サーバ側はその間ストリーム数分のエンコードを常時おこなっているわけで、可能な並列数はCPUの能力と配信解像度に依存します。(配信解像度が低いほど負荷は低くなります。)

ちなみにうちにあるi5 3570Sのマシンを配信サーバにして実際に並列テストしてみたところ、解像度[320x180L]では8並列でもCPU使用率80%前後で問題なく配信、[640x360]では4並列で80%程度で5並列では100%に達しました。(ソースはいずれも地上波HD)
3570Sは4コアでミッドレンジの上程度の能力ですので、ご参考まで。
.

視聴が終わったら画面下の操作エリアにある「このストリームを終了する」をクリックすれば、現在のストリームを終了した上でトップメニューに戻ります。また「この」を「全ての」に替えれば、自分自身も含めた全てのストリームを終了させた上で、トップメニューに戻ります。
とりあえず視聴を中断するけれどストリームは維持したい、という時は「トップメニュー」をクリックするだけで良いです。

ストリームを維持しても他の画面に遷移すれば、他の端末で該当ストリームを観ていない限りは実際の配信は行なわれず、回線も無駄遣いになりません。但しサーバ側ではエンコードをずっと続けますので、その分のCPUを使い続けます。その辺の操作の選択は、使い勝手とサーバの余力で都度選べば良いです。

3)Rockバー型番組表について

さて、サーバーの基本機能て提供される番組表はベタに文字を並べたインターフェースなのですが、逆にスクロールが軽快に動く点で使いやすいと私は思い、最近まで改良を加えていませんでした。
しかし流石に一覧性の悪さや目的の番組を探すまでの時間が気になってきましたので、TvRemoteFiles V1.02では、「スクロールが速い」という長所を残しつつ、この番組表をRockバー風の機能のものに差し替えられるようにしました。

既にここまでで軽くご紹介済みですが、ここではこの番組表の使い方をもう少しご説明いたします。

Newprogt1

Rockバーと同じくリアルタイムに内容が更新されていきます(TvRemoteFiles V1.03以降)ので、開きっぱなしにしておけば今どの局で何をやっているのかが判りやすいと思いますし、後のほうにあるポップアップ起動の設定に変更すれば、この「Rockバー型」を常駐させた上で、視聴画面を毎回動画サイズに合わせた別ウィンドウで起動させることもできます。

またこの番組表フォーマットで、トップ画面にお気に入りチャンネル(番組表ポータル)を表示することや、視聴画面のサイドパネルに表示しながら、直接選局することも可能になっています。

これを使うにはトップ→管理画面で

Pgsetting

番組表設定のところで「Rockバー型の番組表を使う」にチェックをしてください。それで番組表を呼べば新しい番組表が立ち上がるようになります。

この新しい番組表はいろいろカスタマイズが可能です。その場合「番組表カスタマイズ」ボタンを押してください。すると以下のような画面がポップアップします。

Pgcustom

ここで設定した項目は、右下の「適用する」を押せば反映されます。

まず表示項目については、上にある「時間を表示」「詳細を表示」で選択できます。
画面が広い端末では両方とも「表示する」のままで良いと思いますが、スマホなど狭い画面の端末では

Newprogt2

このように「番組時間」を省略したほうが一覧性が良くなります。
番組の時間も判らないのでは番組が始まったばかりなのか終わる間際なのかも判らない、という声もあるかもしれませんが、実は「色」でそれを表すようにしました。大まかな目星は見た目で付けられます。

局名以外のエリアは指やマウスで左右にスクロールしますので、詳細情報は敢えて省かなくても、必要な時に右に辿って行って見ることができます。

(尤もPCであればモニターで充分横全部の情報を表示できます。)
Newprogt3_2

またマウス操作のPC/Macでは、番組名のところにマウスオーバーすれば最初の絵のように詳細情報がポップアップするようになっていますので、日頃はこれもRockバーのように縦長にして置いておくのも良いかもしれませんね。

さて、この番組表から観たい番組が決まったら、その行で一回クリック/タップしてください。すると行が反転しますので、

Newprogt4

この状態でもう1回この行をクリック/タップすれば

Newprogt5

開始指示の画面が出てきますので、ここでストリームを起動すれば良い訳です。

またこのポップアップ画面は番組内容の確認用に使っても有用です。(ポップアップエリア外の暗くなっているところをクリック/タップすればポップアップは消えます。)

なお、タップ操作のモバイル系の場合、あまり急いで2回タップするとダブルタップと見なされて(拡大/縮小など)別の動作をしてしまいますので、タップの間隔は気持ち1呼吸入れるのがコツです。(マウス操作の場合はダブルクリックでも構いません。)

この番組表の文字の色は、番組の進捗を表しています。
Newprogtprogress
(実装では一応色覚にハンデのある方でもわかるよう微妙な明度の差もつけたつもりですが、わかりにくい場合は教えてください。)

このように番組が進むに従って色が変わっていき、赤やグレーになった番組は今から見てもほぼ終わっているか、既に終わって(特にBS/CSの場合、番組時間帯の終わりは長い通販や番宣が入ることが多いですので)余り今からチャンネルを合わせる意味がないかもしれない、という意味になっています。(他に放送休止中や通販番組もグレーアウトします。)

次の番組は?

番組時間が残り9分以下になると、番組の表示はグレーアウトしますが、「詳細」欄には次の番組情報が表示されるようになります。

Nextprogram

Nextprogram2

次はどのチャンネルに行くか、迷ってる時のご参考にどうぞ。

番組表ポータル

他の便利な設定もご紹介します。
カスタマイズ画面の上にある「ポータル」Pgportalchk をチェックすると、トップ画面にも図のように番組表がリアルタイムに表示されるようになります。

Pgportalview

ここから直接視聴の開始も可能です。

ポータルに表示する放送局はカスタマイズ画面のチェックマークで選択できます。

Pgportalsetting

あまり沢山表示するとポータルの意味がなくなってしまうので、30局を上限にしています。
(それ以上はチェックできませんので、入れ替えたいときは不要な局のチェックを外してください。)

ちなみに番組表の下には以下のようなコントロールが付いています。(ポータル・各番組表共通で表示されます。)

Pgcolorsetting

これは番組表背景の色と明るさをカスタマイズするものです。
色は青緑赤の三色から選べます。

Pgcolor

背景は暗くすれば文字はくっきりしてきますが、あまり暗いと進行に合わせて変わる文字色の違いが判りにくくなる点はご注意ください。(明るめの背景色のほうが番組が終わりに近くなると背景に溶け込んでいく効果があるのと、全般に目にも優しいです。)

また、番組表の表示順もここで変更できます。
(サーバiniファイルでも表示順は設定できますが、ここでの設定はそれを上書きするものになります。)

Pgreorder

局の上でクリック/タップしていけば複数局が選択できますので、その状態で「上へ」「下へ」のボタンを押してください。選択した局が1つの並びになったうえで上下に動きますので、

Pgreorder2

気に入った並びになったら「適用する」で保存してください。

なお、(他の項目は端末/ブラウザ毎の設定ですが)この局の並び替えだけはサーバーで共通の設定になります。
これは表示量は端末毎の特性で変えたいのに対し、どの局を上に表示するかは端末によらない好みの話ですので、一箇所で変えれば全体に反映させた方が便利じゃないかという発想です。

以上が新番組表です。他にもいろいろなタイプを考えたりもしたのですが体力との兼ね合いもありますので、とりあえずはこの辺をうまく使っていただけると。

4)ニコニコ実況表示機能

視聴画面に「実況」のボタンが表示されている時は、ニコニコ実況を表示できます。

Nicotvremote_w_nico1nicobtn1
        ↓
Nicotvremote_w_nico1nicobtn2

① ニコニコ実況って何?という説明は今更不要かと思います。(こちらにもちょっとした説明があります。)
これがあると楽しい、という方にとってはなくてはならないものですし、邪魔という人にとっては大した価値もないものかもしれませんが、少なくともテレビの楽しみ方の新しいバリエーションかと。

この機能もここでは汎用的なブラウザのHTML5とAjaxの技術(のみ)を使って実現していますので、プラットホームを選びません。

Nicotvremote_w_nico_ipadnico これはiPad画面

但しブラウザの機能を使うため、全画面表示では使えません。現在ブラウザ視聴でもZoom機能によって好みのフレーミングで視聴できますので、通常は余り大した問題ではないのですが、iPhoneに限っては(全画面表示でしか動画を表示できないため)うまく使えないのがちょっと残念な所です。(但しiPhoneでの代替の楽しみ方も後ほどご紹介します。)

またスマホ/タブレットでは動画エリアにタップすることで操作する場合がありますが、コメントが流れている時は(コメントが動画の上に被っているため)うまく操作できない場合があります。その際は「実況OFF」のボタンを押してコメントを消してから操作してください。再度ボタンを押せば実況はまた表示されるようになります。

② さてリモート視聴、特にHLSを使う場合、リアルタイムの放送とはちょっと時差(遅延)がありますので、コメントの表示タイミングの調整が必要になる必要があります。その調整に使うのが右側に現れる「コメ遅延時間」のスライドバーです。

Nicotvremote_w_nicodelaybar

視聴開始時にはシステム側が計算してこの遅延時間を自動でセットしますが、このスライドバーを動かすことで、コメントのタイミングがずれていても、タイミングを合わせていくことができます。
小さな調整幅であればコメントもバーに合わせて前後に巻物的に動きますので、ズリズリ動かしながら調整していくと判りやすいと思います。

また、短い時間であれば動画は止めることもできます。(動画エリアの左下をタップ。)その際はコメント表示も連動して停止しますので、遅延時間がそれに応じて増えていきます。

遅延時間が60秒まで定義してあるのはこの意図的な動画停止による大きな遅延を想定しています。
なぜ60秒が上限かというとサーバ側が放送ストリームの場合、そもそも遅延が60秒弱までの分しか動画を保存していないためで、それ以上止めてしまうとそのうち不意に再生位置がジャンプして、結局60秒以内の遅延に落ち着きます。

ちなみにストリームを開始した場合には遅延も十秒台で、システムがセットする値との誤差も少ないのですが、
車輪の絵が回転しているバッファリング状態もきちんと検出して時間調整しますが、時々ストリームをうまく繋げられずに動画が止まっているような状態は検出できませんので、その時はスライドバーで遅延時間に加えてください。)
それに比べると既に存在するストリームを視聴する場合は、HLSの特性上開始位置が不確定で誤差が大きくなりますので、タイミングの判りやすい場面で大まかなずれの秒数を数えて、それで調整するとよいと思います。

③ 実況勢い表示

さて、サイドパネルには各チャンネルの実況勢いが表示されます。

Trendpanel1_2

BSや一部のチャンネルは勢いが0でない時のみ表示されます。またこのサイドパネルは番組表を表示している間は下に隠れますが、番組表OFFにすればまた現れます。

勢いが気になるチャンネルをクリック/タップすれば、10秒間だけそのチャンネルが赤くなり、情報ウインドウに現在のそのチャンネル(またはご視聴可能な系列局)の番組内容が表示されます。

Trendpanel2

その10秒の間に再度そのチャンネルをクリック/タップすれば、(使用中のBonDriverで切り替え可能であれば)そのチャンネルに直接切り替えることができます。

Trendpanel3

その際図のように確認メッセージを表示することもできますし、確認を省略することも出来ます。→設定方法はこちら

④ iPhoneでの実況機能利用

iPhoneは仕様上、HLSの再生は必ず全画面のビデオプレーヤーになってしまうため、このHTML5の仕組みを使った実況機能をそのまま楽しむことはできません。
ただ、もしテレビなどで別途視聴できる時は、iPhoneはブラウザ表示のまま、コメントプレーヤーとして使うこともできます。

Nicotvremote_iphone2

Zoom機能等を使ってコメントを見やすい大きさに調整した上で、下の⑤の図にある「プレーヤー停止中はコメントも停止」のチェックを外してください。テレビを観ながらiPhoneでコメントを眺める、という使い方が出来ます。

⑤ コメント表示エリアの制限、実況文字の不透明度、文字サイズの調整

トップページ管理タブに、実況表示関連の設定項目があります。

Jkparms

このうち「表示領域を制限する」の設定では、スライドバーでコメント表示エリアを調整することができます。(動画エリア上辺を0%として、コメント表示エリアを上下%で指定する。)
例えば動画エリアの上端にだけコメント流したいとか、真ん中から下のエリアにだけ流したいという場合には、ここで調整してみてください。

また「不透明度」の設定では、流れる文字の(不)透明度を指定できます。(100%で完全に不透過。数字が小さくなると透明度が高くなる。)
いわゆる「弾幕」で動画が全く見えなくなるのも困る、という方はここを調整してみてください。

更に現在のバージョンでは、実況文字サイズの変更ができるようになりました(標準サイズの0.4倍~2.4倍 0.2倍刻み)。動画サイズに対してコメントの大きさを変えたい時はここで調整してください。

⑥ 最大コメント表示数の調整機能(TvRemoteFiles ver1.14以降)

端末の能力を超えてコメントが大量に同時表示されると、コメントの流れのカクつくようになったり、映像もカクつくことがあります。

意外なことですが、コメント数が多い時の映像のカクつきはCPU性能控えめなAndroidやiOSよりも、Flashで動画再生をソフトウェアエミュレーションしているPCのほうが出やすい傾向があります。(映像解像度を下げると緩和されます。)
また後日サポートされたChromecastやFireTV Stickの場合、映像自体はH/W動画支援のおかげで元々スムーズなのですが、Javascriptの処理能力は限られているため、コメント数は絞らないとスムーズに流れなくなる他、あまり無理をさせると映像のほうまでカクついてきます。

またそもそも実況表示エリアを絞っている場合は、あまりコメントが多すぎても重なって読みにくくなるだけですので、ある程度絞ったほうが快適になります。

そこで、現在のTvRemoteViewerでは最大コメント数を、Chromecastのような性能の限られた環境ではデフォルト40、それ以外ではデフォルト120にセットした上で、これを10~360の間で調整できるようにしてあります。(それを越えた数のコメントは間引かれます。)
コメント数20程度だと大分寂しいものの負荷はかなり軽くなります。40ぐらいにすればちょっとした(100コメ/分ぐらいの)勢いでもカバーできますし、120もあれば、よほどの弾幕状態にならない限りは十分だと思います。
1000コメ/分のような弾幕状態をそのまま表示したい場合は、ここを200以上に(処理能力に余裕があれば)設定しても良いと思います。

この設定は実況サイドパネルの図の位置にある調整用スライダーで調整します。

Jkmaxmsg0

このスライダーを動かすとボタンに表示されている数字が赤くなりますので、

Jkmaxmsg

確定したい数字になったらボタンを押してください。するとコメントプレーヤーが再起動してシステムに反映されます。

コメントの負荷は表示だけではなく、単なる読み込みにも負荷もかかっていますので、同じ環境で同じ最大コメント数設定でも「弾幕状態」の番組では重くなります。したがって映像やコメントが重いと感じた時や、重なって読みにくくなくなった時は、都度ここを下げてみてください。

⑦ 実況がうまくスタート/表示されない時はコメントプレーヤーを再スタートしてみる。

どういうタイミングで起きるのかは何とも言えないのですが、実況がスタートされていて、実況サイドパネルも表示されてそこそこのコメントもある筈なのに、数十秒待っても実況コメントが全く表示されない事があります。(特にiPadで起きることが多い。)

そういう時は実況プレーヤーを再スタートさせれば復旧することが多いです。
やり方は、「⑥最大コメント数の調整機能」 のボタンを、スライダーを動かさずにそのまま押してみてください。すると単純に実況プレーヤーが再スタートします。
大抵はそれで実況表示されるようになると思います。

⑧ 投稿機能は保留

現在のTVRemoteViewer_VBサーバはプロキシ機能も持っているため、サーバを経由してニコニコにログインしてコメントを投稿する機能も容易に実現できると思います。

ただリモート視聴でのタイムラグを考えるとコメント投稿は(数秒先を読む「心の目」がない限り)いまいちノリの悪いものになる気がしますので、いまのところ実装の優先順位は下げています。現状ここはあくまで見て楽しむということで、投稿したい時は気合入れてTVTest+NicoJK等でタイムラグ無く参加するのが良いと思います。twitterと違ってタイミングに合せた”シンクロ率”がニコニコ実況参加の醍醐味ですから。

5)2ch実況表示機能

TvRemoteFiles ver1.14以降では2ch実況を流す機能が追加になりました。

Jikkyomix1

表示はニコニコ実況と一体化していますが、どちらがどちらのコメントか判るように2ch実況にはお好みの色を付けることができます。

Jkmsgcolor

またver1.22以降では、(2ch実況はこうでなくては、という方もいるかもしれませんので)色をランダムに付けるモードも追加しました。ランダムとは言っても一応同じIDの人のコメントは同じ色になります。

Random1

Random4

なおAndroidでHabit Browserからこの機能を使う場合、「設定→コンテンツ」 で「広告ブロックを利用する」をOFFにしてください。(ONだと2chで送ってくる広告データを検出して通信をブロックしてしまうようです。)

2ch実況を加えることのメリットは、(NHKやキー局の)局専用板があるのとは別に、BS、CS、野球/サッカー/スポーツ等のカテゴリー板や、いわゆるなんJ等もあってそれなりに実況民が集まる番組であれば必ずどこかに実況スレがある点です。

ただ逆を言えばニコニコのように放送局ごとの実況場所が決まっている訳ではないので、システムにとっては適切な板/スレを探す機能や、実況中のスレが1000レスに達して次のスレに移る時に(スムーズに次スレが立つと決まっている訳でもないので)それを自動で検知して適切な次スレに繋げていく機能も必要です。
あるいは局専用板でも番組が切替われば主スレが途中で切替わりますので、それらを想定した都度のスレ勢い計測も必要になるなど、いろいろと仕組みが必要になります。そういうことを考えながら開発にも時間をかけていました。
結果としてこのプログラムでは、一旦板/スレを選べばあとはほぼ自動で動きます。

2ch実況を開始するには、(ニコニコ)実況機能を開始したあと、実況サイドパネルに新しく追加された「2ch実況」ボタンを押せば、

Jikkyomix3

以下のポップアップが表示されます。

Jkpup1

この段階で主要キー局/系列局や、BS/CS/スカパープレミアムでも常設スレが立っているような局では上のようにデフォルトの板が表示されています。
が、そうでもない局やスポーツ専門チャンネルでは「板選択」とだけ表示されますので、

Jkpup2

まずはプルダウンで希望する板を選択してください。

Jkpup1boards

なお、デフォルトの板が表示されるチャンネルでも、野球/サッカー/テニス/競馬などは専用板の試合/チーム専用スレや「なんJ」スレのほうが活発に実況がされていますので、番組内容によってそちらも見て、勢いをチェックしてから選んだほうが良いと思います。

プルダウンでは局の特性によってできるだけ適切な板が上に来るように都度調整されています。

Jkpupsports スポーツ専門局でのプルダウン

Jkpuplocal 地上波独立局のプルダウン

地上波NHK/キー局で局専用板の実況を流す場合は、「■■ 自動選択 ■■」という項目があってデフォルト選択されています。

Jkpup1_2

その状態のまま「開始(あるいは変更)」を選べば、その板で最も勢いのあるスレを常に自動選択するようになります。(これを仮に「板指定モード」と呼びます。)

また、前回視聴時に実況ONの状態で終わっていれば、その端末で次にテレビ視聴する時も実況自動スタートの際に、「板指定・自動選択が使えるチャンネルであれば」、それが指定されたものとして自動で2ch実況もスタートします。

局専用板の無いチャンネル、また東京MXのように局専用板があっても殆ど機能していないチャンネルでは、この「自動選択」という選択肢はありませんので、希望する板とスレを選んでください。(但しかなりの数の局でデフォルト板とデフォルト起動スレの参考名がサーバーファイル「2chThreads.json」に設定されていて、とりあえずその設定で「スレ指定モード」の自動起動を試みるようになっています。)

またデフォルトの板が表示されているチャンネルでも、野球/サッカー/テニス/競馬などは専用板の試合/チーム専用スレやなんJのほうが活発に実況がされていますので、番組内容によってそちらも見て、勢いをチェックしてから選んだほうが良いと思います。

Ch1_2

「勢い測定」ボタンを押すと、(表示中のスレ一覧を取得した時点からシステムが最低10秒程度の間を置いた上で)増加したレス数を計算し、上図のように増加の多い順にスレが表示されます。これでどのスレが生きているか、適切に実況されているスレか、が判断できると思います。

ここからスレをクリックして選んだ上で「開始(あるいは変更)」ボタンを押せば、

Thrpower

そのスレを使った実況表示が始まり、そのスレが終了した後も

「最初に指定したスレタイにどれだけ名前が似ているか、またスレ勢いはどうか」

を総合的に判断しながら適切なスレを選んでいきます。(これを仮に「スレ指定モード」と呼びます。)
一度2ch実況をスレ指定モードで起動すれば、「その番組時間が終わるまでは」、サーバーに「チャンネル+指定した板/実況スレの紐付け情報」が記録されます。
この機能によって、他の端末に移ってそのチャンネルを見続けたい時や、一旦別のチャンネルを観た後でチャンネルを戻しても、該当の番組が放送されている間は指定したスレの実況が自動でスタートします。この辺は特にスポーツ観戦時に便利かと。

一応ご参考までにまとめると、2ch実況の自動スタートでは以下の3種類のロジックが働くことになります。
Thrselection_4

2ch実況ボタンの下には、2ch実況のステータスが表示されています。
実況開始時に「板指定モード」を選んだ場合、また上の3つのどれかのパターンで自動起動する際は、最初に図のように

Thrselect1

黄色の背景でスレ選択中、というメッセージが表示されます。この間は勢いを自動計測しながら最適のスレを選んでいます。
十数秒で最初の選択結果のスレが表示されます。そのとき5秒間だけ、新しく選択されたことが判るように背景が赤くなります。

Thrselect2最初の5秒間だけ赤い背景で表示される

Thrselect3その後は通常表示に。(スレが変更されればまた5秒間赤背景になる。)

実況中はコメント取得の度に、取得したコメント数がスレ名の頭に勢いとして(7) のように表示されます。これは10秒間のコメント数ですので、6倍すればニコニコの勢いと比較できます。

スレが1000レスに達したら再度背景が黄色くなり、次スレを選択していきます。

Thrchange1
        ↓
Thrchange2
        ↓
Thrchange3

10秒~20秒で次スレが選択されてほぼ切れ目なく実況継続していきますが、スムーズに選択される場合は黄色背景の「次スレ選択中」が表示されない場合もあります。

この辺のスレの選択は勢いの揺らぎもありますので、コメントがまばらな時や、実況開始/スレ切り替え直後の数十秒間は最適のスレが選ばれるとは限りませんが、大抵は暫く待っていればより適したスレが選択し直されますし、板指定モードなら番組が替って主スレが替っても数十秒で自動追尾されます。

ただしたまにスレ指定モードでスレ名称ががらりと変わってしまったり元々名称が単純すぎる場合、あるいは局専用板でないにも関わらず番組専用スレが次々に立つ場合には、システムがうまく次スレを選択できない事もあります。そういう時にはポップアップからスレを指定してください。
(特にNHK BS板は、利用するチャンネルがBS101、BS102、プレミアムと3局あるにもかかわらず「あまちゃん」のような番組専用のスレが立つため、デフォルト定義では番組の切れ目で追尾できなくなる事があります。そういう時には明示的にスレを指定してください。)

なお、仕組み上は複数スレが盛況だったり候補になる場合(例えば巨神戦での巨専/とらせん、なんJスレなど)それらを同時に流すことも出来るのですが、実況板に余計な負荷をかけない観点で、同時に流せるのは1スレのみという仕様にしています。どうしても複数スレを流したい場合は複数画面を立ち上げてください。映像が不要な時は0x0モードで映像offにしたり音声offにしておけば良いです。

Jikkyomix2

2ch実況サーバ・アドレスの変更があったときに追尾する機能

今まで普通に使えていたのに2ch実況が全く表示されなくなり、暫くするとメッセージ欄に「通信エラー」と表示される事があります。
これは2chサーバが落ちているケースが多いのですが、たまに2chのサーバが変更になっている事があります。
今年(2015年)6月にも変更されたことがあり、その際はプログラムのリリースアップで対応したのですが、使う側に立ってみれば予告なしにおこなわれるこういった変更のたびにリリースアップを待たなければいけないというのも心許ないと思います。

そこでTvRemoteFiles v1.63では、サーバ変更を検査して変更があれば反映する機能を追加しました。
トップページ管理タブで、以下のボタンが追加になっています。

Trv2chaddrchk

これを押すと暫くアドレスを検査したのち、もし変更になったものがあれば、以下のように変更されたものの一覧が表示されます。

Trv2chaddrchkresult

ここで「反映」を押せばマスターに反映され、以後どの端末も2ch実況を今まで通り使えるようになります。2ch実況が表示されなくなった時はここでチェックしてみてください。(サーバが落ちている時は「アクセスできません」と表示されますので、判別できます。)
.
以上が2ch実況機能です。使う上では特に難しいことを考える必要もなくニコニコと並ぶ実況機能として使えますし、2chの実況板の性格を知っていけば更に便利に使えると思います。
尚、2chに関しては2015年3月以降いろいろな話があるのに対して、この機能は「公開されているスレを1つだけ標準のブラウザで開いて10秒単位で前回スレ番以降をリロードしながら動画の上に流す機能」なので、専用ブラウザの「2ch.netウェブサイトの閲覧及び書き込みを可能にする専用ソフトウェア」という定義には当てはまりません。(その辺の議論には応じられませんのでご遠慮願います。)
但しapiもdatも使用していないとはいえ、いつまで使えるかも保証はできませんので、あくまで期限不定のテスト機能としておきます。

ただ使ってみれば判る通り便利なのは確かですし、そもそも2chはニコニコのようにリアルタイムにコメントを読み込むような仕組みになっておらず、無理にやろうとすると数百ミリ秒単位に新規コメントを読みに行くような負荷をサーバーに掛けることになります。(それを避けるためNicortなども数秒~十数秒遅れのコメント表示になっているわけで。)

それに対して、TvRemoteViewer_VBはもともと映像自体に放送から十数秒の遅延がありますので、それを逆用すれば2chからの読み込みも十秒程度の間隔でゆっくりやって充分間に合いますし、もともとニコニコ実況用に作った遅延時間バーを使って映像にぴったり合うよう調整することもできます。(仕組み上、ニコニコと2chのタイミングがずれることは殆どありません。) そういう面でも2ch実況との相性は非常に良いと思います。
(残念ながら投稿機能やログを取る機能は無く、その辺に立ち入ると問題になりますのでやる気はありません。投稿する時にはお好みの専ブラを使ってください、ということで。)

6)ファイル再生のストリーミング

TvRemoteViewer_VBには、放送中の番組だけではなく、PCに保管されているtsファイル、mp4、avi、wmvファイルなど、大抵のメディアファイルの再生を配信する機能があります。(但しISOファイル直接再生はNG)

この機能を使うにはトップメニューから[ファイル再生]を押してください。iniファイルの指定に従ったファイル一覧が出てきます。

Filelist35
(サーバ起動後の初回のみ、サーバー側リスト作成ためこの画面を開くのに数秒かかります。)

ここの機能も豊富なのですが、要はリストで再生したいファイル名をクリック(タップ)して、上のほうでストリーム番号、解像度を指定した上で「再生」ボタンを押すだけでファイル再生が始まります。

という感じで気楽に使える機能ですが、以下ではもう少し使いこなすための機能をご説明します。

① ファイルリストは端末の能力に合わせ徐々に増えていく。

TS抜きチューナーを使い始めて日が浅いうちは、対象になる録画・映像ファイルの数もせいぜい数百個だと思いますので、どんな端末であっても扱いは簡単です。
ところがこれが何年も経って映像ファイルも数千を超えるようになと、PCでは何とかなるのですがモバイル端末だとファイルリストを軽快に扱う処理が難しくなっていきます。

そこでTVRemoteViewer_VBでは、最新の50件ほどのファイルリストで素早くファイル操作画面を起動した後、Ajaxを使って徐々に古いファイルリストを追加していく、という手法を取っています。
追加していくうちに端末の性能上これ以上のリスト追加は無理、と判断した場合、そこで取得は打ち切ります。
(このような作りの副産物として、多量のファイルリストで何件まで読み込めるか、をjavascript処理能力の簡易指標に使うことも出来ます。→参考

この形で端末の能力に合せてリストが表示され、また取得し切れなかった場合も後述の③ の方法でファイル名検索が出来ますので、iniファイルの指定はあまり難しいことは考えず、家庭内LAN上にある動画フォルダ全てを登録しておくことをお勧めします。

なお操作上の注意点ですが、ファイルリストの追加中(10秒に1回程度)は、HTMLに追加分を組み込むために一瞬動作を受け付けなくなります。

Filelist2

タイミングが判りやすいようにリストの背景が青くなりますので、その間(1秒前後)無理な操作はせずお待ちください。

ファイルリスト取得が完了した時点で、右下は日付ではなく「全てのファイル」という表記に変わりますし、もし端末の限界で取得を打ち切った時は件数の前に*が付いて、いずれにしろそこでファイルリスト取得は終了します。

ファイルリストの更新

このファイルリストはサーバーがリクエストの度に最新のものを作ってくれるのではなく、定期的にサーバーが作成したものがソースです。その更新間隔が結構長いため、端末側で何度表示更新しても、なかなか新しく録画した筈のファイルが反映されないような時があります。
そこで端末側からのリクエストで強制的に最新のリストを作って送り直してもらう「最新リストに更新」というボタンを追加しました。

Refreashfilelist

このボタンを押すと少し待たされますが、サーバー側が最新のファイルリストを作り直して送ってくれます。
録画したばかりのものがなかなか反映されない、という場合はこれを押してみると良いと思います。

② サーチ機能/ソート機能

画面上のほうにある「Search」欄を使ったキーワード検索で、リストを絞り込むことができます。

Filelistsearch1

この検索機能は

・英数大文字/小文字/半角/全角を区別せず検索できる。
・複数キーワードの指定には半角/全角スペースで区切る。
・not(含まない)という指定にはキーワードの頭に-を付ける。
・ -1のような文字自体を検索したければ"-1"と囲む。

という基本のほか、インクリメント・サーチに対応していますので、「検索」ボタン不要で、キーワードを入力/変更する度に即座に検索結果が反映されていきます。

ただし完全にインクリメント形式にするとスマホ/タブレットでは却って操作性が落ちます(カナ漢字変換で一時的に入れたアルファベットや平仮名にいちいち反応してしまう)ので、キー入力の度ではなく、スペース/Enter/バックスペースキーを押すことで検索が更新されるようにしています。
何か検索結果が更新されていない、と思ったらとりあえずスペースかEnterを押してみてください。PCなら検索欄やSearchの文字をクリックしてもOKです。

またTvRemoteFiles 1.77以降では(処理系によりますが特にPCでは)検索欄に履歴がプルダウンされるようになりました。

Srchhist1

検索結果からストリームを起動したりプレイリストに登録をおこなうと、その際の検索ワードが履歴に追加されていきます。

また実は画面最上部の赤い欄は、現在選択されているファイルを判り易くするという目的の他に、キーワードのコピペ元という意味も兼ねています。(色も特にスマホ/タブレットで選択エリアが判りやすい色にしています。)

これを活用するには、キーワードとして使いたい文字列を含んだファイルを選択した上で、PCであればここからマウスでコピペして検索欄をクリックすれば良いですし、

Filelistsearchpc1

スマホ/タブレットなら希望のキーワード辺りでロングタップ後、エリアを選択してコピーし、検索欄でペーストしてSearchを2回タップすれば検索結果に反映されます。

Filelistsearchipad1

尚、赤い欄はスマホ/タブレットでコピー操作の対象になるように編集可能属性になっていますが、ここでうっかり文字列を消去/変更してしまっても何の問題もありません。(単なる表示エリアですので。) 再度正しく表示させたければもう一度下のリストで選択すればOKです。

また、「パス名も検索」にチェックすれば、ファイルが存在しているドライブ名/パス名/ネットワークパス名 も検索対象になります。(リストには表示されませんが。)

他に、下のほうにある「名前順」「日付順」のボタンでリストをソートすることもできます。

Filelistsort1

これは特にシリーズ物の一覧を出したい時に便利だと思います。
現在選択中のファイルはソートしても必ず真ん中辺りにくるようにリスト位置が調整されます。リストの先頭に戻りたい時は「先頭行へ」ボタンを押してください。

このような検索機能を活用することで沢山のファイルの中から観たいファイルを探して再生するのが簡単になりますし、結果をプレイリストに登録すれば、毎回検索する必要もなく観たいファイルを順番に再生できるようになります。

リストを取得し切れない場合は「絞込み再ロード機能」を活用する。

①で説明のように対象ファイル数が多くなると、あまり速くないスマホやタブレットでは(たまに観たくなる)古いファイルがなかなかリストに出てこず、そのうちにリスト取得が打ち切られてしまう事もあります。
そういう場合は観たいファイルのタイトルがどういうものか大体判るはずですので、余り待たずに「絞込み再ロード」の機能を使って、サーバ側で予め絞り込んだファイルリストを送ってもらうことで、希望のファイルリストを素早く取得できます。

この絞込み機能の使い方は以下の通りです。

最初にファイル一覧を開いた状態です。右下に「キーワード絞込み再ロード」のボタンが表示されますが、有効になっていません。
Filelistselectedload1

ここで検索欄に観たい(昔録画した)ファイルのキーワードを入れ、EnterかSpaceを押して検索更新してみますが、まだその日時のファイルリストは取得されていないため、何も表示されません。
Filelistselectedload2

そこで(キーワードを入れた時点で「キーワード絞込み再ロード」のボタンが有効化されていますので)そのままの状態で「キーワード絞込み再ロード」ボタンを押してみます。
すると、そのキーワードがサーバに送られ、しばらくすると結果のリストが以下のように表示されます。この場合リストは日時で分割ロードされず、条件に合致するものがファイル日付に関係なく一挙に表示されます。
Filelistselectedload3

ここから希望のファイルを選んで再生スタートすれば良いわけです。

右下には絞込み件数が表示され、また絞込みを解除して元の全体リストに戻りたい時は、「絞込み解除して再ロード」のボタンを押せば元の全体リストに戻ります。
観たいファイルのキーワードが判っている時は、この機能を使って目的のファイルがすぐに見つかると思います。

但し(この絞込み再ロード機能はサーバ側の簡易な検索機能を使いますので)以下のような弱点もあります。うまくリストが表示されず空欄になってしまう時は、一旦絞込み解除した上でキーワードを変えてリトライしてください。

・キーワードは端末側サーチ機能と違って、 英数大文字/小文字/半角/全角を区別しますので、それらは正しく入れる必要があります。
 例えばMLB とMlb、MLB は区別しますので、ファイル名と同じものを正確に入れる必要があります。 またnot条件(-XXX)はサポートしていません。
・ブラウザの再ロードボタンを押しても、全体リストには戻らず絞込み状態のままになる。
 ページ移動せずに全体リストに戻りたいときは、ブラウザの再ロードではなく「絞込み解除して再ロード」ボタンを押してください。

なおこの「キーワード絞込み再ロード」ボタンは、全ファイルのリストを取得した時点で消えます。画面に表示されないかあっという間に消えてしまう、という方は十分に速い端末を使っていると思いますので、そもそもこの機能は不要かと思います。

④ フォルダ・ビュー(保存場所で絞込み)

TvRemoteFiles ver1.20 以降ではファイルの保存場所で絞り込む機能も追加になりました。
図のような「保存場所で絞込み」のチェックボックスが追加され、チェック状態にするとファイルリストの左側に図のようなフォルダリストが表示され、クリックして選択することで、そのフォルダ下に保存されているファイルだけが表示されます。

Folderview

「保存場所で絞込み」のチェックを外すか「TOP」をクリックすれば絞込みは解除されます。

エクスプローラーでファイル一覧を表示しているイメージに近くなり、フォルダの先頭の[+]をクリックすれば一階層下のフォルダ一覧が表示され、[~]をクリックすれば下の階層は隠れます。
ただしエクスプローラーと違う点は、

(1) コンピュータに存在する全てのフォルダではなく、表示対象の映像ファイルがあるフォルダだけが一覧になっている。
(2) 選んだフォルダの下位の階層に存在する全ての映像ファイルが表示される。(エクスプローラーでは直下のファイルのみ)

特に(2)は映像ファイルを扱う上ではこちらのほうが便利と考えていて、この辺のポリシーはWhiteBrowserを参考にしています。つまりファイラではなく映像データベースに近く、フォルダ名もあくまで絞込みキーワードの一種という扱いになっています。

⑤ ファイル再生開始

以上のようにして選択したファイルは、上の「再生」ボタンを押すことで再生スタートしますが、この際に指定するストリーム番号/解像度などの選択は、番組表の操作と殆ど同じですので、適切なものを選んでください。

Playfilestart

ここで「開始シーク位置」は番組表にはない指定ですが、これは映像ファイルの先頭から指定秒数だけ経った位置から再生する、というパラメーターです。(ちなみに秒数だけでなく、15:30 のような分:秒形式 の指定もOKです。)
ファイル再生直後は下にあるように再生位置の変更ができませんので、これは特に先頭がCMや番宣であると判っていて時間も概ね判る時にそれらをスキップする、という使い方に便利です。

またストリーム番号は空いているものが自動選択されていますが、これも番組表からの起動と同じように、既に使われているストリーム番号をわざと選んでそこにある既存のストリームを「潰して」、そのストリーム番号を再利用する、という使い方もできます。
ファイル選択画面の場合最下行に、各ストリームの概要が判るボタンが付きますので、

Filelist36

ここで現在動いているストリームの状況を確認できます。
(もちろんボタンを押すことで、それらの視聴画面に直接ジャンプすることも可能です。)

なおファイル再生ストリームのボタンはストリーム番号の後に F の文字、その後にファイル名の先頭数文字、という表示がされますが、これは他の画面でも同じルールです。(文字数は画面によって違います。)

以上でファイル選択画面の説明は終わりで、これ以降では実際の再生画面をご説明します。

⑥ ファイル再生画面

(1) 一般的な使い方

ファイル再生の画面構成もテレビ視聴の場合と殆ど同じで、「チャンネル切替え」関連のボタンが無いかわりに「シークボタン」が付いて、また下のほうに(再読み込みボタンではなく)「再読込操作ボタン」が表示されるぐらいの違いです。

Filestream1
中ほどにあるストリーム一覧ではストリーム番号の後に「F」が表記されて、ファイル再生とわかるようになっています。

ファイル再生がテレビ視聴と違うのは、好きな所に飛んだり戻ったり、あるい途中で止めたあと一仕事終わってから続きを見る、というような事が出来るわけで、シークボタンはその「飛んだり戻ったり」の機能になります。
具体的には好きな所にジャンプしたり、CMになったら1~2分程飛ばしたりすることができます。

また、ファイルの再生位置はストリームが維持されている限りはサーバーに記録され続けていますので、別の端末で視聴を渡り歩いても、同じストリームの再生シーンは引き継がれます。具体的にはスマホやタブレットから外で途中まで見て、家に帰ってからPCで続きを見る、(あるいはその逆) という視聴の流れが、特に意識することなく自然に実現されます。 一種のクラウド型サービスになるわけです。

Photo

またその際に

 「スマホでは帯域も限られるので低めの解像度で観る」  「PCでは高解像度で観る」

というような切り替えが都度できると便利ですが、その機能が「再読込操作ボタン」に割り当てられています。
下のほうにある「再読込操作」ボタンを押すと図のようなポップアップが表示されますので、

Popup

ここで「今の場所から再開」のままで解像度だけ変更すれば、視聴中のシーンから解像度を変えて鑑賞を継続できるわけです。

ファイルの再生位置をストリームを維持している間だけではなく常に覚えていてくれると更に便利ですが、とりあえず一般のファイル再生では、映像を続けて鑑賞したい場合はストリームを停止させずに維持してください。(エンコード済みになればストリーム維持しても殆ど負荷はかかりませんし。)
再生位置をストリームの生死に関係なく常に記憶しておくには 6) のプレイリスト機能を使います。

(2) 「エンコード進行中」 と「エンコード済み」の違い

HLSストリーミングでファイル視聴する仕組みが放送視聴の仕組みと一番違うのは、サーバー側がエンコードをどんどん先に進めていって、エンコードが完了するとプレーヤーの振る舞いが変わる点です。

HLSのプレーヤーは「エンコード進行中」には殆どの細かい操作ができず、作られていくストリームデータを決められたロジックで再生することしかできません。どこを再生するかをユーザー側は指定できず、エンコード進行中にページを離れて暫く後に視聴再開すると、再生位置は最新のエンコードデータの辺りに移動してしまいます。
(この辺の作りを見るとHLS再生の仕組みはもともとはライブストリーミングを想定して作られていることが伺えます。)

エンコードが完了すればプレーヤーの機能でシーク操作ができるようになりますので、普通のファイルをメディアプレーヤーで再生するのと同じような操作性になるのですが、そうなるまではストリームを開始してから性能の良いサーバでも数分(30分番組で3~4分)は待たなければなりません。
この辺の制限について改訂前の記事ではいろいろ注意点を書きましたが、ファイル再生がいま1つ使いにくいと感じる原因になっていたのではないかと思います。

この制限を取り払うために、現在のバージョン(TvRemoteFiles v0.64U 以降)ではサーバ側(TvRemoteViewer_VB v0.96以降)の機能を使って、エンコード進行中であってもプレーヤーに頼らずにシークできるようにしました。

それでも 「エンコード進行中」 と「エンコード済み」 の状態では操作にいくらか違いがありますので、ここではそれも踏まえて説明いたします。
エンコード進行中とエンコード済みの状態でのシーク動作の違いは以下の通りです。

Seekinglogic
(なお一部の生tsファイルでは経過時間を計算するための構造が壊れているものがあり、左のサーバー側でのシークはうまく使えず、やろうとすると常に最初に戻ってしまうものがあります。そういうファイルではエンコード終了して右側の状態になるまでシーク操作は待つか、一旦mp4にエンコードして欠陥を取り除いたファイルを使う必要があります。 また一部の古いAndroidでは「エンコード終了後のシーク動作」が未実装のため、ずっと左の状態のままのものもありますが、ご了承ください。)

左側のエンコード進行中は、シークや再読み込みを実行するたびにストリームの再起動をおこないますので動作のタイムラグがあります。ただしファイル再生ストリームの再起動は放送ストリームと比べて仕組みが単純で速い(数秒程度)ので、十分実用的に使えます。
右側のエンコード終了状態になると、シークや再読み込みはプレーヤーの機能のみでサクサク反応するようになります。(但し回線速度が遅いと、シーク位置の頭出し動作のためにやや時間がかかる事があります。)

このような振る舞いの変化がありますので、シークボタンはエンコード進行中とエンコード済みで以下のように変わります。

エンコード進行中
Seekbtn1(右側に青い帯が付きます。)

エンコード済み
Seek2sft(エンコード終了したがプレーヤーが未認識の状態)

 ↓ (iOSでは自動的に切り替わります。PC、Androidでは赤丸部を押せば切り替わります。
   また「リモコン操作モード」の場合はPC/Androidとも自動的に切り替わりますが、その際プレイヤーをリセットするため一瞬画面が暗くなります。)

エンコード済み。プレーヤー認識済み。
Shift1

.
最初のエンコード進行中のシークボタンでは、押した分の時間を加(減)算したものが青いボタンに表示され、

Seekbtn2

これを押すことでシークが実行されます。

シーク動作にストリーム再起動が伴うため、例えば10分移動するのに5分ボタン2回押して2回シーク動作させていると非効率です。よってこの状態でのシークは、必要な分をまとめてから実行させるわけです。

また+の時間でシークすると一旦以下のようなメッセージが表示される事があります。

Seekbtn3

これはファイルの全時間がまだ判らない時に時間を加算する方向のシークをする際のメッセージで、全長を越える時間指定だとストリーム起動が失敗する、という問題を避けるための確認です。十分判っていてもうっかりやってしまうことがありますので、毎回の確認が有用と判断しました。
(観てる方はこれが30分番組なのか1時間番組なのか程度はだいたい判ると思いますので。)

なお、このようにエンコード進行中のシーク動作は原則ストリーム再起動を伴いますが、最新版のTvRemoteViewer_VBでは一部の環境(iOSやWindows10のEdgeなど)で、この条件でも一定範囲内で軽快なシーク動作が可能になりました。あとでこちらの記事も読んでみてください。

一方エンコード終了すれば、シークボタンを押すと右側に以下のように数字が表示されるだけになり

Shift2

最後にボタンを押してから2秒でシークが発動します。これはプレーヤーの機能のみでシークしますので、待ち時間は殆どありません。(リモート環境でビットレート/回線速度に余裕がない状態だと数秒かかるケースはあります。)

2秒以内の間隔で複数回ボタンを押せば押した分の時間がどんどん加(減)算されていきますし、押す度に発動まで2秒の猶予が与えられますので、その間に必要なボタンを順に押していけば良いわけです。
(モバイル系端末では、あまり急いで連続タップするとダブルタップとみなされて、画面の拡大/縮小など余計な動作をしますので、トン・・トン という感じの間を置いてタップすると良いです。)

この辺は本来はTvtPlayのようにボタンを押す度に即シーク実行する形でも良かったのですが、プレーヤー機能のシークをいろいろテストした結果、HLSプレーヤーの場合次のシークコマンドを受け付けるまで暫く時間がかかることが判りました(無理にシークを連発するとハングがありえます)ので、連続シークするよりも予めまとめたほうが良いと判断した次第です。

実際特にモバイル系の場合、シーク実行後しばらくシークボタンの文字がかすれてボタン操作を受け付けなくなるタイミングがありますが、

Shiftinactive

これはまだ次のシークを受け付けない状態を示します。数秒待てば元に戻りますので、追加でシークしたい場合は一寸だけ待っていただければ。

・サムネイル機能

最新版(TvRemoteViewer_VB v1.55以降+ TvRemoteFiles 1.49以降)では、このシークおよびチャプタ移動の際にサムネイルを表示できるようになりました。

Thumb1

シーク先を予めサムネイルで確認できますので、よりクイックに希望する場面に移動することができるようになります。

この機能は図の、「サムネイルON/OFF」ボタンで有効/無効化できます。
無効の状態では従来通りの動きになりますが、有効化した場合、指定したシーク先の映像(静止画)が図の位置に4秒間だけ表示されます。
その際再生ファイルがエンコード完了していても従来とは違い、シークが自動的に(2秒後)発動する事はなく、シーク秒数が緑のボタンで表示されます。
サムネイルを確認してOKであればこのボタンを押すことにより、シークが発動します。

(3) ファイル再生ストリームの所有権と監視機能について

現在のファイル再生ではこのように再生位置合わせのためのストリーム再起動を多用しますが、複数画面で同じストリームを思い思いに再起動できてしまうと収拾がつかなくなりますので、ストリーム再起動をともなう操作ができるのは1つのストリームにつき1つの画面だけ、というルールにしました。

Ownership1
(基本TvRemoteViewer_VBは個人用途なので、複数端末で同じストリームを同時に観るというケースは少ないと思いますが。。)

他の理由として、ストリームのエンコード途中に再生位置を正しく把握できるのは現在のストリームを起動した画面だけ、という理由もあります。(エンコード中に途中から視聴を始めた画面は再生開始位置が不定なので、「ストリーム起動位置+Play時間」で正しく再生位置を計算できません。)
したがって正しく再生位置を記録していく上でも、今のストリームを開始した画面に所有権と再生位置記録の義務を与えています。

所有権は図のように引き継がれていきます。

Ownership2

再生位置は所有権付与と同時に最後に記録された位置に調整されます。 (その時点でエンコード未了ならストリーム再起動で位置合わせしますし、エンコード終了していればアクセス直後にプレーヤーのシークが発動します。)

このような仕組みで、視聴を中断したり他の端末に変えたり、途中で解像度や音声チャンネルを切り替えたりしても、再生は正しく継承されるわけです。

この引継ぎがスムーズにおこなわれるように、視聴を中断する際に内部的に「所有権の返上」という処理がおこなわれます。
これによって次にそのストリームを開く画面は速やかに所有権を獲得し、まだエンコード中の状態であればストリームの再起動をおこなって位置合わせするようになっていますが、視聴中断のやり方によってはこの「所有権の返上」がきちんと行われない事があります。

所有権が返上される所有権は返上されない

ファイル再生画面からトップメニューに戻る。

ファイル再生画面から番組表やテレビ視聴画面等に移る。

ファイル再生画面を開いたまま放置。
 (この場合は閉じない限り所有したままになる。)

ファイル再生画面を開いたままブラウザを落とす。PCを落とす。

ファイル再生画面から他のサイトに直接移動。
 (移動後、1分以内にトップメニュー等に戻れば返上される。)

こういう動作ルールがありますので、視聴を中断する時は、視聴画面を開いたままブラウザを終了させるのではなく、トップメニューなど他の画面に移ってから終了させるのがお勧めです。

所有権が返上されていなくても所有者の生死はどの画面でもモニターしていますので、ファイル視聴画面を開きっぱなしでない限り、「所有者がいなくなる=所有権をもった画面が別の画面に遷移したり落ちてしまえば」、ハートビートが更新されなくなったのを検知して、2分ほどで所有権を剥奪します。
但し再生位置は正しく中断処理しなければ中断時のものが記録されていませんが、中断処理されていなくても再生位置は必ず20秒置きに記録されていますので、直前のものまで遡るだけです。

端末側の画面にはこういう監視モニターとしての機能もありますので、サーバ側でも監視のために常にブラウザからトップメニューや番組表を開いておくのがお勧めです。(監視機能は今後プレイリストの管理のためにも重要です。)

Monitoringbrowser
 (こんな感じでサーバでもトップメニューか番組表を監視機能として常に起動しておくのがお勧め。)

もちろんサーバ側の画面が立ち上がっていなくても端末側で画面を開いた瞬間に監視機能も働き始めますが、所有の返上がないままのストリームを次の画面がいきなり開いた時はスムーズに所有権が引き継がれず、2分ほど所有権がない状態になり、再生位置の調整ができません。ここはちょっとした注意点になります。

(4) シークボタンのカスタマイズ

シークボタンは\HTMLフォルダの seekbutton.json というファイルに定義してあり、数やシーク秒数をカスタマイズ可能です。

Seekbutton

注)内部的に利用しているjson読み込み関数があまり高機能ではないため、コメントや文法の誤りがあると読み込めません。カンマの打ち場所等も間違わないようにしてください。また全角文字はUTF-8でないと正しく読めないので、全角を使う時はサクラエディタ等の利用がお勧めです。
.

7)プレイリスト機能

ここではTvRemoteFiles v1.00 で追加した「プレイリスト機能」をご説明します。

プレイリスト機能はファイル再生の拡張ですので、基本的な操作は前節のファイル再生機能もご参照ください。

プレイリストになると便利になる点としては、シリーズ物や観たい録画を順に登録しておけば自動再生していくので「ながら見」に最適、という点は勿論ですが、機能的にも次のようなものが使えるようになります。

・ ファイル再生と同じくプレイリスト再生状態もサーバに記録されるので、外出先と家で端末を変えながら続きを見ていくことができ、途中で解像度を変えればそれも引き継がれていく。

・ 更にプレイリストの再生位置はストリームを終了しても保持されるので、一度作成すればいつでも観た所の続きから観ることができる。

Plinitcontinue1

これは単体ファイルでも結構有効なので「ファイル1個だけを登録したプレイリスト」という使い方もあります。

・ 再生時に横にプレイリスト一覧を見ながら再生ファイルを切り替えたり、少し覗いてすぐに元の再生位置に戻す、という事もできる。

Pllist1

・ 「サブストリーム」を使って、再生しながら裏で次のファイルもスタートさせてエンコード終了させる機能を実装した。
これによってリストのファイルをスムーズに切り替えながら、切り替え直後から再ロード不要の素早いシークができるようになります。

・ 各ファイルに開始オフセットだけでなく、終了オフセットを設定できる。

特にBS/CSの番組では本編終了後にまとめて長い番宣や通販番組が入りますが、その時間を予め終了オフセットで省いておくことで、後ろの長いCMを飛ばしながら連続再生できます。

おおまかには以上のような特長があります。と言っても使っていくうちに判ると思いますので、まずはクイックに利用する流れをご説明します。

① クイックスタート

「ファイル再生」画面で「プレイリスト」タブを押すと、図のように赤い背景のプレイリスト画面が表示されます。

Pl1a

・ プレイリスト作成

ここで「新しいプレイリスト」の先頭にある「+」ボタンを押せば

Pl1_new

プレイリスト作成/編集モードになり、また下のファイルリストにはそれぞれの先頭に「+ボタン」が表示されます。これを押していくことでプレイリストにファイルが登録されていきます。

Pl1_new2

登録直後は図のように選択状態になっていますので、ここで「1つ上へ」「1つ下へ」ボタンを使って再生順を好きな所に移動できます。

ファイルをクリック/タップすれば選択⇔非選択と変わり、複数選択も可能、また「選択解除」ボタンで全て非選択にすることが出来ます。(うっかり目的外のファイルを移動しないよう、何かの操作の前に都度「選択解除」するのは割と重要です。)

プレイリスト先頭のΘは削除のボタンです。

Pl1_delete1

これはうっかりタップで削除しないよう2回押す必要があり、1回目で「削除」候補の表示に変わり、これをもう1回押すことでリストから消えます。

Pl1_delete2

「削除」候補状態のまま放っておいても何も起きませんが、うっかりもう1回タップすると削除されますので、この状態を取り消すにはボタン以外の文字部分をクリック/タップしてください。

リストが作成できたらタイトルの欄にプレイリストの名前を入れてください。

Pl1_new5
(ここが空欄の場合でも先頭のファイル名を元に名前が付きます。)

以上で「保存」ボタンを押してください。

これでプレイリストが1つ登録されました。

Pl1_new7

この状態で先頭の「Edit」ボタンを押せば編集画面に戻りますので、追加・変更がいつでも可能です。

・ プレイリストの再生

さて実際にこれを再生してみます。このリストの名前部分をクリック/タップすれば選択状態になりますので、選択したうえで「選択したプレイリストを再生」ボタンを押してください。

Pl1_play1

すると図のような再生指定のウインドウがポップアップします。

Pl1_play2

ここで再生ストリーム、解像度、どこから再生するか、再生順、を選択してください。

Pl1_play3

ここで選択した再生ファイルや解像度・再生順の設定は視聴画面でいつでも変更でき、

(例えば解像度の変更は通常のファイル再生と同じく、「再読込操作」ボタンで可能です。)
Pl1_edit3

変更した解像度等の設定は以後も引き継がれていきますので、ここでの指定は「とりあえず」のもので構いません。

以上で「再生」ボタンを押せば、プレイリスト再生画面が起動します。

Cosmos1

特に普通のファイル再生と変わらないように見えますが、良く見ると自分のストリーム表記の先頭に、ファイル再生の「F」ではなく「PLxx」とプレイリスト番号が付いており、また「プレイリスト」というボタンが加わっています。

この「プレイリスト」ボタンを押すと、右側にプレイリスト情報サイドパネルが出現します。

Cosmos2

プレイリスト情報のサイドパネルを開いておけば現在の再生位置が判りますし、またここから別のファイルにジャンプすることも出来ます。

Pl1_play6

ただ、ここから簡単に他のファイルに飛べるのは便利なのですが、反応の遅いタブレットやスマホで操作する場合、リストをスクロールするつもりがうっかり2回タップして再生が切り替わってしまう、という誤操作が発生するかもしれません。
(タップのインターフェースはこのような誤操作を起こしやすいところが弱点だと思いますが閑話休題)

このような誤操作を抑止するために、トップ画面の「管理」タブで「切替え確認メッセ―ジの表示」を設定できます。→設定方法はこちら

これをチェックしておくと、サイドパネルから再生ファイルを切り替えようとした際に図のような確認メッセージが表示されるようになります。

Pl1_play8

ここで意図せず再生が切り替わりそうになった時はキャンセルすれば良いわけです。
私が自分で使ってみた限りでは、PC(つまりマウス主体の操作)や動作の軽快なタブレットではここはチェックしない、反応の遅めなタブレットやスマホではチェックした方が使いやすいと思います。

以上が大まかな操作になります。

ちなみにプレイリストの再生も通常のファイル再生と同じく「所有権」が必要になります。所有権の無い状態でプレイリストを観ようとすると、図のように

Pl1_notowned

エンコード中のシークボタンが無効化されており、また図のように「プレイリスト」ボタンが無く、実況情報表示ボタンだけになっています。
逆にプレイリスト再生している筈なのにプレイリスト関連の機能が一切使えない、という時は所有権がないことになります。

他の画面が再生している場合はそちらを終了させてから視聴画面を開くかリロードすれば、所有権が取得され、通常の操作が出来るようになります。

また直前の視聴が綺麗に終わらなかった場合も所有権がすぐに取得できない事があります(特に監視画面がどこにも動いていない場合)
そのような場合は2分程度待ってから再度視聴画面を起動するかリロードすれば所有権が獲得され、正常にプレイリストを操作できるようになります。

② プレイリストの編集

さて、もう少しプレイリストを作り込んでみましょう。

・ プレイリスト一覧で各プレイリストの先頭にある「Edit」ボタンを押せば編集モードになり、中身を弄ることができますが、この際一覧で、「再生中」や「待機中」となっているものは現在ストリームに存在しているプレイリストで、これらは(動作がおかしくなるのを防ぐため)編集できないようになっています。

Pl1_play9
(ちなみに「再生中」はどこかの画面が所有して再生している最中、「待機中」はストリームに存在しているが誰も再生していないものになります。)

これらを編集したければストリームを止めてしまえば良いのですが、止めたくない場合はリスト上で「COPY」ボタンを押せば、

Pl1_dup1

全く内容の同じプレイリストのコピーができますので、これを改めて編集して利用する手もあります。
コピーしたプレイリストは最新の再生位置情報も含めてコピーされます。

Pl1_dup2

・ 編集画面ではファイルの追加、削除、ファイル名でのソート、並び替えができます。

ファイルを追加する場合、既に該当プレイリストに登録済みのファイルは重複登録できません。
この辺はiTunesの仕様と同じなのですが、要はプレイリスト上のファイルはリスト上の番号ではなく、あくまで「ファイル名(フルパス)」で判別しますので、1つのプレイリスト上でファイル名はユニークでなければならない、という仕様のためです。

ただ一旦作成したプレイリストを改めて編集する場合、下のファイル一覧には登録済のファイル情報は(パフォーマンスの観点で)反映しておらず、全てのファイルに「+」ボタンが付いています。ここで既に登録済のファイルを改めて登録しようとしても図のように

Pl1_new3

「+」ボタンは消えずに「X」マークに変わり、既に登録済なのが判るようになっています。

・ ファイル編集中に別の画面に移動したりリロードボタンを押すと編集中の状態は破棄されますので、一旦保存するよう注意してください。

ただし、編集中にファイルリストがまだ全部取得出来ていない状態で、「キーワード絞込み再ロード」 および「絞込み解除して再ロード」でファイルを探せると便利なので、この操作は編集中にも使えるようになっています。(編集中に絞込み再ロードしても、編集中の状態はそのまま維持されます。)
古めのファイルをプレイリストに加えたい時にご活用ください。

・ 編集リストを右にスクロールしていくと、図のような入力/選択欄が現れます。
Pl1_edit1

ここの開始オフセット、終了オフセットを指定しておけば、再生開始は先頭からのオフセットでシークしてから開始しますし、終了/次のファイルへの切替えはファイル末尾ではなく、末尾から終了オフセット分だけ遡ったタイミングになりますので、前後の長いCMを飛ばしながら連続再生するのに便利です。

設定には秒数またはmm:ss、hh:mm:ss の形式で入力します。(秒数で入れても図のようにmm:ss、hh:mm:ss形式に直されます。)

なおここの入力(およびタイトルの入力)の際のちょっとした注意点ですが、入力してカーソルを入力欄に置いたまま「保存」ボタンを押しても内容が反映されなかったり、「変更項目なし」と見なされて保存ボタン自体が押せないままの場合があります。
これはWebフォームのちょっとした弱点で、入力欄にカーソルが留まったままではシステムでは入力未確定と見なされて値が読めないからで、しっかりシステムに入力内容を教えるためにはEnterキーを押すか、一旦他の入力欄やファイル名などをちょっとクリック/タップしてから「保存」ボタンを押すようにしてください。

次の音声(「主・副」「主」「副」「音声2」) の設定は、

Pl1_edit2

次節でご説明している二ヶ国語放送のプリセットです。
主・副がデフォルトですが、それ以外を設定しておけば二ヶ国語放送を再生する際に言語を選択できます。

以上のような形でお好みのプレイリストをカスタマイズしていってください。

・ なお作成できるプレイリストは01番から99番までの99個で、番号は自動採番されます。また1つのプレイリストに登録できるファイル数の上限も99個です。

これらの数が十分か少ないかの議論はあると思いますが、自分が日常的に使うiPhone等のプレイリストは到底そこまでの数にならないのと、リモート環境でも出来るだけ動作の軽快さを保つためにもこの辺の上限を置いています。99個なら4クールの放送でも楽に登録できますし。(さすがに朝ドラ全部は無理ですが)

またプレイリストはこの節の最初に書いたように1個のファイルだけで構成しても良いのですが、プレイリスト再生時に「1個のファイルだけをリピート」するシングルモードもありますので、むやみにプレイリスト数を増やさなくても、とりあえず観たいファイルをまとめて1つのプレイリストに登録しておいて、「再生時にシングルモードで再生する」という使い方も実用的だと思います。

「全ファイルを順番に再生しリピート」「1個のファイルだけをリピート」「ランダムに再生」のモードは再生中にプレイリスト操作パネルの上にあるボタンで切り替えできます。

Pl1_play55

これも一旦変更すれば、以後も引き継がれていきます。

③ サブストリームと「20秒」ルール

プレイリストの再生では「サブストリーム」を使って、次に再生する予定のファイルも予めスタートさせ、実際に視聴する時にはエンコードも完了させておくことにより操作性を上げ、次のファイルに素早く切り替わる機能を持っています。

図で説明すると以下の通りです。下がサブストリームを使った再生になります。

Pl1_substream4

サブストリームは「予定される次のプレイリスト項目と仕様」をシステムが判断しながら維持したり再生成しますので、例えば途中で解像度を変えたり、再生モードを「順番」から「ランダム」に変えた場合には適切なものがダイナミックに再生成されます。

この辺を利用者は殆ど意識する必要はありませんが、次のファイルへの切替えが近づいた頃にモード変更をおこなうと、次のファイルのエンコード完了が間に合わない場合もあります。(その時は切り替えのタイミングで次のストリームが再起動されます。)
その辺はベストエフォート型の機能という事で。

サブストリームの存在は視聴画面やトップ画面、ファイル選択画面でのタスク一覧には出てきませんが、

Pl1_substream1

停止対象のストリームとしては表示されますし、

Pl1_substream2

新規にストリームを立ち上げる際にも「使用中」のストリーム番号となりますので、存在は判ります。

トップ・管理画面では図のように現在動いているサブストリームの情報も表示されます。

Pl1_substream3

サブストリームは勝手に停止させてもプレイリストを再生している時にまた起動されますし、空いているストリームが無い時や必要な時にサブストリームが消えていても、それに合わせた動きをします。またプレイリスト本体が停止されれば、サブストリームも自動で停止します。

このように通常は特にサブストリームの存在を意識する必要はありませんが、ストリームをできるだけ節約したいとか、サーバの能力に余裕がなくで勝手に裏でエンコードが動くのは不安、という場合、「サブストリームを使用しない」設定もできます。

Pl1_substream6

デフォルトではチェック(=使用する)になっていますので、気になる方はここをチェックアウトしてください。

ただしここのチェックを外しても、サブストリームを使わなくなるわけではありません。あくまで積極的に使わないだけで、再生ファイル切り替え時には切り替え前のストリームが20秒程度「サブストリーム」として残ります。

またこの設定に関係なく、プレイリストの再生では使用するストリームは一定しておらず、再生ファイルが切替わるたびに空いているストリームを適切に選んで動いていきますので、再生中のプレイリストを選ぶ際はストリーム番号ではなく、PLxxのプレイリスト番号を見てください。

ちなみにこの「直前のストリームが20秒間だけ残っている」という特性は、サイドパネルからザッピングの感覚で視聴ファイルを切り替える場合にちょっとだけ便利です。

図にすると以下のようになります。

Pl1_substream5

プレイリストで再生ファイルが切り替わると、元のストリームはすぐに消えるのではなくサブストリームとなり、新しい「主(プライマリ)」ストリームが該当プレイリストの再生状況を管理することになります。

新しいプライマリストリームは起動後20秒で最初のチェックをおこない、自分のサブストリームをあるだけ検出した上で、自分が予定しているもの(次の再生ファイル)の仕様に合ったものだけを残して、残りは停止させます。
この時点で元のストリームも通常は(プレイリスト要素が2個しかない場合を除いて)消えることになるのですが、そうなる前に元のストリームの再生に戻せば、前のストリームの状態を継続して視聴できることになります。

要は監視タスクにかかる前に(同じファイル内のシークも含めて)再生を切替えていけば元のストリームは保持されたまま保たれるわけで、少し他のファイルを覗いてみたい、というザッピングの時には便利かもしれません。

Pl1_zap

ちょっとトリッキーですが20秒ルールと言いましょうか。。(本来はうっかり操作ミスの救済策として付けた機能です。)

④ プレイリストファイルについて

作成したプレイリストは、サーバ側で\htmlの下に \file フォルダが作成され、そこに保存されています。
フォルダ内容は図のようになっています。

Pl1_file1_2

これらのファイルもバージョン移行の際には忘れずコピー(または保持)するようにしてください。

拡張子.jsonのファイルは管理ファイルですので弄れない(誤動作の原因になる)のですが、拡張子.m3uのファイルはTvtPlay(放送TSファイルで構成されている場合)やMPC-HC、VLCでも使えるプレイリストファイルになっていて、内容は以下のようになっています。

Pl1_file2

当プレイリストで独自拡張している音声選択や開始・終了オフセットのような情報は単なるコメント扱いとなり意味を持たなくなりますが、その点を除けばコピーして簡単に使うことができます。
TvtPlay等のプレイリスト作成機として使えることになりますね。

ちなみに実は逆も真なりで、他で作ったm3uファイルやここで作ったm3uファイルのバックアップを、PLxx(xxは01~99)の名前でここに置けば、普通に読み込まれます。
ただしその番号のプレイリストファイルが存在することをシステムに教えなければなりませんので、ダミーのプレイリストを一旦適当な中身で登録してから同じ番号の名前で上書きする必要がありますが、沢山作りたい時のバックアップ/リストア方法としても使えますので、ご興味のある方は試してみてください。

なおm3uファイルの一般的な話として、記載されているファイルパスが絶対パスなので、該当のサーバー機以外では一般的には使えないという問題がありますが、最初からTvRemoteViewer_VB.iniでリモートフォルダだけでなくローカルフォルダのパスもネットワークパスで記載しておけば、同じLAN上のどこからでも使えるプレイリストが作成できます。
.

8)ファイル/プレイリストのストリーミングも実況付きにする

TvRemoteViewer_VBでは、録画したファイルを実況付きで再生することもできます。
ただし別のソフトの機能や運用との連携が必要ですので、最初のTVRemoteViewer_VB導入の際には飛ばしてかまいません。十分に使い慣れてから導入するのがお勧めです。

Softsubsid

利用のためには録画内容に応じた実況ログファイルが必要になりますが、その手順を自動化するために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つの形式

ファイル/プレイリストの実況付き再生には[ハードサブ]と[ソフトサブ]の2つの形式があります。

[ハードサブ] 実況を映像に焼きつける方法

Withassview

[ソフトサブ] ニコニコ実況や2ch実況と同じく、端末側でHTML5の機能を使って実況をオーバーレイさせる方法 (TvRemoteFiles v1.19以降の新機能)

Woassview

ハードサブの場合はサーバーでコメントが焼き込まれた状態で配信されますので、端末側ではほとんどやる事がありませんが、ソフトサブの場合はニコニコ実況や2ch実況と同じ仕組みを使っていますので、端末側操作のためのスライダーやボタンが追加されます。

それぞれの利用手順について

利用手順

|

単体のファイル再生では、以下の「実況焼込」をチェックすればハードサブの指定になります。

Withass1ハードサブの指定

同じくプレイリスト再生時も、実況焼込のチェック/非チェックを選択します。

Withass2ハードサブの指定

ファイル/プレイリスト再生中は「再読込操作」のポップアップでハードサブするか否かを変更でき、指定変更後「ストリームを再起動」すれば即座に反映されます。

Withass3ハードサブに変更する指定

  

ソフトサブを指定するには、まずはハードサブの指定をおこなわない、すなわち「実況焼込」のチェックをおこなわない状態でストリームを起動します。
あるいはハードサブで再生中であれば、「再読込操作」のポップアップで「実況焼込」のチェックを外して再起動してください。

Woass1

この状態で起動あるいは再起動した視聴画面では、実況サイドパネルを表示すると以下のようなバーとボタンが表示される筈です。

Woassside1

この「実況ログを再生する」ボタンを押せばソフトサブでの実況表示が開始されます。
(但しASSファイルが存在していない時は、「ASSファイルが存在しません」というメッセージが表示されて、このボタンを押すことはできません。)

このボタンを押さなければ実況表示のない普通の再生になります。また実況再生中にこのボタンを押せば実況表示は停止します。

前回視聴終了時に「実況ログ再生」がONの状態であれば、次に視聴画面を立ち上げる時にも(他の条件も合って実況ログも存在するならば) 実況再生の自動起動を試みます。

上の「タイミング調整」スライダーは、遅延時間スライダーと同じような役割で、+の数字ならコメントが流れるタイミングが遅れる方向になり、-(マイナス)の数字ならその秒数だけ、コメントが進んでいる方向になります。調整幅は-30秒~+5秒です。

この調整幅になっている理由は、通常のソフトサブであれば(ハードサブと同じく)元データに起因する誤差がありますが、最大±5秒程度のタイミング調整ができれば良いので+方向は5秒としています。
一方、仕組み上ずれがでてしまう「Androidでエンコード未了のファイルストリームを再生する」ケースでは、コメントは必ず映像より遅れる方向にずれますので、その調整可能幅をマイナス方向に30秒と設定している訳です。、

   

ハードサブとソフトサブの選択について

最初このシステムはハードサブの仕組みだけしか持っていませんでしたが、(特に可変速再生で)負荷が高く、また画質が落ちるため通常より2段ぐらい高い解像度にしないと満足いく画質にならない、という弱点が気になってきましたので、後になってソフトサブを追加しました。

といってもそれぞれ特長と弱点がありますのでそれぞれ補完するものとして、都度使い易い方を選べば良いと思います。
PCやiPad、Androidで普通に使う場合はソフトサブが使い易いと思いますが、iPhoneではそもそも全画面でしか動画を観られないので、ハードサブにする必要があります。

長所弱点

・全画面でも表示できるのでiPhoneでも実況が楽しめる。

・端末側負荷がかからないので、Chromecastなど処理能力の低い環境でも滑らかな実況表示が楽しめる。

・映像に同期して焼き込まれるため、映像と実況コメントのタイミングの誤差はせいぜい±5秒以内である。
(この誤差はプログラムの問題ではなく、そもそものニコニコ・ログ上のタイムスタンプの問題)

・サーバーの負荷が高く、特に1.5倍速や2倍速の映像に実況を焼き込もうとすると、ハイエンドのPCでも処理が追いつかないことがある。(映像が頻繁に一時停止する。)
ストリーム起動/再起動時の「配信準備中です」の待ち時間が長く、全体的に再起動を伴う動作がもっさりする。

・画質上不利。特に弾幕状態になると映像がかなり崩れる。

・映像と実況コメントのタイミングの誤差は小さいが、補正もできない。

・コメントを消したい時でもストリームの再起動が必要。表示位置や透過度も調整できない。

・文字は焼き込みなのでサイズは動画の表示サイズが小さくなれば比例して小さくなる。

・サーバーに負荷はかからない。エンコードも通常通り終わる。

・画質への影響がない。

・文字サイズは動画サイズを調整しても端末の画面に合わせたサイズのままなので、過度に大きくなったり小さくなることがない。

・映像と実況コメントのタイミングに(ハードサブと同じ理由で)±5秒以内の本来的な誤差があるが、それもスライダーで補正できる。

・表示位置を制限したり文字を透過させるような調整が可能。

・全画面では利用できない。

・Androidで「エンコード未了」の状態では(Androidの標準プレーヤーの特性で)タイミングに大きな誤差があり、スライダーで毎回補正が必要。(エンコード完了すれば解消する。PCやiOSではこの問題は無い。)

・実況開始時にASSファイルを映像とは別にサーバーから読み込むが、回線速度やASSファイルのサイズによっては無視できない待ちが発生し、その間以下のようなメッセージが表示される。

Readassmsg_2

ASSファイルのサイズは通常は数百KB程度なので殆ど気にならないが、たまに「祭り」の「1時間以上の映画や番組」だと数MBに達する。

以上が実況付き再生の手順で、ここからはこの機能を使うための設定手順です。

① NicoJK用に保存した実況をそのまま流す方法

この方法を利用するには、既にNicoJK + NicojCatch を使って録画と同時にニコニコ実況(および2ch実況)を取り込んでいることが前提になります。

関連フォルダを以下のように指定してTvRemoteViewer_VBを再起動するだけで、実況付き再生ができるようになります。

Usenicojk

図にあるNicoConvAss.exeはTvRemoteViewer_VBと同じ作者さんが提供しているツールです。
このツールは「② ニコニコ実況を取得してASSファイルを作成する」手順でも使いますが、ここではコメントのフォーマットを整えるためだけに使います。

作者さんのサイトを下に辿って行くと

おまけ ~ ニコニコ実況の過去ログを取得し字幕ASSファイルを作成するソフト

という記載があります。そこに

NicoConvAss vx.xx 20xx/xx/xx

という行があり、そのvx.xx という所がファイルのリンクになっていますので、クリックしてダウンロードし、解凍した上で、適切な導入用フォルダを作成して(以下では\NicoConvAssフォルダと呼びます)、解凍した中身を全てコピーしてください。
Nicoconvassfolder

その上で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 ファイルを編集することで変更できます。

Assdefaultheight

この TextBoxVheight = の値がデフォルトのheight値になります。
再生の都度この設定を変更することはできませんが、最も利用の多いシーンを想定して設定すると良いです。
(ちなみに私はこの辺どうしてるかと言うと、録画終了後にリンク先のエンコードバッチでiPhone用SD画質のMP4とそれ用の -height 720 設定のASSを生成してiPhoneでは配信も持ち運びもそちらのファイルを使うと同時に、PCやタブレットではTSファイルを直接再生することでデフォルトの大きな画面用パラメータで実況再生、というような使い分けをしています。)

なおこのform_status.txt ファイルが見つからない場合、1度でもNicoConvAss.exeを起動すれば自動的に作成されます。

② NicoConvAssでニコニコ実況を取得してASSファイルを作成する方法

この仕組みでは①でも利用したNicoConvAssと、実況データ取り込み用ソフトのJKCommentGetterを活用します。概要と設定手順は、以下のようになります。

niconicoアカウント取得とログイン Ruby環境の導入 SQLiteの導入 JKCommentGetterの導入 cookie位置の記述 NicoConvAssの導入 NicoConvAssにNicoJKパスを定義 ffmpegにfontsを定義 ts用assファイル mp4用assファイル

一見複雑な仕組みに見えますが、基本は各ソフトを導入していくだけで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 という名前にしてください。
Ffmpegfonts1

リンク先からzipファイルをダウンロードし、解凍した中にある 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.zip」をダウンロード

解凍した中にある RecConvAss.bat を\NicoConvAssフォルダにコピーしてください。
次に(TvRockの場合)、設定→プロセス タブ に

TN:"C:\BON\NicoConvAss\RecConvAss.bat" "%1"

という一行を加えてください。(赤い部分は導入環境に合わせて修正してください。)

Asspostprocess2

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 を指定

以上の前処理やパタメータをセットします。

Recconvass1

カスタマイズする場合、-height 以外のパラメータは特に弄る必要はないと思います。

-heightについては、これを大きくしていくと、「ハードサブ」で観る時の文字サイズが小さくなります。(「ソフトサブ」では文字サイズは端末側が再調整しますので、特にこの数字は関係ありません。)
デフォルトの-height 720だと iPhoneサイズで見るには丁度良いですが、PCやタブレットでは字が大きすぎるかもしれません。尤もPCやタブレットではソフトサブの方が便利だと思いますので、ここはむしろ(ハードサブしか使えない)iPhoneのようなデバイスを優先して決めています。

ただ、それとは別の考慮点として、-height 720程度だと NicoConvAssは、非常に密度の高い実況になった時に 「小さな画面には表示し切れない」と判断してコメントを削ってしまうことがあります。

例えば有名なこのシーン

Laputa

は本来これだけの弾幕になるのですが、-height 720の設定で作ったASSファイルを大画面&ソフトサブで実況表示した場合

Laputa2

半分以上のコメントが削られていることが判ります。

もちろん広い画面一杯にコメントを表示させて再生するような必要がなければ削られてもあまり気にならない(むしろ読みやすくなる)ような違いなのですが、もしハードサブの利用は考えておらず、ソフトサブで大画面で再生する時のコメントも取りこぼしがないようにしたい場合、むしろ-heightは実際より大きく(例えば-height 2160 ぐらいに)しておいた方が良いです。(そのぐらいの設定だとコメントが削られることはありません。)

あるいはそういう「祭り系」映像ファイルだけ、改めて (b) のAutoAssConvに直接ドラッグ&ドロップして、ASSファイルを作り直す方法もあります。

(b) の一括処理については、(そもそもは自分用のつもりで)ツールを作成しましたので、ご活用ください。
使い方は、以下のファイルをダウンロード&解凍して、

「AutoAssConv0102.zip」をダウンロード

中にある
AutoAssConv.exe
AutoAssConv.ini
MsgBox.exe

を \NicoConvAssフォルダにコピーしてください。

Autoass2

このAutoAssConv.exe をデスクトップ等にショートカットを作っておけば、複数ファイル/フォルダをまとめてドラッグ&ドロップして

Autoass1

一挙にASSファイルを作成できます。フォルダについては下の階層にある全てのtsファイルにASSを生成していきます。

処理進行中でも別のファイル/フォルダ群をドラッグ&ドロップすれば、並列で処理します。
生成が終われば図のようなポップアップで

Autoass3

処理したtsファイル数が表示さます。

ただし対象が数百個以上になるとそれなりに時間がかかりますので、寝る前や出かける前にまとめて仕掛けておくのがよいかと。

なお、AutoAssConv.ini を編集すれば一括処理のパラメーターを設定可能で、デフォルトでは以下のようになっています。

Autoass4b

ここでも重要なのは上の録画後処理の場合と同じく「height=」 の数字ですので、一括で適用したいパラメータをここで指定してください。

また応用として、AutoAssConv.exe とAutoAssConv.ini の組み合わせは名前を変えたものを別の設定で動かすことができますので、例えば同じフォルダで以下のように別の名前にコピーしたものを作ってiniファイルの設定を変えた上で

AutoAssConvLarge.exe
AutoAssConvLarge.ini    (例)

対象のファイルをD&Dすれば、その分だけ別の設定、例えばheightを大きくとったASSファイルに差し替えることが可能です。

以上が録画ファイルを実況付きにするためのASSファイル作成手順になります。
他に、tsファイルだけでなく録画をエンコードしたmp4/mkvファイルもASSファイルが使えますが、手順はリンク先をご参照ください。リンク先の手順ではmp4/mkvファイル用のASSをまた改めて作りますので、そちらはそちらで利用画面サイズに合せた設定が出来ます。

以上の手順で一度実況ログファイル(ASS)を作成すれば準備完了です。以後新規に録画されるファイルにもASSが自動的に作成されるようになります。

9) 0.5倍速再生~2倍速再生

TvRemoteViewer_VB v1.24とTvRemoteFiles v1.17以降の組み合わせなら、ファイル/プレイリストの再生で通常の等倍速再生の他に

1/2 3/4 1.3 1.5 1.7 2.0 倍速

の音声付き再生ができます。

利用方法は簡単で、ファイル再生で最初から速度指定したい場合は、図の位置に緑色のボタンがありますので、

Trickplay1a

これをクリック/タップすれば(ロックが外れて)再生速度のセレクトボックスが現れます。

Trickplay1b_2

ここで速度を指定して「再生」ボタンを押せば、最初からその速度での再生になります。

等倍速以外の再生では、図のように視聴画面の情報パネル先頭に、現在何倍速で再生中かの情報が表示されます。
Trickplaypanel

同じようにプレイリスト開始時も同じボタンが追加されていますので、

Trickplay2a

押して速度を指定してください。

Trickplay2b

プレイリストの場合は(途中で意図的に変更するまでは)同じ速度で後続のファイルも再生されていきます。

ファイル/プレイリストの再生中に速度を変える場合は、(ストリーム再起動を伴う操作になりますので)「再読込操作」ボタンから操作します。

Trickplay3a
Trickplay3b

使ってみた感じでは(番組の性格によりますが)1.5倍速程度までなら台詞もほぼ理解でき、ニュースのようにゆっくり喋ってくれるものや野球中継なら(そもそも解説をあまり真面目に聞くものでもなく絵と球場の雰囲気が味わえればよいので)2倍速でも十分実用的です。

但し、等倍速以外ではプレーヤー下の経過時間/全体時間 が意味を持たなくなりますので、ご注意ください。
Trickplaynote

これはプレーヤーが実際に再生する時間なので、等倍速以外では「ファイル本来の再生位置/全体時間」ではなくなります。
TvRemoteFiles内部ではその辺の時間補正をきっちりおこなっていますので、再生位置/全体時間は何倍速であっても正しく把握されています。あくまでプレーヤーが表示しているこの数字は正しくありません、という意味です。

10)チャプター機能

TvRemoteViewer_VB v1.40以降と TvRemoteFiles ver1.27以降の組み合わせではチャプター機能が使えるようになりました。
これはチャプター移動、自動スキップと、それをナビゲーションするための進捗バー、時間表示等の周辺機能で構成されます。

ただしチャプター機能を使うためには別のソフトの機能や運用との連携が必要ですので、最初のTVRemoteViewer_VB導入の際には飛ばしてかまいません。十分に使い慣れてから導入するのがお勧めです。

① 進捗バーと時間表示の機能

チャプター機能を説明する前に、チャプターファイルの有無に関係なく、全てのファイル再生共通で新たに使えるようになった機能をご説明します。
表示は以下のようになります。

Progress1

右端の時間表示は現在の再生位置の、ファイルの先頭からの経過時間です。
途中で再ロードしたり倍速再生にしても関係なく、ファイル先頭からの時間を常に表示しています。

また進捗バーは、ファイルの全体時間の中の現在の再生位置をバーで表示します。
ただし全体時間が判らない間はバーは表示されません。(とはいえ、現在はエンコード終了を待たなくてもASSファイルやチャプターファイルから全体時間を推測しますので、どちらかがあれば最初からバーは表示されるようになりました。)

エンコード進行中は、進捗バーは上の図のように青で表示されます。一方エンコードが終了すれば、バーは赤い色に変わります。

Progress2

尚、途中で再ロードした状態でエンコード終了した場合、再ロード位置より前が青いバー、再ロード位置より後ろが赤いバーになります。

Progress3

赤い色は再ロードせずにプレーヤーの機能だけで移動可能な範囲、青い色は移動するのに再ロードが必要な範囲になります。
この識別はチャプターを移動する際にも重要です。

② チャプター機能

 ②-1 チャプターファイルを事前に用意しておく方法

チャプター機能を本格的に使いたい時は事前に、リンク先を参考にしてチャプターファイルを作っておくのがお勧めです。
リンク先でご紹介しているツールは地上波キー/系列局とそのBS/CS再放送の番組限定ですが、チャプターイン/チャプターアウト、つまり本編と思われる部分とそうでない部分(恐らくはCM)の区分け情報を自動で作成してくれます。

なお、このツールがチャプター作成できる対象はtsファイルのみですが、作成した.chapterファイルをエンコードファイル名に合せてリネーム(例えば ファイル名.QSV.mp4 なら ファイル名.QSV.chapter)すれば、mp4等でも同じようにチャプター機能が使えます。

このツールでは字幕の空き時間を評価しながら作っていきますので、たまに台詞や説明のない長いシーンやOP/EDなどを本編以外と誤検出することもありますが、TvRemoteViewer_VBのチャプター機能は自動でスキップしながら違うと思ったら手動に切り替えるなど、いろいろ気楽に使えるようになっています。

さて、チャプターファイル(ファイル名.chapter)が添付されたファイルをTvRemoteViewer_VBで再生すれtば、図のような表示になります。

Chapt1

今までのシークボタンの左側に、切替用の緑ボタンが追加され、SKIPと表示されたものを押せばチャプタースキップのボタンが表示できるようになります。

Chapt2_2

SEEKと表示されたものを押せば元ののシークボタン表示に戻ります。

エンコード途中の状態ではこのように青いボタンに指定先チャプターの時間が表示され、これを押すことで(リロードを伴った)チャプター移動ができます。

自動スキップはチェックはできますがグレーアウトしており、該当時間帯に差し掛かっても発動はしません。

一方、エンコードが終了していれば、表示がこのように変わります。

Chapt3

インターフェースは殆ど同じですが、チャプターを移動するのに改めて青ボタンを押す必要は無く、最後にチャプター指定ボタンを押した4秒後に自動的にチャプター移動が発動します。
(もし取り消したい場合は、4秒以内に「SEEK」ボタンを押してボタンを切り替えてください。)

また自動スキップが働くようになり、図のようにチャプターイン/アウトに囲まれた領域をスキップするようになります。

Chapt4

いわゆるCMスキップ機能として使えますね。

なお、ファイル再生途中でリロードをおこなった場合、エンコード完了後の進捗バーは以下のような表示になります。

Chapt5

つまりプレーヤーの機能だけで移動できる範囲とリロードを伴った移動が必要な範囲が混在することになりますが、このチャプター機能では移動先によってどちらになるかを自動判断し、それに合わせてボタンの色も変わります。

 ②-2 再生開始時にチャプターファイル作る方法

チャプターファイルの別の生成方法として、TvRemoteViewer_VB v1.50 以降では、実況ログから特徴的な語句(キタ-,op,a,b,ed,予告 等の集中)を検出して自動でチャプターファイルを生成する機能が追加され、更に便利に使えるようになりました。

Asschaptdisp

これは実況ログが利用できる条件で、TvRemoteViewer_VB.ini の以下のパラメータに"1"(デフォルト)がセットしてあれば、ファイル毎に再生起動する最初のタイミングで動くようになってます。

Asschapt

これはそこそこの実況ログのある録画、また語句の性格からしてもアニメ30分番組でなければあまり意味のない機能で、また「CMのエンドには打ててもCM開始は検出できない」ので自動スキップには使えない(IN-OUTの区別がない)のですが、上でご紹介したツールではチャプターが打てないMX等のアニメ番組でも適切なチャプタが打てるようになります。
また実況ログさえあれば良いので、mp4など非tsファイルでもそのまま使えます。

ただこれがONになっていると、ファイル再生の起動が、特に実況の重いファイルで数秒間余計に待たされることはご注意ください。それが気になる方でこのチャプタが要らない方、あるいはそういった独立局アニメの録画自体が少ない方は敢えてONにせず、iniファイルで make_chapter = 0 にして明示的にOFFを指定すると良いと思います。(ストリーム開始時に作成しなくても、NicoConvAssを自動で動かしている方は予め録画と同時にこれを作成しておくことも出来ます。→ご参考

以上がチャプター機能の概説になります

11)リモコン機能で操作する

① 概要

TvRemoteFiles ver1.34以降では、任意の端末から任意の端末をリモコン操作できるようになりました。
リモコン機能そのものは、もともとキーボードもマウスも無いChromecast/AndroidTV用に開発したものです(→ご参考)がこれが汎用化され、PC/Mac/タブ/スマホのいずれもリモコン操作できるようになりました。
機能も豊富で、直接操作でできる事はほぼ全てリモコンから操作可能というのはもちろん、直接操作にはない便利な機能も加わっています。

実際にリモコンで操作する用途の他にも、リモコン制御モードで「全画面表示」の指定にしておけば、視聴画面を開いた時に常に横幅一杯の動画サイズに調整されますので、モバイルの普通の視聴でも便利です。、

リモコンの起動
Ccremocon1

  ↓
リモコン画面
Trvrcsample2_2

またテレビや大画面モニタに繋いだPCで、ブラウザごと全画面表示にしておいて、手元のタブレットやPCからテレビのように操作することも出来ます。

Trvrcsample1b
これは2画面マルチモニタ構成の片側にTvRemoteViewerを全画面表示したスクリーンショットですが、このように同じPCの別のモニタにリモコンを表示して操作する、という使い方もできます。

ブラウザを全画面表示にするには、ブラウザの以下の場所をクリックします。

Trvbr1_2Chromeの場合

Trvbr2_2FireFoxの場合

(全画面を解除したい時は画面の上端にマウスを持って行ってクリックすれば、解除用のポップアップかメニューが表示されます。)
Trvbr3

この場合の全画面表示は、ブラウザ/HTMLの枠内を越えてOS機能を使って実装されているプレーヤー機能の全画面表示と違ってあくまでブラウザ機能として実装されているので、実況等もそのまま表示されますし、画面遷移しても全画面が保たれます。

今まではスクリーン一杯に動画を表示したくても、操作ボタンやズームバーがないと操作ができなくなるので、それらが少し見える程度の倍率で視聴していた方が多いのではないでしょうか?その辺の使い勝手が上がります。

また最近出てきたスティックPC等もChromecastのように使えるようになります。Chromecastとは違って端末起動~ブラウザの起動の部分をリモコン操作することはできないので、そこはマウス操作かAutoStartで立ち上げる必要がありますが、以降の操作性はほぼ同じです。

Chromecast対抗デバイスであるAmazon FireTV Stick(および据置型のFireTV)も、このリモコン機能を使って高画質の視聴環境として活用できますが、それについては別記事にまとめました。

他のデバイスもブラウザが起動できれば、多分ですが同じようにTvRemoteViewerの端末として使え、それをリモコン操作出来るようになります。

TvRemoteFiles ver1.68以降では、下の手順でリモコン制御モードONの状態にしておけば、視聴画面から直接リモコンを起動できるようになりました。

Activerc

リモコン制御モードでは図の位置に「リモコン」ボタンが表示され、これを押すことでリモコンを起動できます。
動画を画面一杯に表示した際にはリモコンの方が操作しやすくなるほか、現在は「動画の全画面⇔タイル表示の切替え」、「実況エリアや文字サイズのリアルタイムな変更」など、リモコンのみでできる操作もありますので、必要な時だけ呼び出す形でも便利に使えます。

② リモコン制御 ON⇔OFF の切替え

以上の機能を使う際は、トップページの「デバイス(Cast)タブ」に追加された以下の欄で設定します。

Trvrc1

まずデバイス名にユニークなIDを入れてください。

Trvrc2

他と重複すると動作がおかしくなりますので、必ず「1つの端末の1つのブラウザ」毎にユニークな名前にしてください。
またデバイス名は制御ファイル名としても使いますので、Windowsのファイル命名規則に違反しないものにしてください。
TvRemoteFiles ver1.36以降では、「リビングPC-その1」のような日本語のデバイス名を付けることができるようになりましたので、判りやすい名前を付けると良いと思います。

ここで注意点ですが、例えば1台のPCでChromeとFireFoxは別の名前の付いた別のデバイスとして別々に動作することは可能ですが、同じChromeのTvRemoteViewerの端末画面に別々の名前を付けて操作することは出来ません。リモコンで操作する時は、対象の画面は1つだけが立ち上がっている状態にしてください。
(但し別のTvRemoteViewerサーバに繋いだ画面なら、それぞれを1画面づつ独立して動かすことが出来ます。)

ユニークなデバイス名を入れたら、右の「ON」のボタンを押してください。(ボタンが押せない時は一度デバイス名の欄でEnterを押してからボタンを押すと良いです。)
トップ画面がリロードされ、左上に「R」マークが表示されたら

Trvrc3

これでリモコン制御状態になり、デバイスリストに表示されるようになります。

Trvrc4

このデバイス名を使って別の端末(あるいは同じ端末でも構いませんが)からリンク先の手順でリモコンを起動して操作できるようになります。手順も簡単ですので試してみてください。
またこれもChromecastと同じですがファイル/プレイリストの再生は他の端末から、デバイス名で宛先指定して起動できるようになります。

リモコン制御モードを解除する場合は、上図のようにデバイス名の横のボタンが「OFF」に変わっていますので、それを押してください。トップ画面がリロードされて左上の「R」マークが消え、リモコンモード解除された状態に戻ります。

リモコン制御モードでも今まで通りの操作もそのまま出来ますので、リモコンモードを解除しないまま運用しても構いませんが、その場合以下は注意してください。

(1) 視聴画面のズーム倍率は、現在のブラウザサイズに合わせて毎回自動調節されますのでちょっと使い勝手が変わります。またブラウザ内スクロールも抑止されます。
特にリモコンから「全画面」を指定したままだと毎回ブラウザ一杯に動画が表示されますので、今まで通りのボタン操作やサイドパネル操作を優先したい場合は、リモコン側で「タイル表示」のモードに切り替えておいてください。(この画面モード切替えはリモコン側でなければ出来ません。)

(2) 複数のTvRemoteViewer_VB画面を動かすこと自体は問題ありませんが、その状態のままリモコン操作しようとするとコマンドを取り合って動きがおかしくなりますので、リモコン操作する際は1画面だけ残して、それ以外は落してください。

(3) 以下の機能はリモコン制御モードでは使えなくなります。
・ポップアップモード: 複数画面が競合することを抑止するため、「視聴画面をポップアップで起動」は強制的にOFFになります。
・一部の確認メッセージ: リモコン操作中に確認用ポップアップで動作の流れが止まるのはまずいため、「チャンネル/再生ファイル切替え時に確認メッセージを表示」は強制的にOFFになります。
・(Rockバータイプではない)旧番組表モード: リモコン制御機能が無いため、番組表は強制的にRockバータイプの番組表モードになります。

③ 機能上の留意点

なお、端末の特性上リモコンの機能が制限されるものがあります。以下の点もご留意ください。

音量調節/ミュート機能

iOS/Androidでは、モバイル端末としての特性上HTML5/Javascriptから音量調節することは出来ない制約があり、リモコンで音量調整はできません。(サイトに埋め込まれたスクリプトで勝手に端末全体の音量が変えられるのを避ける意図のようです。→ご参考
AndroidTVについてはそもそもCast機能はAndroidではなくGoogle Castの仕様に従っているためこの問題もなく、快適に使えます。

動作未確認ブラウザ

AndroidのDolphin Browserがうまくリモコン制御できないので、原因調査中です。
→ TvRemoteFiles ver1.35で問題解消し、普通に使えるようになりました。

モバイル系ブラウザの自動スタート

モバイル端末をリモコン操作する場合、元々モバイル系ブラウザは動画の自動スタートが出来ない(動画開始時に人手の介入が必要な)ものが多い点もご注意ください。
自動スタート出来るタイプであるiOSのiLunascape、AndroidでのDolphin Browserについては、リモコン制御下でうまく動くことを確認しました。

12)ファイルの無変換ストリーミング

TvRemoteFiles 1.40以降ではソースファイルがH.264動画の場合、ソースをエンコードしながらストリーミングするのではなく、ソースファイルをそのままHLS仕様の細切れファイルに加工してストリーミング、という選択も出来るようになりました。

選択方法は、ファイル再生の指定で「ファイルがTSファイル以外」の場合、図のように
Ne_selectvideo

解像度に 0x0noenc という選択肢が現れますので、これを選択して「再生」ボタンを押してください。

またプレイリストでも同じように選択できます。

Ne_playlist

プレイリストの場合TSファイルでなければこれがそのまま適用されて無変換ストリーミングになりますが、TSファイルはこれは適用されず、デフォルト解像度での通常のストリーミングになります。

視聴画面の動きも通常のファイル・ストリーミングとはちょっと違い、視聴画面開始直後にストリーム用ファイル生成が完了(今までで言うところの「エンコード完了」)します。
エンコード完了を自動検出できるiOS系の端末ではこれは開始後数秒で反映され、シークボタン等も「エンコード完了」状態に切り替わりますが、自動検出できないPCやAndroidの場合は図のように

Ne_viewvideo

「ここを押せばシーク可能」のボタンが 30秒~1分 程度で表示されますので、ここを押すことで「エンコード完了」状態になります。

このように直ぐに使いやすい状態になるのがメリットですが、もう1つのメリットは、ストリーミングに伴うエンコード処理がないので、サーバ負荷が極めて軽くなる点になります。

もちろんエンコードは事前にやっておくことになり、その際の負荷は掛かる訳ですが、これは予めサーバが空いている時間帯に、HandBrake-QSV等を使ってエンコードしておけば良い訳で、もしHDDに余裕があるなら外出用と宅内視聴用のMP4ファイルを録画後処理でそれぞれ用意しておけば、比較的CPUパワーの限られた環境でも便利に使えると思います。
(実際、メーカー製レコのリモート視聴の仕組みも予めそのように配信用ファイルを何種類か作っておく形になっています。基板容積や冷却能力に制約のあるレコ等と違ってPCはトランスコードを積極的に使ってその能力を有効活用すべきだと思いますが、PCにそれほどの能力がない場合でもそういう選択ができる、という仕組みになります。)

但し以下のような点にはご注意ください。

・無変換ストリーミングでの解像度や音声言語は元のファイルのままの決め打ちになります。(表示の初期状態は640x360のスケールになりますが、実際の解像度は元解像度のままです。)

・実況焼込みや再生速度変更のようなビデオファイルの再変換が必要な選択も出来ません。(選択しても無視されます。) 実況表示はソフトサブをご利用ください。
再生開始位置を指定して途中から視聴開始することは可能ですが、先頭から開始してもすぐにシークで飛べるようになるので、プレイリストで続きから自動再開する時ぐらいしか使わないかも。

・コンテナはMP4でもMKVでも構いませんが、コーデックはH.264でなければなりません。それ以外の動画形式で無変換を選択するとストリーミング起動待ちのまま先に進みません。(その場合はトップ画面→管理タブから停止させてください。)

・ストリーム用ファイル生成があまりに速いため、HLSプレーヤーがそれにつられて、最初はちょっと先のシーンから再生開始し、秒表示と実際のシーンも合いませんが、30秒~1分で上記「ここを押せばシーク可能」のボタンが出現し、それを押すことで「正常な再生位置」に戻り、また「エンコード完了」の状態になります。
iOSの場合はもっと早く数秒でこれを自動検出した上で、自動的に「エンコード完了」状態になるため、操作は必要ありません。
ChromecastやAndroidTVの場合は30秒~1分で自動検出しますが、プレーヤーの状態を「エンコード完了状態」にするため一旦プレーヤーをリセットさせます。そのため最初1分程度は映像が止まったり暗くなったりの動きがあり、その後通常再生が始まります。

このように視聴開始直後はちょっと今までと違った動きをしますが、その後は「エンコード完了」状態になって、自由にシークやスキップができるようになります。

13)二ヶ国語放送(または録画)で日本語/英語音声を選択する。

日本の放送では、二ヶ国語放送の際に(番組表には[二]のように表記されます。)、おおまかに2つの方式のいずれかを使います。

Dualmono

Inputがチューナーで受信したストリームです。(これ以外に映像ストリームがあります)

①は(アナログ放送時代からなんとなく引き継がれた方式として)本来右左の音声を流すチャンネルでそれぞれ左に日本語、右に英語の音声を流す方式で、当システムのデフォルトでは左右から日本語と英語の音声が同時に聞こえます。

②はデジタル放送になって実現した、音声ストリームを2つ作ってそれぞれステレオで日本語、英語を流す方式で、当システムのデフォルトでは日本語のみがステレオで聞こえます。

どちらの方式を使っているかは局によって違い、またNHKのようにニュースでは①、映画やドキュメンタリーでは②の方式を混成で使っているケースもあります。

①の場合は左右のどちらかを選べないと二ヶ国語が混ざって非常に聞き取りにくくなりますし、また②の方式で敢えて英語の音声を聞きたいケースもあるかもしれません。

そこで当システム最新版では、TV視聴時に言語を選べるように以下のような選択肢を付けました。

Audioselect1

ここでデフォルトの「主・副」を選べば

- 二ヶ国語放送でなければ通常のステレオ音声
- ①Dual Mono Modeであれば左から日本語、右から英語音声
- ②ステレオ二ヶ国語であれば日本語のステレオ音声

になります。
「主」を選べば、いずれの場合も日本語(モノラル)が左右から聞こえ、

「副」を選べば①Dual Mono Modeであれば英語、それ以外であれば日本語のモノラルが聞こえます。

「音声2」を選べば

- ②ステレオ二ヶ国語であれば英語のステレオ音声
- それ以外であれば基本は無音、但したまに「解説音声」が聞ける番組もあります。(NHK朝ドラなど番組表に「解」の表記があります。)

どのパターンかの自動判別は残念ながらできませんが、判らないときはとりあえず「主・副」でスタートしてみて、二ヶ国語が混じっている場合は①のパターン、二ヶ国語放送の筈なのに日本語しか聞こえない場合は②のパターンとして、再度言語を選択すれば良いと思います。
視聴画面では以下のセレクタで言語を選択し直してストリーム再スタートすることができます。

Audioselect2

これらはファイル再生でも基本的に同じですが、放送の生ストリームを録画したTSファイルと、それをエンコードしたMP4、MKV等では、扱いが少し異なります。

TSファイルであれば上記のストリームがそのまま保存されていますので、選択肢も同じで、再生開始時に以下のセレクタで選択します。

Audioselect3

プレイリストでも各ファイルでデフォルトの音声選択ができます。

Audioselect4

再生中にもこの選択は「再読込操作」ボタンからいつでも変更できます。

Audioselect5

またプレイリストの場合、この「再読込操作」で設定値と異なる音声トラックを選択した場合、以後のファイル再生でも(再度変更しない限り)、その選択が引き継がれます。

ただ、ファイルが二ヶ国語放送のTSファイルを元に、例えばMP4やMKVの形式にエンコードされていると、以下のように少し形式が異なってきます。

Mp4stereo
これは①Dual Mono Modeと殆ど同じに見えますがシステム的な扱いは少し違っていて、音声はストリームもチャンネルも1つで単なるステレオ音声として記録されています。

ここから日本語/英語だけを再生するために、それらのファイル形式の場合は(似たような選択ですが)「主(L)」 「副(R)」の選択肢が表示されるようにしました。

Audioselect6

これで二ヶ国語放送の録画をエンコードしても、音声言語の選択ができます。(なお、「音声2」は通常のエンコードでは破棄されます。)

この辺は元のTSと同じような使い方なのですが敢えて説明したのは、(普通にエンコードすればこうなる筈なのですが)、人によっては(音声の品質を重視して)エンコード時に音声は敢えて元のストリームから変換しない、つまり「AACパススルー」を使う場合もあります。
また「音声2」も保存するために、MP4/MKVでも音声を2ストリームで作成している場合もあるかもしれません。

そういった場合この「主(L)」 「副(R)」方式では日本語・英語の分離はできませんので、下に「passthru」の選択肢を加えました。これはTSの場合の「主」「副」「音声2」と同じ処理をおこないますので、そういったケースでも問題なく扱うことができます。
(逆にそういった事をしない場合はpassthruの選択肢は無視して構いません。というか、使っても効果はありません。)

14)タイムゾーンの変更

古いバージョンのTvRemoteFiles では端末を海外で使うことも想定して、時差を手設定して日本時間で進行していく番組情報を適切に更新できるようにしていました。

しかし、TvRemoteFiles ver1.14以降ではその時差情報を自動で取得できるようになりましたので、設定不要になりました。(なんでこんな簡単なjavascript機能も知らなかったのか・・勉強不足です。。)

当システムはロケフリなので、当然海外出張や旅行の際にもLAN/WiFiの環境さえあれば、PCやタブレット、あるいはChromecastのようなデバイスから日本に居る時と同じように、テレビや録画を(実況付きで)視聴でき、結構便利だと思います。
今はホテルで自由に使えるLAN/WANの環境がかなり充実していますので、その辺の安価で帯域十分な回線が確保できれば、ほぼストレスなく使えると思います。

15)視聴画面をポップアップ型の別ウインドウにする

端末ごとにお好みに合わせて、テレビやファイルの視聴画面を常に別ウィンドウでポップアップさせるような設定ができます。
設定はトップの管理タブでおこないます。

Pupsetting

この設定にした場合、番組表やファイル再生画面の「視聴」ボタンでストリーム開始したり、既存のストリームのボタンを押したタイミングで、図のように最小限の装飾かつ視聴画面サイズに適正に合せた別ウィンドウが立ち上がります。

Pupbsc

番組表やファイルリストを常に表示したままで視聴画面を、必要があれば複数起動できる点も便利で、リンクのように番組表/ファイルリストを(視聴画面のサイズとは関係なくなりますので)見やすい大きさで縦長にしてデスクトップに並べておいて、観たいものがあったらいつでもそこから起動、という使い方もできます。

但し、この機能はタブレットやスマホでは(そもそも非マルチウィンドウで、動画表示も同時に1画面しかできないので)あまり意味がなく、またスマホ/タブのブラウザでは「閉じる」ボタンがうまく働かないような問題もありますので、主にPCやMac向けの機能と考えてください。 

ウィンドウサイズは画面起動時に適正に調整されますが、ズームで動画エリアを調整したり、サイドパネルをON/OFFした場合には、ウィンドウの枠をつまんでサイズ調整しても良いですが、もっと簡単な方法として画面の再読み込みをおこなうだけで、ウィンドウサイズが適正に修正されます。

再読み込みは「再読み込み」ボタンを押すだけで良いのですが、押しにくい位置にある時は図のように
Pupbscadjust

Chromeでは上辺のバーで右クリックから選択できますし、Firefox/Opera/Safariではページ内の(映像以外の)エリアで右クリックすればメニューから指定できます。
Pupffrelo Pupoperelo_2

なお、ポップアップ型に切り替えた直後、ブラウザによっては「視聴」ボタンを押しても視聴開始できない場合があります。
これはブラウザがセキュリティの観点でポップアップを弾いているのが原因で、よく見るとポップアップブロックのメッセージが表示されている筈ですので、速やかにポップアップを許可してください。なおトップ画面はOKでもファイル再生画面ではブロックされる事もありますので、視聴画面が立ち上がらない場合は都度、それぞれの画面で許可してください。(ちょっと面倒ですが最初だけです。)

Pupblock1Chromeではこのようなメッセージが表示されるのでクリックして

Pupblock2 この画面で許可

Pupblockmoz
 Firefoxではこのようなメッセージが出るので、「設定」から許可する。

ポップアップ型画面の通常との流れの違いを以下の図にまとめました。

Pupflow

ポップアップ型に設定した場合、視聴画面からトップ画面や番組表画面への遷移は(操作系が混乱するだけですので)出来ないようになっていて、代わりに「閉じる」というボタンが加わります。
ファイル/プレイリストの再生時には前述の所有権受け渡しが円滑におこなわれるよう、視聴終了時にはウィンドウをTvremoteviewer_endボタンで強引に終わらせるのではなく、できるだけ「閉じる」ボタン又は「(この)ストリームを終了する」ボタンを使うようにしてください。

視聴画面でのチャンネル/ファイル切替えや別ストリームへの切替えは今まで通りになります。

16)お休みタイマ・お目覚めタイマ

① お休みタイマ

ちょっとした機能ですが、TvRemoteFiles v0.57U以降、でお休みタイマを付けました。
使い方は簡単で、視聴画面で下の操作バーに「タイマ」のボタンがありますので、これをクリックしてください。

Tvremote_sleeptimer1_2
すると「時間のセット」→(タイマ稼動中)「タイマの取り消し」の順にボタンが切り替わります。

Tvremote_sleeptimer2

これは私自身が欲しくて付けた機能なのですが、スマホやタブレットで「ながら視聴」しているうちに、うっかり映していることすら気にならなくなってしまい、必要もないのに長時間付けっぱなしになってバッテリー切れを起こす事があります。(スマホ・タブレット・PCとも、動画が動いている間は画面スリープに移行しない設定になっている事が多いですので、バッテリー消費も多くなります。)

そういう場合、予めタイマをセットしておけば良いわけです。セットしても視聴を続ける時は簡単にセットし直すことができます。

また、私は寝る時にナショジオ等の録画を流したまま寝ることが良くあります。(教養系の番組は刺激や音量変化が少なくいい具合に眠れます。決して学生時代に授業中居眠りしていたのが子守唄として身に染み付いている訳ではありません。)

今まではTVTestの「スリープタイマ」の機能が使いやすく、VLC等と外部のタイマソフトの組み合わせで使うよりずっと手軽な反面、MP4のファイル等の再生には使えないのが弱点でした。そのTVTestと同等に簡単、かつ更に汎用的なタイマが欲しいという発想です。

javascriptそのものの機能では機器/OS個別のスクリーンOFFやスリープ機能を直接起動はできませんので、設定した時間になったらストリーム終了(但しファイル視聴のストリームは、存続してもシステム負荷が殆どないため保持)の上で、視聴画面を終了させ、専用の黒背景のシンプルな画面に移行するという形になります。

黒のブラウザ画面では只の誤魔化し、という声もあるかもしれませんが、動画が終了すればスマホ/タブレットでは程なくスクリーンOFF/休止状態に移行しますし、PCでも(動画表示中は保留されていた)スクリーンOFFやスリープ移行のタイマが(設定されていれば)働き始めます。

Tvremote_sleeppowersave

実際のハードの制御はこの辺に任せる、という発想です。

② お目覚めタイマ

TvRemoteFiles v1.60以降では、リモコン制御モードの端末を指定時間に再生開始させる「お目覚めタイマ機能」が使えるようになりました。思えばテレビの目覚まし機能は古いようで新しい定番のニーズだと思いますが、カタログに謳う価値がないと見なされているのか最新のテレビでも殆どやっつけ仕事で、むしろ退化していたりしますね。
ここでは(自分自身の要件に沿った結果)どっこい高機能なものになりました。

Trvtimerassist

詳しい使い方はChromecastの記事にまとめてありますので、ご参照ください。もちろんChromecastだけではなく、リモコン制御モードにしておけば全ての端末で使えます。(動画自動開始できないタイプや基本スリープ状態のモバイル端末ではあまり意味がありませんが。)
パソコン、Chromecast/AndroidTVやFireTVを使えば、寝過ごしたくない時にあるだけの端末を目覚ましにしたり、例えば出張中で起こしてくれる人が居ない時にも活用できます。

17)サーバー低負荷モード

TvRemoteViewer_VBサーバーはストリームごとに配信用のファイルをエンコードしながら作成していきますので、それなりにサーバー負荷が掛かります。
しかし例えば解像度を低くする、ストリームの数を1個に絞る、ファイル・ストリーミング時はass(実況ログ)の焼き込みをおこなわない、等の工夫で、ローエンドCeleronのような非力なサーバーでも実用的に使うことが出来ます。
(テレビ視聴での実況表示は端末側が独自に取得しますので、サーバー負荷には関係ありません。)

ただしバージョンを重ねるにつれて、視聴中も単にストリームを受け取るだけではなく裏でいろいろな処理が動くようになってきたため、このような工夫でなんとか動かしている場合だと、特に視聴開始時のサーバー使用率が100%に張り付くケースが出ています。
そこでそのような非力なサーバー用に、できるだけ負荷のかかる裏の処理を減らすモードを追加しました。

設定にはトップ画面の管理タブで、以下のチェックをおこなってください。

Lowload1

これがチェックされた端末では、視聴画面が

① 番組表の問い合わせを行なわない。
② ストリーム監視を10秒間隔から20秒間隔に変更する。
③ ファイル再生では再生状態の監視と記録を20秒間隔から1分間隔に変更する。

という動作に変わります。
但し、①によってサイドパネル番組表の機能と、実況勢いウインドウクリック/タップでの番組情報表示、およびチャンネル直接切り替えの機能は使えなくなります。

また②では現在動作中の他のストリーム情報の更新が遅くなるほか、他の端末の操作で視聴中のストリームが不意に停止したり、チャンネルを切り替えが発生した場合に「自分のストリーム消失を検知して視聴画面を終了させる動作」や、「自分のストリームの変化を検知して画面の再ロードをおこなう動作」 が遅れ、結果として(PC視聴の場合)Flashがハングすることがあります。その場合ブラウザ上部にFlashハングのメッセージ

Flashhang

が表示されますので、ボタンを押してFlashを一度停止させれば、再びページ移動や再ロードなどの操作ができるようになります。
この辺は負荷を下げることとのトレードオフとしてご了解いただければ。

なお、ファイル再生時のエンコード負荷が高いと言うのはそれだけ有効にCPUを使いに行って早くエンコードを終わらせようとしている訳で、タスクの優先度自体は低いので他の処理に影響を与える訳でもなく、あまり気にしなくても良いと思います。)

18)サーバーイベントログ表示機能

TvRemoteViewer_VB v1.14で追加されたWEBインターフェース・ログの機能を使って、サーバーイベントログを表示する機能を追加しました。
トップ画面管理タブの一番下に「サーバーイベントログ」というボタンがありますので、

Eventlog1

これを押せば別画面でログ表示画面が起動します。
Eventlog2

通常はあまり使わない機能ですが、何か動きがおかしかったり視聴が開始できない時に、この画面でサーバーの動きを調べることができますし、掲示板で問い合わせる時もこの情報が役に立つと思います。
この画面は別ウインドウで起動し、「閉じる」で終了します。スマホやタブレットでも一応使えますが、「閉じる」ボタンが効かない場合がありますので、その際はブラウザの機能を使ってウインドウを閉じてください。

ここに表示されるログはTvRemoteViewer_VB の設定画面下

Tvremoteviewer_originallog

に表示されるものと同じです(但し自分自身のリクエスト/WI_SHOW_LOG.htmは省略しています)が、サーバー画面ではログがどんどん流れていくのに対してこのWeb画面では(意図的に)「更新」ボタンを押さない限り表示更新しない仕様になっています。

また簡単なログ分析機能として、サーチ機能を付けました。サーチ動作自体はファイル再生画面用のサーチ機能に準じますので、そちらをご参照ください。
サーチが効いている状態で「更新」ボタンを押してもサーチ条件は維持されますので、特定イベントだけを監視したい時にメッセージフィルタとして使えます。

例えば図では2つのキーワードを指定することで、特定のストリーム配信の進行を監視しています。Eventlogsrch1

またサーチ結果に出てきた特定のイベントの前後のログを知りたい時は、そのイベントをクリックして選択状態にした後、

Eventlogsrchclr1

「クリア」ボタンでサーチ条件を解除すれば、

Eventlogsrchclr2

選択したイベントが画面中央あたりに表示された状態になり、その前後のイベントも表示されますので、ログの分析に役立ちます。

19)手動配信

トップメニューで「手動配信」のタブを押すと、図のようなメニューが表示されます。

Tvremoteviewer_web12

ここからストリーム番号とBonDriver 、および解像度を選んで配信をスタートさせることができます。

ただしこの手動配信でしか出来ないような事も特にないので、今となっては何かうまく動かない時のテスト用途以外では使わないと思います。

20)その他の管理・設定機能

トップメニューの管理タブにある設定項目の使い方は、各機能に紐付くものはそれぞれの説明の中にありますが、ここではそれ以外の機能について説明いたします。

① ストリームの管理

Tvremotesysmgt

ここで現在Activeなストリームの一覧を見て、既に不要になったものは個々に、あるいは全部のストリームを停止させることができます。

ストリームの停止だけであれば視聴画面でも出来ますが、ここは各ストリームの内容と使っているBonDriverの情報を見渡すことができる唯一の画面ですので、ストリームの状況をチェックしながら整理するのに便利です。

② 背景画像と背景色の選択

TvRemoteViewer_VBの端末側はブラウザの機能だけで動いており、現在のHTML5やJavascript/JQuery/Ajaxの機能の豊富さ/パフォーマンスの高さを我ながら実感していますが、(つまらない話かもしれませんが)「余白」の部分がブラウザデフォルトの白い背景のままだと、

Nicotvremote_andro_main

いかにもブラウザの中に間借りしてます、という風にちょっとプアな感じです。

ちなみにこれも関係のない話で、最近往年のWinampの機能をHTML5とJavaScriptだけで動かしてしまった、という話もあって、技術的には結構参考になります(しかもやっぱりIEは対象外orz)が、それに対する反応が「良くやった」という声より、単に「ブラウザの枠が邪魔」という感じなのは笑えました。まあWinampはブラウザで動かす必然性が少ない(しかもローカルファイルを開く仕様は実はプラットホームフリーではない)のも事実ですが、ブラウザ上でアプリ実装する場合はやはり単に箱庭的なアプリではなく様々なブラウザ画面サイズを活かした機能域のスケーラビリティ (つまり小さい画面なら小さいなりに、大きければより広さを効果的に使う工夫)も必要で、加えて空白部の装飾も重要ですね。

そういう事の対策と言えるほどの大した機能ではありませんが、以下のように背景画像や背景色も指定できるようにしました。ここで指定した背景はトップメニューと視聴画面、およびファイル選択画面で有効になります。

Bgsample2

Tvremote_settingbgcolor

背景イメージはTvRemoteViewer_VBの\htmlフォルダに入れておけばここのプルダウンに出てきますので、好きなものを選んでください。解除するときは空欄を選択すればよいです。

背景色は背景イメージが指定されていない時に有効です。プルダウンでカラー名を選ぶことができます。
モノトーン系とか赤系・青系のように分類されていますので、いろいろ試してみてお好みのものを選んでください。
(何故ここでカラーチャートのような形にせずカラー名で選ぶようにしたのか?という点については、何となく名前で選ぶ方がどんな色になるのか楽しいんじゃないかと。。)

21)スカパープレミアムの配信について

当システムを使えはスカパープレミアムも、(BonDriverの使えるチューナーをお持ちであれば)ここまでの手順そのままでリモート/モバイル機器やMacで視聴することが可能になります。

Psprogram1
(上のスライドスイッチにスカパープレミアムのみを表示する"PS"という選択肢が加わりました。)

Psprogram2

といっても私自身スカパープレミアムの受信環境を持っていませんので、チューナーの設定/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の

RecTask_SPHD =
Psrectask_3

にて指定する必要があります。(逆の指定にならないようご注意ください。)

② 番組表の使い分け

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 =

Psng_2

があり、今回のスカパープレミアム対応を機に、これらに局名ではなくサービスIDで指定することが可能になりました。
サービスIDが判らない時はRecTaskのch2ファイルを見ればわかります。

Psidカンマで区切られた6番目がサービスID

サービスIDで指定すれば正確なマッチングができますし指定もシンプルになりますので、この辺もご活用いただければと思います。

22)インターネットラジオ(超!A&G+)の実況付き視聴

TvRemoteFiles Ver1.48以降では、アニメ好きの方のためにインターネットラジオ「超!A&G+」の再生機能を追加しました。
これは文化放送が提供している視聴ソフトと比べて特に違ったことをする訳ではありませんが、インターフェースをTvRemoteViewer_VBに合せた上で2ch実況を流せる点がちょっと便利なところかと思います。

使い方は、トップページの「地デジ/ラジオ番組表」を押せば、

Radio0 (従来「地デジ番組表」だったボタン)

下の列にA&G+の番組が表示されますので、

Radio1

ここをクリック(タップ)して反転させた後、再度クリック(タップ)すれば視聴画面が起動します。

Radio6

ただ見た目は今までとほぼ同じですが、実際の動画/音声は局側がFlash(flv)で流しているソースをそのまま表示しているだけですので(TvRemoteViewer_VBサーバ側は殆ど何もしていない)、動画停止、シーク等の細かい操作はできず、サイズ変更(ズーム)の他には、もともとのFlashで提供されている音量調節のみが可能です。
(音量コントロールの操作域は表示より少し下にずれていますのでご注意ください。)

Radio3

また、Flashが故の以下の制約があります。

① Flashが再生できる端末のみで視聴できます。具体的には以下の表の通り。

端末環境Flashサポート状況=A&G+再生サポート
Windows (Chrome/Firefox/Opera/Edge) ○ (TvRemoteViewer視聴の前提として導入済の筈。
 またEdgeは標準でFlashプラグインが導入済)

Android(4.4以降)
 (4.3以前はFlash導入可能なので○)

○ Dolphin BrowserまたはFlashfoxを使う。
△「超オプ」を使って実況と映像をならべて再生。
iOS △専用アプリで音声だけを流しながら実況再生
Chromecast X
Mac ○ Flashを導入すればOK

Windowsであれば(Edgeを含め)どれもOKで、MacもFlashを導入すればOKです。
(但しWindowsMobile10はFlashをサポートしないようです。)
またAndroid環境では、4.4以降では多くのブラウザではFlashを利用できませんが、Dolphin Browserを使えばFlashの再生もサポートしており実用的です。
Dolphinで使うには、「設定」でJetpackをオンにし、「Flashプレイヤーを常にオン」にしてください。その上で こちらのサイトで下に辿っていけばFlash Playerのダウンロード・ボタンがありますので、そこからapkファイルをダウンロードしてください。
それを(拡張子がzipになっていたらapkに修正した上で、)野良アプリとして導入してください。以上でFlashが再生できるようになります。

また、Andoridでは上記のFlashが動くブラウザを使う方法以外に、アプリの「超オプ」を使って再生画面をPinPの形で再生しながら TvRemoteViewerで実況画面と並べて観る、という視聴方法があります。実況と並べて観る形になりますが、再生環境を選ばないので、Jetpackの使えないインテルベースのAndroid端末等で1つの選択肢になります。

iPhone/iPad/ChromecastではFlashが動かないので、どのブラウザでも再生できません。iPhone/iPadで2ch実況を流しながらA&G+を視聴するには、オフィシャルアプリ を導入の上で、映像は諦めて音声のみのモードにして裏で流し、TvRemoteViewer_VBを実況プレーヤーとして動かす、という使い方になります。

② コメント遅延時間をシステムが自動計算することができないため、「コメ遅延時間」は番組と聞き比べながら手動で調整する必要があります。(サーバや視聴ソフトの状態によって大きく遅延する事があります。)

③ 番組の開始/終了時間は表示されず、また番組進捗しても番組表の表示色は変わりません。

④ サーバがストリームを配信/維持する訳ではなく、それぞれの端末側が勝手に外部のサービスを利用するだけですので、トップページや視聴画面の「ストリーム一覧」にA&G+の再生状況は表示されません。視聴画面は端末側で毎回、「地デジ/ラジオ番組表」から起動してください。

以上のようにちょっと勝手の違った面はありますが、割と気軽に使える機能かと思います。(これ以外のインターネットラジオは2ch実況スレがないためここで使う意味があまりなさそうで、対応する予定は今のところありませんが。)
.

以上で一通りの操作手順の解説は終わりです。特に視聴画面についてはプラットホームによって微妙に使い勝手が違いますので、まずは使って慣れるのが早道だと思います。
.

3.外部から家庭内LANにアクセスして視聴するためにDynamicDNSとVPNを設定する

さて、1.の設定が終わっていれば、家庭内のLAN環境であればスマホ/タブレットでもPCでも、同じ手順でストリームを視聴できるようになります。

これを家の外から使うためには

・外部インターネットから家のLANに"セキュア"な「通り道」を作って、"192.168.*.*"のような「家庭内プライベートアドレス」へのアクセスをそちらの通り道に誘導する仕組み(VPN)

・その「通り道」を確かに家のルーターに向けて張るために、家のルーターに割り振られた(しょっちゅう変化する)「グローバルIPアドレス」にドメイン名でアクセスできるようにする登録サービス(DynamicDNS)

以上が必要になります。

これらを準備しておけば、外からでも家のルーターに与えられたドメイン名を使ってアクセスして、ID&パスワードで(内部LANと)「接続」すれば、あとは家の中のLANに接続したのと同じ状態になりますので、全く同じ手順でストリーム視聴ができるようになります。 
(違うのは回線の太さだけですので、無理のないビットレート(=解像度)指定などをおこなってください。またイントラネットからアクセスする際は、ご家庭のIPアドレス体系と重なっていないことをご確認ください。)
なお企業や一部ホテルのイントラネットからアクセスする場合、セキュリティポリシー上PPTPやL2TPを外にも出さない設定になっていて繋がらない事があります。これは企業のセキュリティポリシーにも依りますので無理にやることはお勧めできませんが、PCからのアクセス前提でより確実性を担保したい時には 3)でSSTPを併用する方法もあります。

一点つまらない事ですが重要な話として、VPNを設定すると自宅から2chに書き込みができない、という思わぬ問題が出るようです。これはリンクのようなルーターのパケットフィルタ設定で回避できますので、2chを使う方はVPN設定時に一緒にやっておけば良いと思います。

1) 設定手順

セットアップのフローは以下のようになります。

なおこれとは別の構築方法として 3)のSoftEtherを使うやり方もあります。そちらも構成要素はほぼ同じですが個別に導入する必要はなくパッケージ化されており、申し込み等も不要ですので、これから環境構築される方にお勧めです。

セットアップのフロー
 赤枠内をクリックすると手順の説明にジャンプします。(外部サイトを含みます。)

D
D
N
S






DDNS申込み DiCEのセットアップ ルーターDDNS ログ画面

V
P
N






ルーターVPN Windows VPN 端末側VPN

① 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を構築する手順をご紹介します。
これも大して複雑な設定ではありませんので、リンクのようなガイドを参考にすれば数十分でセットアップできると思います。
(ルーター・ポートマッピングの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機能付きのルーターを購入検討するのも良いと思います。対応ルーターはピンキリですが、家で使うならこの辺この辺で十分だと思います。(但し下にあるSoftEtherのほうが費用は掛からず高性能なので、よりお勧めです。)
VPN機能付きのルーターを使いたいけど今のルーターは光/ADSLのプロバイダから提供されているから簡単に交換できない、と思われるかもしれませんが、別にそれは普通の環境です。
そういう場合はプロバイダ提供のルーターと購入するルーターを2段にして、後者(のWAN側)を固定アドレスにして前者からDMZとして定義し、全てのLAN側機器は新しいルーターの下に繋ぐ形に変えれば良いです。(DHCPや無線LANホストの役目も新しいルーターに移行すればOK。この辺の図を参考にしてください。)
そうすれば2段目のルーターが実質唯一のルーターとしてフルに新しい機能を使えるようになります。

⑤ 端末側のVPN設定は、iPhoneiPadAndroidWindowsMac と、それぞれの手順を参考にしてください。上でも少し書きましたが、PPTPサーバにWindows機能を使う時は、

iOS系であれば、「全ての信号を送信」の項目をOFFにする。
AndroidであればDNS探索ドメインを設定する。
Windows端末であれば「ゲートウェイを使用する」のチェックを外す。
Macであれば「すべてのトラフィックをVPN経由で送信」のチェックを外す。

という設定が必要です。(それをしないと、全てのインターネットアクセスをVPNを通してやろうとするため、DNS機能の無いWindows経由では外部インターネットに繋がらなくなってしまう。)
これは別にルータVPNを使う場合でも同じで、(この設定にしなくても繋がりますが)インターネットアクセス全てがご自宅のルーター経由になるわけで非効率ですし、その経路ではイントラネットからご自宅にアクセスしている場合はイントラネットに繋がらなくなりますので、とくに理由がない限りこの設定にしてください。

またWindowsVPNでもルーターVPNでも大抵はPPTP接続ですので、PPTP以外のIPSecやL2TPをうっかり選択しないよう、ご注意ください。

2) 解像度とビットレートの関係について

主に家庭内で視聴する場合は高めの解像度で問題はありませんが、リモート視聴を予定さていれる方は、家からプロバイダへのアップストリームの帯域、および利用する端末がそれぞれの場所で使える帯域をよく考えて、余り無理のない解像度を選んでください。各解像度のモードでストリームあたりに必要な帯域は以下の通りです。

Tvremoteviewer_bitrate3

アップストリームについては例えば、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で個別におこなわれますので、帯域も同時視聴台数分を足したものが必要、ということです。)
逆にストリームが起動していても再生中の端末が無い場合は、回線帯域は全く消費しません。(サーバ側でひたすら配信用ファイルを作っては消して待機しているだけで、実際は配信されていない形になります。)

以上のようにどの辺の解像度を常用するかは、快適なリモート視聴環境にしていくために結構重要ですので、システムが完成したらよく視聴しそうなロケーションでいろいろ試してみてください。

3) SoftEther VPN を利用して1)より強力なVPN環境を作成する。

国内の大学発プロジェクトの成果物(かつてはベンチャー化されていましたが現在はオープンソースプロジェクトとなっています)であるSoftEther VPNを使うことによって、1)でご説明したものを、より強力な形で全て置き換えることができます。

但し非常に高機能であるため、初めて自宅とのVPNを構築される方にとっては(まずマニュアルの用語を理解するところからして)少々取っ付きにくいかもしれません。よってここではオプションとしてご紹介いたしますが、手順としても1)よりシンプルですので、これから導入される方にはこちらがお勧めです。(単に私が不勉強で知らなかっただけで;; ただ1)はVPNとは何ぞや?という説明にはなっていると思います。。) 現状この用途での利用については全て無料です。
 1)の方法と比べて、以下のような利点があります。(もちろん回線能力でストリーミングの絶対性能は縛られますのでそこを変えることはできませんが。)

① VPNを構築するのに必要な機能はパッケージ化されています。またデフォルトでPPTPよりセキュリティの高いL2TPを利用できます。
L2TPを利用するため、最初にあるような「2ch書き込みのためのパケットフィルタリング」のような設定も不要です。

② DDNSを別途契約する必要はありません。導入の際に自宅のドメイン名を設定することができ、それをそのまま利用できます。(実際はプロジェクトが運営するサーバがDDNS機能を提供しており、設定時に自動的に接続・登録され、更新もDiCE相当の機能で自動化されています。)

③ WindowsVPNでは(Windows Server版でない限り)同時1クライアントでしか利用できませんが、その制限がありません。またルーターVPNを使えば複数クライアントの同時利用はできますが、数千円台のルーターでは性能が低く、そこそこの回線能力がある場合ボトルネックになります。その点SoftEtherの場合一般的なPCをVPN Serverとして使いますので、処理能力は遥かに高くなります。
ちなみに1)のWindowsVPNを立てる場合と同じですが、SoftEther VPN Server役のWindowsマシンはTvRemoteViewer_VBサーバと同じでも構いません。IPアドレスは固定する必要があります。

1つ注意点ですが、SoftEtherは定番とはいえそれなりに高機能なソフトが常駐することになるので、システムや他のソフトとの相性が起きることもあります。(早い話私自身の経験ですが、録画PCと同居させたところそれまで安定していたシステムが日に1回の頻度でハングするようになりました。)
負荷はPCにとって大したものではないので、そういう場合余っているノートPC等があれば、VPNサーバとして別立てにするのもお勧めです。

詳しいマニュアルも公開されています。

https://ja.softether.org/4-docs/1-manual

が、豊富な機能を詳しく説明したマニュアルですので、こういう単機能の利用のためには取っ付きにくいかもしれません。
(逆にここで利用する機能についてはWindowsへの導入リモートアクセスVPNモバイルにおけるVPN あたりにまとめてありますが、これは端折り過ぎな気がします。)

そこでこういうケースでの導入事例として、こちらをご紹介します。

http://solomon-review.blog.so-net.ne.jp/2014-12-13

読みながら導入してみて、判らないところがあればマニュアルの各項目を参照する形が良いと思います。
Windowsクライアントの接続設定はSoftEtherページのこちらに、またAndroidはここ、Macはここにあります。
ちなみに1)での注意点と同じですが、ガイドでは端末側で「すべての信号を送信」を 「オン」の設定にしていますが、これだと全てのインターネットアクセスが自宅経由になってしまうので、特に理由がない限り1)での推奨通り、「OFF」等にすることをお勧めします。

私自身良く判らず混乱していたのは、SoftEtherのマニュアルには「NAT トラバーサル機能を使うのでルータ/FWのポート開けは不要」というようなことが書いてある一方、導入事例では「やはりポートを開ける」という情報が圧倒的に多い事です。
結果としては上記記事の説明によると、「Windowsから、また特にVPN Azure中継サービスを併用する場合は穴穿け不要(参考)、しかしスマホやタブからL2TPで接続する場合は設定すること。」という事になるようです。
開けなくても良い環境もあるかもしれませんが、一応私が理解できている手順は以上です。

孔が開いてないはずのルータ・FWを越えてしまうというのはかつてSoftEtherが大企業のシステム管理者の頭を抱えさせた特徴なのですが、元々のSoftEtherはPCを相対させたリモートブリッジのような使い方が主に想定されていた気がしますので、その場合はこの特性が効いてくるんだろうと思います。ただ汎用的なVPNとして使うにはL2TPのようなプロトコルサポートも必要ということで、ルーターの定義も必要になるのでしょう。
Winノート/タブでの利用が前提ならSSTPを使ったルータ・FW越えも可能だと思いますので、学内や社員寮などでそういった環境に鯖を置かざるを得ない方は(管理者に断りの上で)試してみるのも良いかもしれません。

外部視聴のための手順は以上です。

4.使い勝手の向上とストリーム起動の安定化のためにSpinelとRDCTを利用する

さてTvRemoteViewer_VBを実際に使ってみると、これを使う上でSpinelが非常に有効であることに気が付きました。
といっても私の家の環境ではもともと全てのチューナーをSpinel経由で使っているので、何かトラブルがあって改めてSpinelでそれを解決した、という事ではないのですが、何度かうっかり操作をやっては「これはSpinelがなければフラストしていたな」と感じることがあり、操作性の上でもうっかりミスを防ぐためにもメリットが大きいと考えています。

またテレビ番組表が3波区別なく表示されているのに対して、BonDriverが地上波・衛星用に分かれているとBonDriverを一々チャンネルに合わせて選択しなければなりませんが、RDCTを使って「BonDriverの3波化」をおこなえばこの辺を意識したりうっかり間違える事もなくなり、使い勝手が上がります。
こういう利点がありますので、既にSpinelが動いている環境ではRDCT併用を推奨、またSpinelが動いていない環境でも、この目的でSpinelを入れるのもお勧めしたいと思います。

1) 主要なメリットを以下にまとめます

Spinelを使うメリット

・TvRemoteViewer_VB配信中に同じBonDriverを使って録画タスクが開始しようとすると、Spinelがなければ録画タスクが該当BonDriverを掴めないため録画失敗する。リモート環境ではそのような事態を十分把握できない。

・更に配信タスクがハングした時に管理画面で「配信を停止」してもRecTaskはBonDriverを掴みっぱなしになる事があり、Spinelで優先権を設定していなければ録画タスクは失敗する事になる。

・Spinelを経由して録画タスクに優先権が設定されていれば、先に使っていたストリームはその時点で停止するが、録画タスクに影響はない。

・既に配信で使っているBonDriverを別の配信でうっかり重複使用してもエラーにならない。1個のチューナーで何種類かの解像度での並行配信も可能である。

RDCTを使うメリット

・地上波とBS/CSのBonDriverを束ねることによって、「チャンネルごとに使うBonDriverの種別を意識する」という必要がなくなり、全てのBonDriverで全てのチャンネルを視聴でき、使い勝手が上がる。
特に視聴画面から直接別のチャンネルに行きたい時に、地上波/BSCSの区別なく移動できるのが便利。

・本来独立して使える地上波と衛星のチューナーを1個にまとめるのは贅沢に思えるが、実は1個のBonDriver_RDCTで地上波と衛星は独立して操作できる。

2) Spinelの説明と導入方法

Spinelの概要は以前の記事でまとめましたので、「何ぞや?」という方はこちらをご参照ください。以下の絵はそこからの抜粋です。

Spinelexcl

これから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で説明してあります。

3)RDCTの説明

RDCT(BonDriver_RDCT)は、異種のBonDriverを組み合わせて単一イメージで利用できるようにする一種のラッパーです。
RDCTは同種のチューナーを複数組み合わせて中で順番に割り振る、というような使い方もできるのですが、ここではあくまで「地上波チューナーと衛星チューナーを組み合わせて仮想的な3波チューナーにする」ツールとして使います。

また配下に置くBonDriver は必ずしもBonDriver_Spinel である必要は無いのですが、RDCTはもともと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に関する機能だけ切り出したものを公開したいと思います。

これを使えばお手持ちのチューナーを組み合わせて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ファイルをダウンロードし、適切な実行フォルダに解凍してください。

「GenBonSpr.zip」をダウンロード

ちなみにこのプログラムを別の場所にコピーする場合は、このフォルダ構造ごとコピーしてください。(初期状態でサブフォルダの中にあるファイルは、プログラムの実行に必須です。)

このプログラムはネットワークの共有フォルダからでも実行できますし、またUSBメモリからでも正しく動作します。複数のPCでSpinelが動いている時は、そうやって共有しながら順番に動かしていけば各Spinel用のBonが一括して作れますし、各種取り込みも1回で済みます。

(2) 準備が済んだらGenBonSpr.exeを ダブルクリックすれば、以下の初期画面になります。

Genbonspr_init

赤枠内をそれぞれ指定してください。
リンクをクリックすればブラウザで、各プログラムをダウンロードするページが表示されますので、適切にダウンロードし、ダウンロードが終わったら(圧縮ファイルのままで構いませんので)それを指定してください。
選択ボタンを押せばファイル/フォルダの選択ダイアログが表示されますし、ファイル/フォルダを直接指定欄にドラッグ&ドロップしても構いません。

指定が終わったら[次へ]を押してください。内容に問題がなければ次の画面に移ります

(4) Spinel環境を解析した結果のBonDriver一覧が表示されます。

Genbonspr_tunerlist

ここでの作業は地上波用と衛星用のBonDriverを1個づつ指定しながら「コンボ化」ボタンを押して、RDCT化する組み合わせを決めていくことです。

Genbonspr_combine

「コンボ化」が指定されたものは、その組み合わせでBonDriver_RDCTが生成されます

ネーミングルールは図にある通りですので、順番を変えたければ対象を選択した上で↑↓ボタンを押してください。

「コンボ化」が指定されなかったものは、そのままBonDriver_Spinelが生成されます。

指定が終わったら「次へ」を押してください。

(5) この画面ではch2ファイル生成に使うプリセットファイル(BS/CS)と、地上波ch2ファイルを参照する既存のTVTestフォルダを指定します。

Genbonspr_getch2

プリセットファイルは特にこだわりが無ければ、「ダウンロードのリンク」からダウンロードしたものを指定してください。
これは最新の編成になっている筈ですし(TvRemoteViewer_VBの動作に悪影響のある)難視聴用チャンネルも除いてあります。

尚、BSのチャンネルマップは機種毎や同じ機種でも(例えばPT-S.ChSet.txt の定義次第で)違ってくるのですが、ch2ファイルの生成時にできるだけその辺の特性に対応させています。(従ってch2ファイルの内容は個別に違うことがあります。)

地上波については、既にお使いのTVTestがあればそちらを指定してください。あるいは「テンポラリなTVTestを使ってチャンネルスキャンを実施する」を指定すればここでスキャンすることもできます。その場合次の画面になります。

Genbonspr_tvtscan

ここではスキャン用TVTestのあるフォルダ(または新規にダウンロードした場合はそのzipファイル)を指定して、地上波チャンネルスキャン用最小構成のTVtestを起動します。

「スキャンの開始」ボタンを押せばブラウザでスキャン手順が表示されますので、その手順に従って、同時に立ちあがったTVtestの初期画面を操作してください。手順通り進めれば地上波チャンネルのスキャンが動き出しますので、終了まで数分待ってください。

なお放送していない局はスキャンできませんので、この作業をやるときはできるだけ(深夜のような放送休止のある時間帯を避けて)どの局も放送している時間帯にしてください。漏れがあると後でやり直しが発生します。
スキャンが終わったら「OK」を押してその後TVTestを終了させれば、自動的にch2ファイルが取り込まれます。

全て指定が終わったら「生成」を押してください。BonDriver_Spinel/RDCTと対応するch2ファイルの生成が始まり、メッセージ欄に進捗が表示されます。

(6)生成完了したら以下の画面になります。

Genbonspr_finished

ここにある通り、生成した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を使う環境が完成します。

.

終わりに

機能的にはかなりリッチなものになりましたが、導入が面倒なのは自覚していますので、後日作成したアップデートプログラムを拡張して、導入支援プログラムも作成したいと思っています。ただそもそも外部プログラムとの連携が多いので、それほど単純ではありません。まあ、体力がある時にでも仕上げようと思っています。

補足. 改訂履歴

・2016/5/23 TvRemoteFiles ver1.78
ライブラリ(ecl.js)を5/22以降のMicrosoft Security Essentials が誤検出して検疫してしまう可能性を解消。

・2014/10/6 初版

« 電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用) | トップページ | Chromecast(クロームキャスト)とTvRemoteViewerで未来型テレビを作る »

デジタルTV、TS抜きチューナー」カテゴリの記事

コメント

うまく動きませんので質問させてください。

windows10x64、PX_W3U3_V2、RecTaskでTvRemoteViewer_VB使用してます。
コンボチューナ目的でSpinel導入、GenBonSprでコンボチューナ作成したのですが、TvRemoteViewer_VBでコンボチューナ使用すると数秒ほどで「配信されていません」となります。
サーバ側画面ではRecTaskのバーが5秒ほど表示後、消えてます。TvRemoteのログだと該当するのがこのあたりでしょうか?

チャンネル切り替えに失敗したのでUDPアプリを終了します
No.=1UDPの配信チャンネル切り替えに失敗しました
No.=1UDPの配信チャンネルが切り替わるまで待機しています←このログがしばらく続いた後上のログになります。

試しに上記エラー後、サーバ側TvRemoteViewer_VBの設定画面からコンボチューナのBonDriver選択してstartボタンを押すと、止まることなくクライアント側に映像が配信されますし、その後のチャンネル変更もクライアント側から出来ますが、一度配信を終わるとまた同じエラーです。

クライアント側からRectaskの操作が上手くできてないのか??と思いサーバ側ファイアウォール無効にしても同じでした。もうちょとで動きそうなんですが問題点お教えください。

かぜさん、ご返答遅くなってすみません。
EDCBのEpgTimerの話であれば、普通にBonDriverフォルダにRDCT化されたbonを(サブフォルダごと)入れてチャンネルスキャンすれば3波チューナーとして使えるようになると思います。
同時使用したい時は設定でBon毎のチューナー数を2とすれば2タスクで同時利用できると思います。ただ地上波と衛星の組み合わせ時のみ同時使用できる、というような設定はないと思いますので、そこは手動で割り振り要になりますが。

すみません質問させてください。
このページの最後にあるプログラムを使いコンボ化させたbondriverをepgtimerに地上波とBS/CSを包含し、同時利用可能なチューナーであると認識させるにはどうすればよいのでしょうか?

素早い対応ありがとうございました。
無事100%に戻すことができました。

beneさん、特にAndroid端末はRangeバーの実装に問題があって、そういった操作がやりづらいと丁度気になっていたところでしたので、以下の対策をおこないました。試してみてください。

TvRemoteFiles ver1.69
視聴画面のズームバー、遅延時間バーに±ボタンを付け、一部の端末でRANGEバーの細かい操作がしにくい状況に対策しました。またズームバーに100%に戻す X ボタンを付けました。

但しAndoridの場合、±ボタンを大さっぱに押すとすぐ近くのRangeバーが反応してしまい、一気に最小値、最大値になってしまうことがあります。できるだけ人差し指で、ちょっとRangeバーから離れた側を正確に押すように気を付けてください。少し拡大して操作した方がストレスにならないと思います。

ZoomBarを使用しているのですが
うまくスライドできず100%に戻すことができません。(今は109%位を行ったり来たり)
100%に設定を戻すことは可能でしょうか。

100%に戻すボタンなどがあると助かります。

yokoさん、2chDTV板のロケフリスレでも過去に「40003だけ穿けてもうまくいかない」件は出ていたと思いますが、私もそれ以上のことは判りません。
よって全くアドバイスはできないのですが、ご自身で試行錯誤されるのであれば、ffmpegのUDPポート42424を開けてみるとか、標準の80,8080なども開けてみたらどうだろう、ぐらいでしょうか。
アプリケーション自体は常にポート40003を指定してアクセスしているので、ブラウザ側が何かデフォルトでアクセスしているポートがあるのかも知れないと思っていますが、全くテストしていませんので。
ちなみにそもそもここでVPNを推奨しているのは構築や利用の安定性が一番なのですが、その他に個人的な考えとして一応公式に出ているリモート視聴の規格に「暗号化していること」というのがあるので、いろいろ他にはありますが少なくとも暗号化しない状態でネットから見えるような手順は推奨しない方が良いと思ったもので、あまりガイドできませんが、すみません。
もしうまくいったら掲示板等で教えていただけると有り難いです。

はじめまして
2年前にvladiさんのプログを参考にPT3を導入したのですが、先日故障してしまい Ver.2.0への入れ替えと共にTvRemoteViewer_VB を導入して自宅内でのLAN環境では動作する所までこぎ着けました。

私の場合、万一の端末紛失の場合、VPNで他のサーバーに接続される方が困る環境のため自宅の外からのアクセスをVPNでなくルーターのNAT'(IPマスカレード)で実現したく
外部からのポート40003へのアクセスをTVサーバー機に接続する設定を行ったのですが上手く動作しません。 (DDNSなどの動作は確認済みです。)

ご紹介のVPNとは違う内容で恐縮ですが、このポートも開けてみては などアドバイスがいただければ幸いです。

金ちゃん さん、状況からすればPT3の導入等もまだあまり慣れていらっしゃらない感じではないでしょうか?この導入についてもインストールの過程の何かが抜けていると思います。途中よく判らなくて飛ばしたところがないか、何回でも確認されることをお勧めします。
Invalid stream~ のメッセージはプレーヤーが出しているもので、HLSの再生に必要な機能が無いという意味です。PCの場合Flashをちゃんと導入されていますか?
またAndroidの場合普通は出ませんが、Firefoxで視聴しようとすると出ると思います。Android版Firefoxは視聴にFlashが必要ですが、現在のAndroidバージョンでは通常提供されておらず、また非公式に導入することはできますがこれで使うにはパフォーマンスが非常に悪いので、ここではお勧めしていません。(手順の中にに書いてあります。)Dolphin BrowserやChromeをご利用ください。

EDBC、TVRockからの番組表取得がなにも表示されない、というのはこちらを良く読んで設定してください、としか言えません
http://vladi.cocolog-nifty.com/blog/2014/10/iphoneandroidpc.html#LF1-5
少なくともTvRemoteViewerを導入している端末からブラウザで、iniに記載しているhttp://コンピュータ名:8969/nobody/iphone、http://コンピュータ名またはIPアドレス:5510/api/EnumEventInfo 等を叩いてみて、きちんと表示されるようにしてください。その状態になっていれば、番組表が表示されない理由は何もない筈です。

はじめまして。すばらしい視聴アプリありがとうございます。
androidなどでもPT3から再生できないか探していたところこちらのサイトにたどり着きました。
セットアップと設定をおえて試してみたのですが、うまく動かず質問させていただきました。

視聴しようとすると再生画面に
#11 Invalid streamType and/or streamServer settings for .
とでてしまい再生ができません(RecTaskはうまく動いているようです)。

また、
EDBC、TVRockからの番組表取得がなにも表示されません。

なにか間違っているのだと思うのですが、何度見直してもわからずヒントをいただけたらと思い
投稿しました。お忙しいところお手数ですがご教示いただけたらと思います。
よろしくお願いいたします。


了解しました。
Apacheのリバースプロキシを使っており、特に特定の文字列を変換してしまうような事はないと思います。
こちらでも原因を探してみて、何か分かったら報告させていただきます。貴重な時間をいただき、どうもありがとうございました。

mel さん、関係しそうなところを一通り見てみましたが、とても不可解な症状ですね。画面表示がエラーしてまともに動かないとか、すぐに落ちるというのなら原因は単純だと思うのですが、限定的とはいえ一通り動いた上で一部の機能が使えないとなると、何か特徴的なやりとりで問題が出ているんだろうと思います。
例えばURIの中の特定の文字コードが正しく送られていない気がするのですが、お使いのリバースプロキシはURIを何か変換してしまうような話はありませんか?
エラーの出ているところを見ると、html\filesの下のplmon.jsonを読むようなところでレスが無いか壊れたコードが送ってきているような気がしますので。

自前でリバースプロキシ立ててテストすればもっとPD出来ると思いますが、その気力が無いので今これぐらいしか判りません。また何か気付いたことがあればupdateします。

長い期間をおいた後の報告にもかかわらず、返信いただき、誠にありがとうございます。
リバースプロキシでの動作も本当に「あとちょっと」という感じだとおもいます。地デジが見られているだけでも感動モノなのに、欲を言ってしまってすみません。m(_ _)m

以下報告となりますが、下記のことはすべてリバースプロキシ環境下でのみ起こります。直接アクセスでは下記のことが問題ありませんでした。

恐らくそのとおりだと思います。TvRockを使っているので、トップ画面の番組表項目に、「地デジ番組表」、「TVRock番組表」、「ファイル再生」の3つがありますが、「TVRock番組表」から開いた場合、視聴ボタンを押しても反応なしになってしまいます。
一番上の「地デジ番組表」から進んだ場合や「ファイル再生」は問題ありませんでした。

また、上記方法で地デジやファイル再生をした時、「ストリームを停止する」ことができなくなります(正確には、どのストリームを停止するかのドロップダウンメニューに何も表示されず、選択できないので停止できなくなります)。
トップ画面の管理メニューから、「の配信を停止」を押しても、無反応となります。この場合、何番の配信を停止するかのドロップダウンメニューは出ますが、停止ボタンを押しても反応ありませんでした。

以上、報告とさせていただきます。この度は誠にありがとうございます。よろしくお願いします。

melさん、なるほど、リバースプロキシでの動作もあともうちょっとという感じですね。ちょっと教えてください。
文中でおっしゃっている「使えている地デジ番組表」というのは、古い(rockバー形式ではないテキストだけの)番組表のことでしょうか?
地デジ番組表もrockバー形式の事をおっしゃっているとすれば、中身のロジックはほぼ何も変わらないので理由が思いつかないのですが。

以前、リバースプロキシ対応していただき、誠にありがとうございます。
5ヶ月も連絡が滞ってしまい、大変申し訳ありません。その間にも、精力的にアップデートをされており、心から感服いたします。

大変遅くなり、報告というのもおこがましいのですが、以前の続きをコメントさせていただきます。
1.31の時に報告させていただいたとおり、リバースプロキシからの接続では、BS/CSチャンネルの方(TVRock番組表)の番組を再生しようとすると、視聴ボタンを押しても進めませんでした(無反応)。地デジ番組表からは視聴できます。
リバースプロキシを通さず、直接アクセスすれば問題ありませんでした。
ご多忙と思いますが、もし都合がつく時があれば、見ていただけると幸いです。

失礼いたしました。本文書き換えておきました。

こんにちは。大変瑣末なことなのですが、③ 対応ブラウザの準備 セクションにて

>Operaは導入時に問答無用で自分をデフォルトのブラウザにしてしまいますので

とありますが旧Presto版、現Webkit版共にセットアップ時のオプションが初めにちゃんと出てきますので、問答無用
ということはありません。
#私は10年来このオプションでサブブラウザ運用をしています。但しスタンドアロンインストーラをダウンロードしてからセットアップしています。

ほぼ本筋と関係ないですが、お知らせまで。

NEETさん、すみません動作環境をもう少しご確認いただけますか?
そういえば最近XPでテストしてないなぁ、と思いさきほど家のXPマシンでTvRemoteViewer_VBを動かしてみたところ、問題なく起動して配信も正常にできました。
したがってXPマシンだから何か問題がでるというのではなく、あくまでXPマシンでの設定か環境設定の問題だと思います。

7マシンでは動画も放送も問題なく配信出来ているのでしょうか?
もし7マシンで正常に動いているのなら、TvRemoteViewer_VBの環境をフォルダ構造そのままXPマシンに持っていくことは可能でしょうか?
その際、7マシンの段階でffmpegもRecTaskも32bit版にして、それでちゃんと動くようにしておいてください。

実はXP環境はUACもないですし、ファイアウォールがあれば試しに止めてしまえばいいので、それ以外で動かない要素はあまり無い気がします。(サードパーティ製のアンチウィルスやファイアウオールソフトが動いていれば、切り分けのために一時全部止めてみることをお勧めします。)
ほかに考えられるのは.NET Frameworkの 4(フル版)が導入されてるかどうか、ぐらいしか思いつきません。

詳しいご解説ありがとうございます。

1レス目の方と似た症状なのですが、
TVRemoteViewer_VBが正常動作しません。(配信されていません画面でストップします)
以下エラーメッセージが表示されます。

System.Net.HttpListenerException (0x80004005): スレッドの終了またはアプリケーションの要求によって、I/O 処理は中止されました。
場所 System.Net.HttpListener.EndGetContext(IAsyncResult asyncResult)
場所 TvRemoteViewer.WebRemocon.OnRequested(IAsyncResult result)

OS:XP SP3、.NET:4.0、TvRemoteViewer_VB:v1.51です。
設定系は関係なさそうです。(ダウンロード直後実行しても同じエラーが出ます)

ポート開放、権限チェックしましたが解決しません。
何か思い当たる所ないでしょうか。ちなみに7環境だと上記エラーが出ません。

うーん、質問の数というより、
-どちらも止まるというのは何の「どちらも」でしょうか?「PCで観ても止まる」という話なのか?それとも下でご提案したチェック項目のどれをやっても止まる、という話なのか?
-なぜそれを解決するべき時に「ffmpegの最速変換」の話になるのでしょうか?
-VLCはもともとバージョン依存や環境依存が強いのでここではお勧めしていないのですが、基本の動作がうまくいかない時になぜvlcでなんとかしようとされるのでしょうか?
-BSCS地デジ が全く見られないのならスクランブル解除やRecTaskを見直せと本文でも書いてあるはずですが、なぜ「コンソール」の話になるのでしょうか?

何をお伝えされたいのかさっぱり判りませんので、申し訳ないのですが「手順を省かず、読み飛ばさず、うまくいかなければ何度でもやり直してください。」としかガイドできません。
ここのコメント欄では一応自主ルールとして、原則お1人のご質問は1回1往復のみ、とさせていただいておりますので、以上のガイドを元に自力で頑張ってみるよう、お願いいたします。(この話での会話はここで打ち止めとさせていただきます。)
少なくとも正常なOSの状態、ガイド通りの設定をして、余計なパスワード設定やファイアーウォール等が働いてなければ、その機種であればそういう動作はしないと思いますので、何かを見落としていると思います。

昼間は回答ありがとうございます
いろいろしましたが、どちらも止まるみたいです
ffmpegの最速変換の設定などあれば嬉しいのですが...
VLCがノイズまみれで見れないのはなぜでしょうか 安定版を使ってます
あと、今気づいたのですが、BSCS地デジ (mpeg2)がまったく見れないみたいなのですが(コンソールを出しても途中でフリーズする) 
何か設定がおかしいのでしょうか?
質問多くて申し訳ないです

ぷりさん、
他の端末、例えばPCで観て何の問題もないのであれば端末または回線の問題ですね。
1)リモートだけでそうなる →回線が不安定とか7GB制限喰らってるとか
2)リモートでもローカルでもそうなる →ブラウザをいろいろ変えてみてください
3)ローカルだけでそうなる →端末のWiFi接続環境が不安定

ただスカパーHD特有の問題が何かないかは私は環境を持っていないので判りません。ただPC等の鑑賞で問題がなければスカパーHDだからという話ではないと思います。

こんばんは
お聞きしたいことがあります
TvRemoteViewer_VB_1.50 ffmpeg を使ってAndroid 4.4.2で視聴しているのですが (SC-02F、スカパーHD)
しばらくするとストリーミングが止まってしまいます (ffmpegはサイトから最新版を使用)
VLCの方を試したのですが画面が破綻してだめでした
どうすればいいですか? 
不足している情報あれば教えてください。

Vladiさん、再度ご提案ありがとうございます。

今回GenBonSpr.exeを使わせて頂いてTvRemoteViewer_VBについてはRDCTを導入させていただきました。
しかし、もともと導入済みであったTVRock+Spinel+PT2についてはRDCTを導入せずそのままにしていました。
PT2の4台のチューナーを2つの仮想チューナーにまとめてしまうことで、これまでの4チャンネル同時録画や予約振り分け処理がうまくいくかどうか不安だったからです。
おそらくどうにかなるんだとは思うのですが、現状で安定して使えているので満足しています。
Vladiさん、どうもありがとうございました。

Canoさん、私の場合最近はすっかりRDCTのコンボチューナーの設定で使ってるため、そういうケースのことを良く判っていません。あてにならないことしか言えず、すみません。

ちなみに解決策というか、この機会にRDCTも使ってみては?1個でも3波コンボチューナを定義しておけば、iPhone版番組表にも簡単に全ての放送波を表示できると思いますが。
http://vladi.cocolog-nifty.com/blog/2014/10/iphoneandroidpc.html#LF4-4

Vladiさん
回答有難うございました。

しばらく試してみましたが、自分の環境では全チャンネル表示にすることは難しいようです。
地デジはネットからも取得しているとのことなので、TVRock番組表ではBS/CSを取得するようにしたいと思います。

Canoさん、
>常にチューナーのどれかを選択した状態になってしまい
はい、その動きで正しいです。紛らわしい書き方で申し訳ありません。
といっても正確なことが私も判ってないのが理由なのですが、チューナー選択ボタンを触っているうちにそのチューナーの対象外のチャンネルが表示されない状態になることがあるようです。
iPhone番組表を使った時は最後に一応その状態になっていないかチェックしてみて、そうなってるときはチューナー選択を「適当に」変えてみてどのチャンネルも表示された状態にしておいてください、という感じのようですね。

Vladiさん
大変便利なものを公開し、また丁寧なガイドをありがとうございます。
ガイドの中で一点だけわからない部分がありましたので教えていただけませんでしょうか?

TVRock番組表の利用の箇所で、iphone用番組表を利用した後はチューナー選択なしに戻すようにとのことですが、戻し方がわかりませんでした。
iphoneではなくデスクトップのchromeからの操作ですが、常にチューナーのどれかを選択した状態になってしまい未選択の状態に戻す方法がみつかりません。
本来こちらでうかがうべき内容ではありませんが、検索しても探しきれなかったので教えていただけると助かります。

melさん、ご確認有難うございます。
確かに「お待ちください」画面の他にも「配信エラー」画面と「お休み」画面の「トップに戻る」ボタンがドメイン直下に飛んでますね。
ver1.31のまま先ほどこっそり差し替えましたので、試してみてください。
BS/CSチャンネルについては、ざっと見たところおかしな所は見つからなかったのですが、リバースプロキシを使わない状態では普通にTVRemoteViewerで観られていますでしょうか?
地上波とBS/CSで(Rockバータイプの番組表をお使いであれば)そこは同じロジックを通るはずなので、ここの振る舞いに違いは出ないとは思うんですが、見逃しがあるかもしれませんので、見直された結果をまた教えていただければ幸いです。

対応有難うございます。
早速、設定して使ってみました。
おかげさまで見事、iPadでMercuryというブラウザでLAN内から接続した所、地デジの再生に成功しました。
本当に有難うございます。
幾つか細かいところを上げると、配信準備中の数秒待つところで「トップに戻る」ボタンを押すとリバースプロキシを通さない状態のアドレスに遷移してしまいます。(hogehoge.com/inde.htmlに行ってしまいます)
また、BS/CSチャンネルの方(TVRock番組表)の番組を再生しようとすると、視聴ボタンを押しても進めませんでした。
さしあたり、報告まで。こちらの設定ミスかもしれないので、もう一度よく見てみます。
素早い対応、どうもありがとうございます。

mel さん、最初のメールを良く読んでおらず、ドメイン直下ではなく、tvremote/のようなdirnameの下にwww rootを置いている、という前提を忘れていました。
v1.31でその点にも対応いたしましたので、こちらで確認いただければと思います。度々済みません。

素早い対応ありがとうございます!
早速検証してみます。数日以内に報告できると思います。

melさん、遅くなりました。
上記変更履歴にある通り、ver1.30でご要望の点に対応してみました。これで十分かを自分で検証した訳ではないので、試してみていただけると幸いです。

以前は返信有難うございました。

一つ要望なのですが、私の場合、Stoneというパケットリピーターを使い、https://で通していること、また、Apacheのリバースプロキシを使い、特定のアドレスに設置しているため(認証自体もApacheで行っています)
(例として、https://hogehoge.com/tvremote/)
配布している改変ファイルを、そのような環境下でも対応できるようにして頂けないでしょうか。
以前は、var nexturi = 'http://' + hostaddr + '/StartTv.html?'
の部分を、location.protocol+'//やurl_scheme + location.host+'/tvremote'
などと置換して使っていたのですが、暫く前から当方のスキルでは置換してもアクセス出来ないようになってしまいました。
大変我儘な要望では有るのですが、もし可能でしたらご対応お願いします。

hatiさん、レス大変遅くなって申し訳ありません。
暫くレスを考える時間の余裕がなかったのが理由ですが、といっても何か良い答えが思い付いた訳でもないです。
その部分はあまり間違えようがないですし、そこから先はここでやりとりしても、yahoo知恵袋みたいな会話になってしまうと思いますので、敢えてやりません。
ここの本文にサーバー側、端末側それぞれで必要なことは盛り込んだつもりですので、1つづつご自身でチェックいただくしかないです。
例えば両方PPTPになってるかとかIPアドレスは割り当てられているかとか、他にも見落としがあるのかもしれません。
念のため他の参考サイトも載せておきますが、あまり追加の情報はないですね。ただ気付きのきっかけにはなるかも。
http://www.akakagemaru.info/port/vpn/pptp-windows7.html
http://blog.livedoor.jp/strikers556/archives/65742488.html
http://teturi.blog112.fc2.com/blog-entry-188.html

はじめまして、少し設定が詰まってしまってアドバイスを頂きたいです。
VPN設定の所です、Wi-Fiに接続中なら視聴できるのですがLTEや外部ネットからだとVPNに接続が弾かれてしまいます。
モデムはPR-S300SEで1723と47のポート開放は完了しています
Windows7のVPN設定も新規ユーザーを作成し完了しています
Diceも実行されていてmydns.jpにも登録しました、AndroidのVPNのサーバーアドレスの部分には
http://登録ID.mydns.jpで合っているのでしょうか?、どうにもうまく行かず困っています。

あ、入れ違いでその通りのレス頂いていましたね。解決してなによりです。

**************
yさん、ffmpegのPES packet size mismatchというのは単なるワーニングでこれで動かない事はありませんので、問題の本質ではないと思います。
状況からするとRecTaskからのストリームに何らかのエラーがあるんじゃないでしょうか?例えばうまくスクランブル解除できていないとか
適切に選局できていない事が疑われます。その辺をチェックしてみてください。

自己レスです。
スクランブル解除の設定ができておりませんでした。
解決いたしました。
お騒がせしてすみません。

失礼いたします。
大変有益な情報をありがとうございます。

当方、トラブルが発生し、リアルタイム視聴ができず困っております。
もしよろしれければ、ご助力頂ければ幸いです。

番組のリアルタイム視聴を行おうとすると、ffmpegが「[mpegts @ 0000000004462ec0] PES packet size mismatch」というエラーを吐き、エンコードが始まりません。BS、CS、地上波共に同じ状態です。
.tsファイルを利用したストリーミングは問題なく行うことが出来ました。
ffmpegのバイナリは2015/05/20のビルドと、2014/12/10のビルド、両方で試してみましたが、うまく行きません。
何か対策等ご存知でしたら、お教え頂ければ幸いです。

超長い記事ですね。詳しく教えてくれてありがとうございます。

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

TvRemoteViewer_VBを楽しんでいるものです。
質問がありますが、地デジ、BSはパソコンでもiphoneでも視聴可能ですが、ファイル再生で録画したTSファイルが表示はされますが、再生できません。(表示が0のままで1に変わりません。)ちなみに、mp4やaviファイル等の動画ファイルはすべて見れます。但し、再生できるTSファイルもあります。このHPを熟読したつもりなのですが、自分の設定にいたらない所があるのでしょうか?
ちなみに、ファイル名(自動で作成されます。)がダメなのかと思い下記に再生◎と×を書きました。

再生×:201504032032020102-ミュージックステーション 桜・卒業・旅立ち…春の応援ソングスペシャル[字].ts
再生◎:Record_20150124-222837.ts

再生×のこのファイルですが、TVTestでは普通に再生されます。
ご指導しただけると助かります。

もう一つ、ファイル再生でフォルダーが表示されると助かるのですが、そのような機能はありますか?
よろしくお願いします。

返事が遅くすいません
早速対応いただきありがとうございます、おかげさまで無事に設定することが出来ました
ありがとうございます。

Roさん、ご返答遅れてすみません。
GenBonSprをver1.01に改修し、最もサイズ的に厳しいと思われるBonDriverの組み合わせ画面
http://vladi.cocolog-nifty.com/photos/uncategorized/2014/10/06/genbonspr_combine.jpg
をサイズ可変・縦スクロール可能な形式に改修しました。ダイアログが画面の下にはみ出している時はダイアログの上端をつまんで下げることで一旦縦サイズを圧縮し、次に全体を上に持っていってスクロールすれば下端のボタン類にアクセスできるようになります。
ファイル差し替え済みですので、再度ダウンロードして試してみてください。

もともとWXGA+以上の画面を想定して固定サイズで作っていたものを無理やり改修した形なので小さめの画面で使い易いとは言えないかもしれませんが、SVGA以上の解像度であれば一応操作できると思います。

GenBonSprを使おうとしたのですが、解像度の低いNotePCだと画面がはみ出してしまい次へボタンが押せません
プログラムの修正をしていただくことは可能でしょうか?

うーん、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

丁寧な解説ありがとうございました。
概ねバッチリ動作しているのですが、一点だけ不具合が。

・TOKYO MXだけ受信できない

TVROCKからBonそのまま持ってきてて、
TVROCK側では正常に受信できてるんですが、
RemoteViewerで、番組表から「視聴」押しても、
数十秒「配信準備中」と表示された挙句「配信されてません」と表示され、停止します。
MX以外は、放送大学ですら正常に受信できるんですが。

当方、住居は東京都内です。

何か調整すべき箇所に心当たりありましたら、ご教授お願いしたい。

お役に立てなかったようですみません。
一応追加で、やってみられたかもしれませんが、もしそのスマホを家の中の無線LANで繋げても同じ状態ならスマホの再生環境の問題、家の中なら問題ないのであれば回線の問題という切り分けができます。
再生環境の問題であれば、ブラウザを別のものに変えてみる、また(可能であれば、ですが)システムを更新してみるとどうか、というのを試してみるのも良いかもです。
また回線の問題であれば、理由は判りませんが瞬断というか、何分かおきに通信が途絶えるような現象が起きていることが疑われます。
役に立たないかもしれませんが、ご参考まで。

Vladi さん,アドバイスありがとうございます。
PCからの接続では全く正常で、なぜ携帯電話でこのような現象が生じるのか不思議です。
接続環境は、WIMAX2+で7GB制限のかからないタイプで使用してます。
解像度も最低のところまで落としても駄目でした。
また何か情報など入りました時にはよろしくお願いします。

お忙しい中申し訳ありませんでした。

佐々木さん、「画面がフリーズし携帯電話の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
に引っかかっている場合もあります。
この制限がかかると平均的に遅くなるだけではなく、時々途絶えてしまうような通信状態になりますので、丁度おっしゃっているような時間経過でぱったり止まってしまう形になります。

何度も挑戦してやっと外出先からでも接続できるようになり感謝しております。
但し、携帯電話(アンドロイドver 4.3)で接続すると必ず約4分で突然画面がフリーズします。
復旧させるには、携帯電話のVPN接続を切断およびVPN設定を削除し再設定しないとだめです。
PCで外部からの接続では全く問題ありません。
何とか解決できないでしょうか?。

そうですか。そういう話だとこれ以上何も申せませんが、おかしな現象は何かがおかしいから起きるわけで、その辺の動作はあまりに基本すぎて今更バグ等無いような部分ですから、必ず間違いがあると思って見直したほうが良いと思います。
例えばSpinelのモニタで動きをちゃんと確認していますか?
http://vladi.cocolog-nifty.com/photos/uncategorized/2011/10/10/spinel12.jpg
排他がかかっている時は「統計情報」に「排他」と表示されますので、それが録画セッションではちゃんと表示されて配信セッションでは表示されないのが本来の動きですが、そうでなければ(理由は知りようがありませんが)間違ったBonDriverを使っていることになります。ご参考まで

Vladi さん、アドバイスありがとうございます。独立したRecTaskフォルダを作り、そこにGenBonSprで作ったコンボのBonDriverを入れ、「TvRemoteViewer_VBの設定画面」のUDPアプリにそのフォルダのRecTaskを指定しました。

結果として録画中でも、そのドライバを使って配信されますねぇ...(たとえば地上波t00を録画に使っているのにts00が選択されるので、追随してチャンネルが変わってしまう、手動でts01を指定すれば問題はない)録画さえしてなければ完璧に動作してるんですが...

せっかく初心者でもわかるように詳しく書いていただいているので、何度も読み返してみましたが、お手上げです。せっかくお返事いただいたのに申し訳ありませんでした。

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は指定不要です。)

以前にPX-W3U3の記事にて質問させていただきました。その節はありがとうございました。
移行ノートラブルで運用中です。
今回、またロケフリ記事を参考にさせていただきストリーム配信についてはうまくいくように
なりました。
ところが、排他処理というのでしょうか、それがうまくいってないようで、TVROCK使用の録
画中に配信すると録画が失敗してしまう状況です。手順通りのBonDriver_RDCTを使用、T
VTESTも以前の手順通りBonDriver_Spine使用です。

そこで教えていただきたいのですが
TvRemoteViewer_VBの設定画面で
UDPアプリはTVTESTのフォルダ、
Bon Driver PathはREC TASKフォルダといった感じで良いのでしょうか?

お忙しい中申し訳ありません。他に必要な情報があればご教示くだされば幸いです。

mel さん、なるほど、自分の環境ではオリジナルのガイドの通り、管理者モード設定はWin7では不要でWin8では必要だったので、あまり深く考えていませんでしたが、そもそも何故この設定が必要なのかを考えると
http://subtech.g.hatena.ne.jp/mayuki/20121225/1356387770
Win7やVistaでも本来設定必要ですね。Win8ではこの辺が厳しくなったので「必ず必要」になっただけのようです。
ガイド修正いたしました。情報有難うございます。

連続投稿すみません。

先程起動しないと書いたものですが、
netsh http add urlacl url=http://+:40003/ user=Everyoneを実行した所、無事起動しました!!
どうもWindows7でもこの動作が必要なようです。お手数おかけしました。

大変わかり易い記事をありがとうございます。
このサイトに質問すべきではないのかもしれませんが、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で起動してみましたが、このようになってしまいました。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/570024/60430754

この記事へのトラックバック一覧です: iPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作る:

« 電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用) | トップページ | Chromecast(クロームキャスト)とTvRemoteViewerで未来型テレビを作る »

フォト
無料ブログはココログ
2016年9月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

ウェブページ