
「がとらぼ」では以前にRemoteTestServerについて書いたことがあるけど、残念ながら
RemoteTestServerは開発が終了しているので新しい機能の追加やAndroid以外の視聴環境への対応などは望めなくなっている。Android以外向けのRemoteTest Webserverも開発終了。
そんなわけでずっと古いRemoteTestServerを使い続けていた。
2chのロケフリスレでTvRemoteViewer_VBが話題になっていて頻繁にバージョンアップしているのを見ておもしろそうだなと思いつつ面倒そうだったので眺めているだけだった。今回PC視聴環境の見直しを行うにあたり重い腰を上げてTvRemoteViewer_VBを試してみた。
導入
TvRemoteViewer_VBの導入手順についてはVladiのブログさんのiPhone/iPad/Android/モバイルPC等によるロケフリ・テレビ+動画ストリーミングの視聴環境を作るに詳しく書かれているので割愛。リンクの記事で配布されている「TvRemoteFiles_212.7z」を使わせて貰うと簡単。
RemoteTestServerより処理が重いようで、RemoteTestServerを動かすぶんには余裕なPCであってもTvRemoteViewer_VBで余裕とは限らない。
単純にTvRemoteViewer_VBとffmpegあるいはTvRemoteViewer_VBとVLCの組み合わせでは非力なPCだとおそらく動画がカックカクになるかしょっちゅう停止するか動画がメチャクチャになる。でも、たかが録画・ロケフリ鯖に高性能なPCを使うのも馬鹿らしいので以下。
- インテルCPUを使っていてそれがQSVを利用できる石ならQSVEncを用意する。
- 謎のAI半導体メーカーNVIDIAのGPUを使っているならNVEncを用意する。
- QSVを使えないCPUでNVIDIAのGPUを使っていない場合は?
QSVenc, NVEncの導入手順はQSV/NVEnc + TVRemoteViewer_VBで軽量PCでもロケフリ フルHDでも気軽にストリーミングがわかりやすかった。
Windowsのファイアウォール
TvRemoteViewer_VBについては使用する受信ポートを許可する。標準値だとTCPの40003。TvRemoteViewer_VB.exeを許可しても受付可能にならないのでそこだけ注意。
ffmpeg, VLC, QSVenc, NVEncはプログラムを許可する。
自動起動
スタートアップフォルダを使うにしろタスクスケジューラの起動時実行を使うにしろ起動用のバッチファイルは必須。ほんとタスクスケジューラの糞化はどうにかしていただきたいところ。
ブラウザで視聴
ブラウザによる相性はあるかもしれないが基本的には視聴環境を選ばない。LinuxのPC、AndroidのChromeで問題なく視聴できた。解像度についてもサーバー側が貧弱でなければ最小解像度からFull HD & 無変換までどれも問題なし。
ただし、操作性は良くないというか毎回あれこれ選択してやらないとならないというところが正直なところ面倒だと思った。
(Android Chromeでの視聴について少し下に別に書いた。)
2017年6月22日追記: コメントいただきました。(このページの下の方。)
痛風さんのコメントのとおり、☆のショートカットで局名と配信条件を指定してやると簡単になった。番組表から選んでも登録したショートカットと同条件で開いた(イイネ)。
Android用 LTVで視聴
LTVの最新バージョンは004。2015年3月4日以降更新無し。
設定の「解像度(HLS)」はうちの環境では720x404が正常な動画として観ることのできる限界。640x360の方が安定か?
設定の「解像度(HTTP)」でもうちの環境では640x360が正常な動画として観ることのできる限界。QSVEncを選べばもっと高い解像度でいけるのかと期待したのに残念。
画面が6インチ以下であれば640x360であってもそれほど動画が荒いとは思わないだろうがブラウザでの再生より劣るというのが問題。
適切な設定をしておけば以後の操作は基本的にはチャンネル選択だけという使い勝手の良さ。
ただし、放送局を選択してから動画が表示されるまで時間がかかるが、そのまま動画が出なくてやり直しになることがある。
アプリの感想としては正直微妙。
RemoteTestのAndroid用アプリがやり方が賢くて正直出来が良かったように思う。「実況」(コメント字幕)は無いけどね。
LTVの設定でHLSを使うかHTTPを使うか決めて「配信方法」でそれを選択。選択した側の解像度を変更する。
QSVEncを使うなら解像度をスクロールして[QSVEnc]以下の解像度を選択する。
思惑ではこれで1280x720の動画が正常に表示される筈だった。しかし、全く動画として成立しなかった。先にも書いたが試用環境では640x360が限界。
2017年6月22日追記: コメントいただきました。(2chの地デジのロケフリシステムを作るスレ part10の373
指摘のとおりQSVencに関わる設定ぽい。TvRemoteViewer_VB_clientについて書いたものへのコメントだと思うけど上手くいってないと認識できたのはLTVでの視聴。(以下)
LTVで視聴開始。そのストリームを他のPCのブラウザで配信条件をQSVencに指定し直して視聴。LTVで再接続すると高い解像度でも全然問題なく観ることができた。
これはやり直しだなぁ。
2017年6月28日追記:
何が原因か解らなかったのでもう一度TvRemoteViewer_VBのUI画面でHLSアプリにQSVEncC64.exeを指定し直したらあっけなく解決したっぽい。前回もUI画面で指定したんだけどなぁ。これでLTVでの視聴でも1280x720までは問題なくスムースに再生されることが確認できた。
Android Chromeブラウザで視聴
おなじAndroid端末のChromeブラウザで視聴してみた。
これは縦画面で表示しているが、横画面で全画面化しても1280x720の解像度で余裕で再生できた。ブラウザ再生の方が使い物になるというのは意外。
TvRemoteViewer_VB_clientで視聴
Windows用のプログラムで動画再生はVLCが担当するみたい。だから要VLC。
最新バージョンは0.11。2016年6月5日以降更新無し。
解像度の選択はあるがQSVEncやNVEncの選択項目は無い。これは期待できないかも。
予想は当たり、このサイズ(320x180)でさえ満足に再生できなかった。
今回試用に使ったWindowsのPCの性能が壮絶にしょぼいということもあってか一番低い解像度を選択しても動画が頻繁に停止、めちゃくちゃに崩れた破綻した動画になった。
満足に使うには高性能PCが要るっぽい。QSVenc, NVEncの選択項目が無いのでサーバー側も高性能なのが要るのかも。
操作性が悪くてもアプリなんか使わずにブラウザで再生すれってことね。
最後に、ロケフリ用として外部から接続できるようにするなら他所の人に勝手に使われないよう対策が必要ね。
2017年6月28日追記:
TvRemoteViewer_VBの側でQSVEncを指定していてもTvRemoteViewer_VB_clientで視聴しようとすると勝手にffmpegで処理してる。(タスクマネージャで確認)
その後、ブラウザでまたはLTVで視聴するとQSVEncで処理してるのでTvRemoteViewer_VB_clientだけ勝手にffmpegになるのがまだ理解できていない。
はじめまして。
私は使用しなくなったWindowsタブレット(CPU:Z3735D)でTvRemoteViewer_VBを運用し、QVSの恩恵は必須な状況にあります。
「毎回あれこれ選択してやらないとならない」とありますが、
この問題は「ショートカット」機能でおさらば出来ると思います。
(番組>右にある☆ボタン)
任意の放送局単位で、エンコード、解像度等を設定できます。
私もはじめは、いちいちQSV、解像度の切替が面倒だったのですが、
この機能により解消されました。ぜひ使ってみてください。
この設定を行うと、番組表からチャンネル視聴の際、デフォルトでエンコーダーがQSVになるのでなお便利です。(何故かは不明)
また、TvRemoteViewer_VBのサーバー設定画面の「HLSオプション」で設定している解像度をよくお使いになる解像度にしておくと、チャンネル選択時、録画ファイル選択時の解像度がブランクのままでも、ここで設定した解像度が自動的に適用されますのでおすすめです。
さらに、PCやテレビでご覧になる場合、
「リモコン」機能をつかうとさらに操作性が改善されます。
(ショートカット機能によりボタン一つでチャンネル切替可能)
このリモコン機能にしかない「画面の最大化」ボタンですが、
視聴中画面での全画面表示+コメスクロールがやりたい場合はおすすめです。
(ブラウザ標準のF11で行うと逆L時でスクロールバーが表示されてしまうのでおすすめしません)
長々と失礼しました。
はじめまして。
Android用TvRemoteViewer_VB視聴アプリ「LTV」のQSVエンコードへの対応法
を、上の方々の書き込みを読みながら、自分なりに探ってみました。
ご参考になれたら幸いです。
結論=設定手順から言います。
(※先ずはWeb経由でQSVがうまく動作することを確保してください)
【サーバーPC側】
1、TvRemoteViewer_VB設置画面で、HLSアプリにQSVEncC32/64.exeを指定。
2、TvRemoteViewer_VBフォルダにある HLS_option.txt と HLS_option_QSVEnc.txt を開いて、HLS_option_QSVEncのほうからご希望の解像度コマンド行を、HLS_optionにコピーし、[]の中は自分で改名してください。(言うまでもないがコピー時、文脈を保ってください)
※私の場合は[1280x720_QSV]という名前を付けました。
【Androidアプリ「LTV」側】
1、設定画面で、サーバから設定情報取得。
2、配信方法>HLS。
3、解像度HLS>さき作ったものから選ぶ。
手順は以上となります。QSVでうまく動くはずです。
==原理(推測)==
1、「LTV」はTvRemoteViewer_VB側に、TvRemoteViewer_VB側で設定したQSV専用エンコーダへの配信リクエストは非対応だそうです。LTVについてを開いてもらえば、分かっていただけるでしょうか、「サーバから設定情報取得」というのはHLS_option.txtのみだそうです。
2、TvRemoteViewer_VB=サーバー側の配信コマンドは「実行ファイル名 -各種オプション…」、例えば、HLS+640x360の解像度で配信する場合、コマンドは
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
…\ffmpeg.exe -i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000&overrun_nonfatal=1 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename mystream-%08d.ts -threads auto -acodec aac -ar 48000 -ab 192k -ac 2 -vcodec libx264 -s 640x360 -vb 1024k -vf yadif -fpre "%HLSROOT/../%\presets\libx264-ipod640.ffpreset" mystream.m3u8
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
になります。.exeまでは実行ファイル名、それ以後はすべてオプションになります。
3、「LTV」から配信リクエストを送る時、TvRemoteViewer_VBに2つの項目を伝えます。
ー配信方法、「HLS」か「HTTP」といった選択結果のみ伝えるようです。実行ファイルの選定は、TvRemoteViewer_VB側が設定(HLSアプリ)より行われます。
ーオプション、「サーバから設定情報取得」したHLS_option.txtファイルから抜粋した具体的なオプションコマンドを送るようです([]に書いてある名前のみ送る可能性もあります;結果は同じです)。
4、以上により、配信コマンドの決定に欠かせない「配信方法→コマンド最初の実行ファイル名」と「解像度→オプションコマンド」をうまく噛み合わせれば、問題クリアになるでしょう。
ありがとうございます。
既存のストリームを利用してではなくLTVのチャンネル選択で高解像度でも滑らかな動画再生ができるようになりました。
HLS_option.txtをHLS_option_QSVEnc.txtで上書きしたつもりだったのが出来てなかったのでしょうかねぇ。
解らずに触りまくってたので間違っておかしなことをしてたのかもしれません。
6月末にQSVEncC64.exeを指定し直ししたのもありますが、Androidでも簡単に使えるようになったのでRemoteTestServerから切り替えできそうです。