« QSV/NVEnc + TVRemoteViewer_VBで軽量PCでもロケフリ フルHDでも気軽にストリーミング | トップページ

2016年10月17日 (月)

TvRemoteViewer_VB 新機能について。(ショートカット機能、hls.js、黒画面除去、DVD-ISO再生)

TVRemoteViewer_VBの本体記事はサイズも限界近くになりましたので、今後の大きな機能追加の説明スペースとしてこの記事を起こすことにしました。今後本体記事と併せてご参照いただければ幸いです。

1.ショートカット機能、デフォルト属性値の機能
2.画面遷移の改修(黒画面の除去)
3.DVD-ISOファイルの再生
 1)起動の待ち時間について
 2)DVD再生の基本動作
 3)必要なプログラムのダウンロードと設定
 4)制約事項
  (1)標準形式(ffmpeg)でのストリーミング
  (2) QSVでのストリーミング
4.hls.js を使った新プレーヤーについて
5.リモコンやゲームコントローラでの操作について
6.モバイル系端末の対応強化
 1)Android端末の数種類の問題に対応
  (1) Huawei 端末対応
  (2)古いAndorid端末への対応機能追加
  (3)実況文字サイズの調整幅拡大
 2)画面フィットボタンを追加
 3)ストリーム開始ボタンを大き目に
 4)Tips 同じAndroid端末内でリモコン操作
余談の雑記
 その1)Chrome/OperaでTVRemoteViewer_VBの表示が少し大味になったと思った場合
 その2)ファイル/プレイリスト画面の改良
 その3)動画エリアの右上に「動画エリア縮小」ボタンを付けた。
 その4)ファイルリストを一気に読み込めるようにした。
 その5)その他小ネタ

1.ショートカット機能、デフォルト属性値の機能

TVRemoteFiles Ver1.82以降ではショートカットの機能を追加しました。

Q1_2

これはS1~S12のショートカットボタンを押すだけでテレビ放送またはプレイリストを呼び出せる、という機能です。

起動時には以下でご説明するデフォルト属性値が原則決め打ちで使われますが、もしショートカットに設定されたチャンネルやプレイリストのストリームが既に存在していれば、その解像度等の属性値に関係なく直ぐにそのストリームに切り替わります。
これはショートカットを、とにかくクイックに目的のもの映すという意味づけにしたかったためです。

トップページにはこの機能用に☆タブが追加になりました。

また、TvRemoteFiles Ver2.00以降ではこのタブの中にチェックボックスが追加され、

Sc1

ここをチェックしておけば以下のように、My番組表の一番上にショットカットボタンが表示されるようになりました。

Sc2

ボタンを押せば設定した内容ですぐに視聴できますので、良く見るチャンネルやプレイリストをここに登録しておくと良いと思います。

リモコン機能でも図のように、基本タブにショートカットボタンが追加になっています。

Q1r

直接画面を操作する場合、ショートカットが使えるのはトップ画面のみですが、リモコン制御下では大抵の画面でこのショートカット機能が使えます。画面切替え時にはショートカット情報をファイルから読み込むのに数秒のタイムラグがあるため一瞬ボタンが消えることはありますが、基本的には旧式テレビ番組表画面や起動中の黒画面を除くほぼ全ての画面で、このショートカットが使えます。

なお、テレビ放送視聴画面ではリモコンに従来から「クイックチャンネル」のボタンがありましたが、それと使い分けできるように、スライドスイッチが付きました。

Q1rs

これで従来のクイックチャンネルとショートカットを切り替えることができます。

Q1rs2

ちなみに視聴画面でショートカットボタンを使うと、現在視聴中のストリームをショートカットに対応したテレビ放送/プレイリストの再生ストリームに切り替えます。
これは今までのクイックチャンネルボタンの動作と同じで、チャンネル切替えの要領で動くことになります。
これは視聴中のストリームを維持したまま簡単に新しいストリームを起動させてしまうと、うっかりボタンを何回も押すことでストリームが際限なく増殖してしまう、となることを避けるのが目的すが、もし意図的に現在のストリームを維持しままショートカットを使いたい場合は、一旦視聴画面から抜けてから使ってください。

ショートカットの設定は、トップ画面☆タブで、「ボタン動作とデフォルト属性を編集」ボタンを押してください。すると次のような画面になります。

Scutsettingnew

S1~S12ボタンは設定中であることが判るように点滅を始め、設定中のボタンは赤くなります。

その状態でテレビ放送/プレイリスト の選択をおこなってください。全て設定し終わったら「設定保存」ボタンを押してください。(保存せずに画面を切り替えると設定は反映されませんので、ご注意ください。)

Ver2.01では、ボタンの表示名も変えられるようにしました。以下のように「表示名」の欄がありますので、ここにお好みの名称を入れることができます。

Scutnickname1

これでトップページおよびリモコンには、以下のように表示されます。

Scutnickname2

初期状態では番組表順にテレビ局が適当に設定され、表示名もS1~S12となっていますので、良く見るものから順にお好みに合わせて編集していくと良いと思います。
(但し、全角文字と半角文字でボタンの高さが変わる処理系もありますので、いろいろ名前を付けていくときはどちらかに統一したほうがバランスが良いです。)

またショートカットにも関連しますが独立した機能として、再生で利用するエンコーダ(FFMpeg/QSVEncの選択)や解像度のデフォルト値を、この画面で設定できるようになりました。
ショートカットからの再生では基本この属性値が使われるほか、通常のテレビ放送やファイル再生時の指定、

Q3tv

Q3file

さらには通常音声やDVD音声/言語選択はプレイリストの登録時にも、最初にこの値がセットされた状態から選択する形になります。

Q3pl

このデフォルト属性値の有効範囲は属性の性格によって共通設定と端末別に分かれており、上の図のように、サーバの性格でほぼ決まってくるエンコーダの選択や、個人の嗜好に依る倍速/音声/字幕の設定は共通設定として全端末に反映され、一方常用したい解像度等、選択を端末うや回線速度次第で決めたい項目は端末別の設定になっています。

基本はここまでの設定はトップ画面でしか出来ませんが、端末毎のデフォルト属性値はリモコン機能でもできるようになっています。

Q3r1

属性値タブに「この端末のデフォルト属性値」という項目が追加され、▼のマークが付いていますので、これをクリックすると設定エリアが表示されます。

Q3r2

特にChromecastのように直接端末を操作できないようなデバイスではここで設定するようにしてください。
以上がショートカット機能およびデフォルト属性機能になります。

2.画面遷移の改修(黒画面の除去)

TVRemoteFiles Ver1.82以降とTVRemoteViewer_VB V2.39以降の組み合わせで、ストリームの起動時に従来の黒画面を表示するのではなく、

2

このように直ぐに視聴画面を表示した上で、ストリームの準備ができるまで静止画を表示して準備状況を文字表示、準備が出来次第動画スタート、という画面遷移に変更しました。

図にするとこんな感じ。Photo

黒画面は初期のTVRemoteViewer_VBの遺産を未だに引きずっていたものですが、これでようやく引退になる訳です。

単に見た目の問題だけでなく、ストリームの準備と視聴画面の準備(ライブラリのロードや画面の調整など)を同時並行でおこなうことになり、ストリーム起動から視聴開始までの時間もだいぶ短縮されます。

但しこの機能は、TVRemoteFiles とTVRemoteViewer_VB の双方が一定以上のバージョンになっていなければならないため、現状初期状態ではOFFになっています。
これを有効にするために、以下のようにTVRemoteViewer_VB.ini にある TVRemoteFilesNEW というパラメータを「 1 」にセットしてください。

0_2

その上でTvRemoteViewer_VBを再起動すれば反映されます。

黒画面を無くす改修は長い間宿題となっていながら後回しでしたが、反映することで動きがかなり快適な方向に変わりますので、バージョンアップの際は忘れずここを有効することをお勧めします。

また別記事でご紹介しているバージョンアップ支援ツール TRVInst は、Ver1.30以降で、それぞれのバージョンをチェックし、所定のバージョン以降であればこれを自動で有効にセットするようになっています。そちらも併せてバージョンアップをお勧めします。

なお準備中に表示される静止画は、配布パッケージを小さくするためにかなり圧縮された品質の悪い画像になっていますが、 \html フォルダにある

 prep.jpg

というファイルを差し替えることで、お好みの画像に取り換えることができます。取り換える際は、画像を16:9 の比率にトリミングした上で、上書きコピーしてください。
さしあたっての素材として、手前ミソながらこちら からいくつかDLできるようにしておきます。

中身はこんな感じ
Prep_2 Prep_3 Prep_4

一応Copyrightsの問題が起きないよう、どれも自前で撮った物です(^^ゞ

3.DVD-ISOファイルの再生

DVD-ISO再生機能はTvRemoteFiles v1.80で一旦リリースしましたが、いろいろ問題があったため、v1.82でロジックを一新して再リリースしました。
基本的な使い方は踏襲していますが、起動時に少々待ち時間が発生するのが相違点になります。
それでもあらゆる端末での再生安定性、また殆どの場合QSV(また恐らくNVEncも)活用できるようになるなど、メリットが大きいため、今後この方式を熟成していきたいと思います。

多くは語りませんが、DVD機能については再生できるのはプロテクトのかかっていないDVD-ISOファイルのみになります。(サンプルの絵ははめ込み合成ですということで)
またBlu-ray-ISOの再生は今のところ対応していません。

それでも従来DVDの再生は一旦HandBrake等でMP4ファイルに落としてからご利用ください、とご案内していました、今回DVD-ISOファイルの直接再生機能が加わったことで、大分便利になると思います。

Dvd2

このようにDVDに字幕があれば表示の選択ができる他、音声の選択も可能です。またサムネイル機能もそのまま使える他、DVDのチャプターも利用できます。

Dvd3

また、以下のようにISOファイルの混じったプレイリストを作成することも可能です。

Dvd5_2

ISOファイルに関しては再生時の音声/字幕の選択を予め設定できるほか、いちいちメニューを経由せずジュークボックスのようにエンドレスに連続再生できるのは割と便利に使えると思いますので、ご活用いただければ幸いです。

1) 起動の待ち時間について

DVD-ISOファイル再生を起動する際、一旦ffmpegやQSVEncが扱える中間形式に変換(Dump)するため、図のような待機画面が表示され、進捗が%で表示されます。

Ison0

この待ち時間はDVDの特性によって変わりますが、概ね2~3分です。
その間別のストリームを視聴して暫くしてから戻って来ても良い(準備が終わっていれば先頭から再生される)のですが、そのまま表示していても退屈しないよう約20秒おきに、上の絵のようにシーンをランダムに選択して静止画で表示するようにしてあります。

但し「ネタバレは嫌」という人のために、このシーン表示をしない設定も端末毎に可能です。
指定場所はトップページ管理タブ
Ison2s1

またはリモコンの属性変更タブ(「この端末のデフォルト設定」の▼ボタンで表示)
Ison2s2

にあります。
シーン表示をOFFにした場合、固定でDVD先頭から10秒の映像が待ち時間の間表示されます。

Ison2

この辺はお好みでどうぞ。

2) DVD再生の基本動作

DVD再生は以下のような仕組みで動いています。

Dvdnew

中間形式のファイルはキャッシュとして、所定数が保持されます。これによって現在再生中のDVDを指定を変えて再起動させる際にもキャッシュが再利用されることでいちいち待ちを発生させないようにし、また良く見るDVDも高速で起動できるようにします。

v.1.80~v1.81ではこのMPlayerの役目(ISOファイルの読み取り)をVLCにやらせており、VLCはもともとストリーミングを機能を持つため待ち時間も不要だったのですが、いろいろな不具合の原因を探っていくうちにどうやらVLCに以下のような根本的な問題がある、ということが判ってきましたので、Dvdold
                                          (旧方式)

いろいろ比較検討した結果、VLCの利用を完全に廃止した現在の方式に切り替えた次第です。
(あくまでHLS汎用かつあらゆる端末で動くことを想定した場合の問題ですので、VLC支持派の方は気を悪くなさらないでください。)

結果として現在では、通常方式(ffmpeg)では問題なくDVDの再生、言語選択、字幕表示とも出来るようになりました。またQSVでもやや制約があるものの、かなり実用性が上がっていると思います。

3) 必要なプログラムのダウンロードと設定

TVRemoteViewer_VBはv2.42以降、TVRemoteFilesはv1.83以降が前提ですが、当面まだこの機能の改善も頻繁だと思いますので、出来るだけ 最新バージョンにしてご利用ください。
その上で、ISOファイルの再生にはMPlayerの特定バージョンを使います。(VLCは不要になりました。)
導入と指定の方法は以下の通りです。

MPlayer
やや古いアーカイブバージョンですが、リンクのページから

 mplayer-svn-35935.7z

Mplayer4iso

をダウンロード&解凍してください。これ以降のバージョンでは漢字交じりのISOファイル処理にバグがあり、またあまり古いものはISOの処理自体ができませんので、当面このバージョン指定でお願いします。

解凍したら中のmplayer.exeを、

Mplayermelt

TVRemoteViewer_VB.exe と同じフォルダにコピーしてください。

Mplayerplaceここにコピー

配置できたら、TVRemoteViewer_VB.ini で以下を指定してください。

Dvdspeci

ISOPlayNEW=1 はここまでご説明したTvRemoteFiles v1.82以降のDVD再生新方式を利用する指定です。(デフォルト)基本はこの指定のままにしてください。

またISO_DumpDirPath= は中間形式ファイル(キャッシュ)の置き場所です。
指定がなければ\streamフォルダ を共用しますが、別のフォルダ、またHDDやSSDを複数使える環境であれば、I/Oを分散させるためにも \streamフォルダとは別のHDD/SSD にフォルダを作成して指定するのがお勧めです。
置き場所は容量重視ならHDDでかまいません。(同時並行でなければHDDでもパフォーマンスの低下は殆どありません。) もしDVD Dump処理を複数並行でおこなう事が多ければ、SSDの方が有利です。

ISO_maxDump= は、保持する中間形式ファイルの数です。いちばん新しく(再)利用したファイルから順にここに指定した数だけ、キャッシュとして保持されます。
デフォルトでは2ですが、HDD/SSD容量に余裕があればここを多く取っておけば、最近再生したDVDのキャッシュとしてより有効に再利用されます。
(但しDVD1ファイルあたり元のISOファイルとほぼ同容量を食いますので、大きくても全ストリーム数程度がお勧めです。)

また、ファイル一覧でISOファイルが選択できるように、TVRemoteViewer_VB.iniの以下の場所に ".ISO" を加えてください。

Isoextent

以上でTvRemoteViewer_VBを再起動すれば、ISOファイルの再生ができるようになります。

ISOファイルの再生では以下のように、従来の「正・副」の音声選択の代わりに、図のように音声トラックと字幕トラックの選択ができます。

Dvd1

またこの選択は再生中に変更も可能です。

Dvd4

但し存在しない音声/字幕トラックを選択すると無効となり、デフォルト値(音声はデフォルト言語、字幕は無し)が選択されます。

但し、字幕の日本語/英語指定は時々正確ではない事があります。もし思った通りの言語にならない時、また、中国語やコメンタリ等を選択したい時は、0~4の数字でトラックが選べるようになっていますので、試してみると良いと思います。

4) 制約事項

現状、把握している問題点は以下の通りです。

(1) 標準形式(ffmpeg)でのストリーミング

① 再生途中で再起動をおこなう際、再開位置に誤差がある。

 DVDによっては数分の誤差が出ることがあります。これはffmpegの現状の制約です。

② さらに、再起動をともなうシークでは、あまり先のシーンに行けない場合がある。またある程度先のシーンでストリーム再起動すると最後尾まで飛んだり、再起動に失敗することがある。

 例えば手元のDVDでは、エピソード7で開始50分前後以降のシーンに行けず、無理に行こうとすると最後尾に近い位置まで飛んでしまいます。(サムネイルの表示と飛ぶ場所は一致しますので、サムネイルの表示がおかしい時は無理に飛ばないのがお勧めです。)
 これもDVDによりますが、どうやらffmoegのバグのようです。そういう場合はエンコード完了まで待ってください。

③ 先頭から再生すると音ずれが発生することがある。

 その場合は開始1分程度の場所で再起動してみてください。

(2) QSVでのストリーミング

① Edge以外のWindows環境の再生では音ずれが激しい。→hls.jsで解消

 これは再生環境依存の問題で、Flashフォールバック環境との相性が良くないのが原因でした。
 TvRemoteFiles Ver2.00以降でWindows環境でも使えるようになったhls.jsではこの問題は解消しますので、今後そちらをご活用ください。

 なお、環境によってはQSVEnc-DVDの再生開始直後に暫く無音状態になることがあります。
 これは待っていれば回復しますので、しばらくお待ちください。

② 字幕を入れると起動に失敗することがある。

 これは現状のQSVEncの作り上、仕方がないので、その場合は字幕なしで起動してください。

③ 字幕の色がおかしい。

 このような色の表示になることが多いです。
Dvdqsvsub

これも現状のQSVEncではVOBSub字幕パレットの指定ができない(又はやり方を知らないだけ?)ため、仕方がないです。

4.hls.js を使った新プレーヤーについて

TvRemoteFiles Ver2.00 では、再生プレーヤーとして新たにhls.jsが使えるようになりました。

Pchlsjs

これまでWindowsなど、HLSの直接再生をサポートしていない環境用として、Flashを使ったエミュレーションモードを持つProjekktorを提供してきましたが、今後hls.jsが選択肢に加わるとともに、Flashをサポートしないゲーム機や様々な組み込み型ブラウザにもTvRemoteViewerのサポート対象が広がることになります。

hls.jsは過去に、FirefoxOS環境の実験のために動かしたことはありましたが、その時の印象ではプラットホームを広げる可能性は感じられたもののそれなりにオーバーヘッドもあり、敢えて利用するほどのメリットはないと考え、棚上げにしていました。今にして思えばパフォーマン的にやや不利なFirefoxでテストしていたことや、hls.js自体もまだ発展途上の時期だったのではないかと思います。
しかし今回、PS4などでの利用を考えて実装してみたところ、PS4でも使えるだけではなくWindows上でFlash(Projekktor)と比べても負荷が軽い上、画質もHLSネイティブプレーヤーに準ずるほど高いことがわかりました。また本来hlsをネイティブでサポートしているAndorid環境でも、機種依存の困った癖がないとか、ライブ配信やエンコード途中の動画配信でもシークがかなり自由に使えるようになるなど、メリットのある選択肢になることが判りました。
尤もAndroid端末でも性能的に余裕のないと、オーバーヘッドのある分ハングの原因になる可能性もあります。(例えば家のFireTV Stickでは、短時間では問題ないものの流しっぱなしにすると落ちてしまいます。)
逆に性能に余裕があるなら、ややパフォーマンスの劣るFirefox環境が自動スタートが使えるなど使い易い面も出てきます。
いずれにしろAndoridの視聴用に使う価値もあると思いますます。

今後Flashの利用は制限が多くなってくることもありますので、特に以下の表の黄色い領域では、hls.jsを第一の選択肢としてお勧めしたいと思います。
Vshlsjs_2

hls.jsを使うための設定は簡単で、トップページ・管理タブで以下のように指定します。

Hls1
(従来の「ネイティブプレーヤーを使う」というチェックボックスを置き換えるものになります。)

また、リモコンから設定することも可能です。「属性変更」タブにある「この端末の属性値」という項目を▼ボタンで開けば、選択ボックスが表示されます。

Hls2

Edgeを除くWindows環境では、敢えて選択しない限りデフォルトで選ばれるようになるほか、Linuxやゲーム機などhlsネイティブをサポートしているかどうか判らない環境でも、デフォルトではこれが選ばれるようになります。
今後のHLSネイティブのサポート拡大も考え、それらの環境でもHLSネイティブは選択できるようになっていますが、実際にHLSネイティブをサポートしていなければ再生画面が黒くなるだけですいので、その時はhls.jsの選択に戻してください。

またiOS環境はそもそもhls.js(というかMSE)をサポートしないため選択できなくしており、Mac環境でもそれにつられて選択できませんが、Appleのプラットホームでは本家だけあってHLSネイティブが安定していますので、敢えて使う理由もないと思います。

hls.jsはエミュレーションですが、完全なソフトウェアエミュレーションではなくブラウザの持つMSE(Media Source Extension)のAPIを使って動画を再生します。
だからこそ実用的な性能が出ているわけで、ハードウェアの持つ動画アクセラレーションもそれなりに使いにいくことで低負荷・高画質を実現しています。
またMSEはHLSより低レベルなAPIで実装されますので、OSがサポートしなくてもブラウザ毎の機能として実装されており、最新のブラウザをサポートしているプラットホームなら大抵使えます。
但しご利用に当たってはブラウザもできるだけ最新版に上げておくことをお勧めします。

ちなみに負荷は軽くてもソフトウェア処理はそれなりにありますので、実況のコメントがあまりに増えて来るとそれなりに引っかかりが出て来ることもありますが、すでに進化を止めてしまったFlashでのエミュレーションよりもはや全ての面で上ですので、ご活用いただければと思います。

5.リモコンやゲームコントローラでの操作について

hls.jsでゲーム機やテレビのブラウザなど、サポート範囲が広がったこともあり、TvRemoteFiles 2.00では従来敢えて切り捨てていた「付属リモコンやゲームコントローラでの操作」もある程度考慮するようにしました。

といっても、真面目にそれをやろうとすると所謂10フィートUIや階層型メニューなど、それなりの画面設計が必要になりますが、そういう所にあまり労力はかけられないので、とりあえず現状の画面構成のまま最低限のことはできる、という形にしました。

1)基本操作1

そもそもですが、ブラウザのインターフェースはマウスのクリックやタッチ/タップ操作を前提にしており、リモコンやコントローラでの操作はあまり考慮されていません。
リモコンで操作する時は、ブラウザのフォーカスの機能を使いますが、これを全てのブラウザ/リモコンの組み合わせがサポートしているとかは限りません。これが使える場合、画面上でフォーカスの当たっているコントロールに図のような枠が付きます(色、枠の形などはプラットホームに依る)ので、

Focus14

リモコンの十字キーでこのフォーカスを出現させたり動かすことが出来るようなら、お使いのリモコンでの操作可能です。

実際の操作もこのフォーカスの枠を見ながら操作していくことになります。

恐らくテレビやゲーム機に備え付けのブラウザではこういったリモコン/コントローラでの操作をサポートしているとは思いますが、そうでない機器の場合、リモコン操作ができるかどうかは使用するブラウザにも依存します。

私が試してみたFireTV、あるいはAndroidTVに(強引に)導入したブラウザ環境では、Dolphin Browserのみが、こういったリモコン操作に対応していました。 ChromeやFirefoxはリモコン操作を殆ど考慮していないようですので、ご注意ください。
Android TVでは通常TvRemoteViewerはChrome Castと同じGoogleCastで利用すると思いますが、GoogleCastは完全にスマホ等からの操作を前提にしており、付属のリモコンには反応しません。付属リモコンをお試しで利用したい時はapkからDolphinをJetpackなしでを導入する必要があります。

2)基本操作2

基本は十字キーでコントロールを選んで、エンターキーで動作させます。
トップ画面では起動直後は「番組」タブか、My番組表にショートカットが表示されていればS1にフォーカスが当たっています。

Focuss1

ショートカット上でエンターキーを押せば、ショートカットの定義内容でただちに起動します。
また、番組表の上で見たい項目を一旦エンターキーで選択後、再度エンターキーを押せば、ライブ起動のためのポップアップが表示され、「視聴」ボタンにフォーカスがあたります。

Popupa1

ここでそのまま視聴ボタンを押せば起動しますが、操作を取りやめたい時は、視聴ボタンの左に小さな点があります。

Popupa2

ここにフォーカスを移動した上でエンターすれば、ポップアップは解除されます。
またフォカスを見失った場合、↑キーと←キーを連打して一度↓キーを押せば、画面左上にホームボタンが表示されますので、

Popupa3

この状態でエンターすることでポップアップ解除が可能です。
このような操作は全画面で共通となりますので、お留め置きください。

3)Tips

視聴画面では、もしスタートボタン操作が必要な場合最初にスタートボタンにフォーカスが当たりますので、そのままエンターを押してください。
視聴が開始されれば、ホームボタンの代わりに左上に画面縮小ボタンがありますので

Shrink1

フォーカスを見失った時は同じようにキー連打でここにフォーカスを移動してエンターを押してください。
画面縮小ボタンを押すとフォーカスが画面拡大ボタンに移り、そこから各コントロールに楽に移動できます。

Fullshrink

Rangeバー(スライドバー)にフォーカスが当たると、←→キーで値を変えることができますが、

Range1

Rangeバーからフォーカスを外せなくなるタイプのリモコンもあります。(↑↓キーで外せる機種もあるが外せない機種もある。)その時はエンターキーを押せば、強制的に別のコントロールにフォーカスが移動するようにしました。

ファイル選択画面をリモコン操作したい時は、「保存場所で絞込み」にチェックを入れて、ファイルリストの左側にフォルダリストが表示されるようにしてください。

Filel1

これがないとファイルリストに入り込んだが最後、ファイルの一番下にいくまでフォーカスがリストの中に捉えられ、その下のコントロールに辿り着きません。
(ちなみにファイルリストの中ではフォーカスの枠が表示されませんが、エンターを押すことでファイルが選択され、現在のフォーカスがどこにあるかが判ります。)

フォルダリストを表示しておけば、ファイルリストの中にいるときも←キーを押すことでフォーカスがフォルダリストに移動し、そこを経由して上下のコントロールにアクセスできます。
これに限らずファイル選択画面はあまりリモコンで操作し易くはないので、良く使うファイルは予めプレイリストに登録しておいてショートカットで起動できるようにしておくのがお勧めですが。

なお、リモコンによってはエンターキーでチェックボックスのチェックをON/OFFできないタイプのものも存在します。
そういう場合は仕方ないのでリモコンでのチェックボックスの操作はあきらめ、操作の必要のある場合はマウスを使ってください。

以上概略ですが、リモコン操作を使いたい方はいろいろやってみてコツを掴んでください。何でもできる訳ではありませんが、あまり考えずちょっと操作したい、という時にはそれなりに使えるのではないかと思います。

6.モバイル系端末の対応強

1)一部モバイル端末の数種類の問題に対応

注) 以下(1)、(2)のようなAndroid端末固有の問題は、TvRemoteFiles Ver2.00以降で追加されたhls.jsを使えば解消します。今後はそちらのご利用をお勧めします。

特にAndroid系端末ではiOSのように1社が完全にH/Wに近い仕様までコントロールしている訳ではないので、HLSの動作についてはメーカーやH/Wによってまだ幅があります。(それでもAndroid 4.3あたりからだいぶ統一されて来ましたが。)

私自身はスマホはiPhoneを使っていますが、安いAndroidタブを買ったり、AndroidTVのNexusPlayerや Mi Box、あるいはFireTVなどを購入した際、通常のAndroid端末としての動作もテストしてみて、気が付いた特性は随時取り込んでいましたが、原則機種対応ではなくAndroid汎用機能としての追加でした。しかし今回は、特定機種の対応スイッチを追加してみました。
あまり機種対応をやってると後で身動きが取れなくなるので今後積極的にやっていくつもりはありませんが、特定機種と言いながらある程度広く適用できるかもしれない機能であれば対応していくことも考えています。(といっても自分で持っている機種でないとPDは困難ですが。)

(1) Huawei 端末対応

最近買った Huawei MediaPad T2

はまたHLS動作の癖が強く、当初はこのソフトの視聴用には使えないのではないか、とまで思ったりしました。
しかしこのタブはHLSの動作がおかしい点を除けば、(値段の割に)画質は良く動作もきびきびしており、またバッテリーの持ちも良いので、何とかしたいと思いいろいろチューニングした結果、かなり問題のないレベルで動くようになりましたので、TvRemoteFilesの最新版(v.1.84以降)で正式にその対応機能を盛り込みました。

Huaweiのタブやスマホは最近量販店でも大々的に売られています。それらすべての機種が同じような特性なのかどうかは判りませんが、逆に(Andoridのロジックボードは結構いろいろなブランドで共通のものが使われますので)Huawei以外のメーカー製品でも同じような症状が出ているかもしれません。もし類似の症状出た場合、この機能をONにして試してみると良いと思います。
具体的には以下のような症状が現れます。

 ① ファイル再生の際、起動直後でまだエンコードが終了している筈がないのに、進捗バーが(エンコード終了を意味する)赤いバーに変わり、

 Specialdro2problem_2
 それがあっという間に終了位置まで進んでしまう。
 バーが終了位置に進むと動画が止まったり、あるいは画面にリセットがかかる、等の症状が出る。

 ② ライブ視聴で、頻繁に動画が止まったりシーンが飛ぶ。一旦止まると画面を再読み込みしない限り再開しない。
  また、エンコード未了のファイル再生では実況が出ない、経過時間表示が0のまま、のような現象が起きる。

 ③ これらの症状は特にDolphin Browserで顕著であり、頻繁にシーンが前後に飛んだり動画にリセっとがかかる。
 ④ エンコード完了済みのファイル再生に限っては何も問題がない。

こういった症状はどれも、OS組み込みのHLSプレーヤーの動作に1点だけバグがあるのが原因です。
それに対処する機能群のスイッチを、トップページ・管理タブに「一部Android端末のプレーヤー動作を補正」という設定項目の中に作りました。
通常は「▼一部Android端末などのプレーヤー動作を補正します。」とだけ表示されていますので
Adj1dro

この「▼」をクリック(タップ)してください。すると以下のような表示になります。

Adj1dro2

ここの「映像が数秒~数十秒で止まる、エンコード未了の~」という項目にチェックすれば、Huaweiタイプ向けの対応機能群が有効になります。

Adj1dro3

なおこの機能をONにすると、ストリーム起動時の視聴画面では2.でご説明した「配信準備中」のメッセージに続いて、図のような「プレーヤー準備中」の画面が表示されるようになります。
Specialdro2c

これはライブでは10秒、ファイル再生では5秒程度の待ちで、この間に動画をバッファに溜め込みますので、少しだけ辛抱してください。

なおこれは端末毎、ブラウザ毎の設定になります。同じ端末でも別のブラウザを使うと設定は反映されませんので、別のブラウザで使う時は都度この設定をおこなってください。
なおこの設定でも、ライブ視聴の際はたまに動画が止まってしまうことがあります。その時の対応として、視聴画面に Button3_2 ボタンを付けました。

Plresetb

これを押せばプレーヤーにリセットがかかり、復旧します。

また制約ですが、ファイル再生では、エンコード未了の間は一時停止ボタンは押さないでください。(再開時にシーンが飛んでしまいます。)
残念ながらDolphin Browserだけは動きが違い、このスイッチをONにしても(頻繁にシーンが前後に飛ぶ)問題が残るため使えません。Chromeブラウザ等がお勧めになります。
よってDolphinの特色である「動画自動スタート」の機能はこのタイプの端末では使えず、動画開始はスタートボタンを押す必要がありますがその点を除けば、結構使い易い動画端末だと思います。(私も最近はHuaweiを持ち歩くことが増えました。)

ちなみに少しだけ解説すると、この症状はこの機種のHLSプレーヤーが、細切れのセグメントを別々のファイル再生だと解釈して、セグメントごとのファイル情報を返してしまう(本来HLSプレーヤーは全セグメントが揃わない限りファイル長などの情報を返してはならない。)という実装ミスによって起きています。エンコード完了したファイル再生では全ファイルの正しい情報を返すので、もともと蓄積型の動画配信サービスを想定したテストしかしていなかったのではないかと想像できます。

(2)古いAndorid端末への対応機能追加

これはAndroid4.2.2以前で良く報告されていた問題で、「ファイル再生時のエンコード完了をプレーヤーが検知できない」という問題への対策です。
この手の端末ではファイル再生後いつまで経っても進捗バーはエンコード中を示す青い色のままで、

Specialdro1a

ファイル再生ではいつまで経っても(ストリーム再起動を伴わない)プレーヤー機能でのシークはできません。またエンコード完了したファイルストリームで続きのシーンから再開しようとしてストリームを選択しても、プレーヤーシークが効かないため先頭に戻ってしまう不便さがありました。
こういう動きは恐らくは、ベンダー側が実装の際にHLSの利用をライブストリームしか想定していなかったためではないかと思います。(1)のHuaweiとは逆ですね。

今回そういう機種に対応した機能スイッチを付け、それがONになっていればファイル再生時はエンコード完了に関係なく、ストリームを再起動させてかならず続きのシーンから再生されるようにしました。
このスイッチは(1)と同じトップ画面管理タブで、「▼一部Android端末のプレーヤー動作を補正します。」をクリックすると出て来る「 ファイル再生でエンコード終了を検出できないタイプの動作を改善します。」にチェックすることでONになります。

Specialdro11_2

実はこのスイッチは手動でセットしなくても、「エンコード完了してプレーヤーリセットを掛けたのにプレーヤーが認識できない」という現象を検出して自動的にONになります。しかしそれだけだとブラウザを変える度に、無駄に1回は「ファイル再生時のプレーヤーリセット」が起きてしまいますので、既にそういう端末だと判っていればここにチェックしておけば良いわけです。

私の手元でも東芝の少し古い(4.2.2)タブで起きていました。Androidの場合古いOSをアップデートできるかどうかはメーカー次第で、特売やドンキなどで売っているAndroidではまだまだそのレベルのバージョンのものも多いと思います。これ以外にも問題が出るかもしれませんが(逆に出ないものもあると思いますが)、類似の問題が出たら試してみると良いと思います。

(3)実況文字サイズの調整幅拡大

これはどの程度意味があるのか判りませんが、実況文字サイズが小さい、という端末のために、同じ場所に文字サイズの調整幅を0.4倍~8倍に拡大できるスイッチを付けました。(従来は0.4倍~2.4倍)。

Jkscaleacc_2

このスイッチをONにすると、1倍を超えた分の倍率は5倍のアクセラレーションがかかります。(例えば倍率設定の目盛が1.6倍なら、実際の倍率は 1 + 0.6 x 5 = 4倍)
普通の端末ではあまり意味のない倍率になりますが、やってみるとそれなりにシュールです。

Jkscalesc

2)画面フィットボタンを追加

視聴画面で動画のサイズ(主に横幅)をワンプッシュで画面一杯にフィットさせる Stretch ボタンを付けました。

Fitlarger1
   
Fitlarger2

これは拡大だけではなく、縮小の方向でも働きます。
実はTvRemoteFiles v.1.83で既に、「視聴開始時に動画エリアがはみ出していたら画面の横幅に合わせる」という機能は付けていたのですが、Android端末では動画再生中に端末の縦横を変えるたびに意図しない領域全体の拡大・縮小が起き、図のように文字やボタンが極端に小さくなる状態に陥りがちです。

Fitsmaller1

そういう場合ボタンサイズが適切な大きさになるまでピンチアウトで拡大してから、このボタンを押せば、

Fitsmaller2
   
Fitsmaller3

全体が適切なサイズに調整されます。

なお、この際、実況位置が画面スクロールに追従できずボタンエリアに掛かってしまい、ボタンが押せなくなることがあります。
その場合は一旦ピンチインして「実況OFF」ボタンを押してから同じ操作をし、最後に実況表示を再びONにすれば良いです。

3)ストリーム開始ボタンを大き目に

ずっと気になっていながら後回しにしてきた修正として、図のようなポップアップ画面での「視聴」「再生」のようなボタンを大きくして、また必ずボタン位置が右端になるようにしました。

Largestartbutton

特にモバイル環境だと開始ボタンが他のボタンに紛れて判りにくく、また間違って枠の外を押してしまってポップアップを消してしまう、というミスが起き易いレイアウトでしたので、ちょっとした改善です。
また同時に、iPhoneの小さな画面だと、ドロップダウンを選択したタイミングで画面が勝手に拡大され、この「開始」ボタンが下に切れてしまって押せなくなる、という事があったので、レイアウトを少し調整しました。

4)Tips 同じAndroid端末内でリモコン操作

これは修正ではないのですが、最近の私のAndroid端末での使い方の例のご紹介です。
PCでの視聴であれば、同じ端末内でもリモコン制御をON

Trvrc2 (トップ画面デバイスタブ)

にして、視聴時の操作を同じPC内でリモコン機能からおこなうと結構便利です。
というのは、視聴画面ではボタンを沢山付けすぎると逆に操作性が落ちるためある程度ボタン数を絞っているため、トップ画面・管理タブでは設定できても、リモコンでなければリアルタイムには触れない項目がいくつかあります。(例えば実況表示エリアや文字サイズの変更など)これがモバイルでも出来ると便利ですね。

また、2)にあるような機能で動画の全画面表示をおこなうと、操作のために画面を拡大縮小したりスクロールさせるのも結構面倒です。
通常のAndroidアプリであれば動画制御周りもフロントアプリが奪い取ってしまうため、動画を動かしながら別のアプリを(あるいは同じブラウザの別のタブも)前面で動かす、というのは不可能で、動画が止まってしまいます。

しかしセカンドブラウザ というのを入れてそちらでも予めTvRemoteViewer_VBにアクセスした上で、視聴中のブラウザ用のリモコンを立ち上げておくと、図のように

2ndbr1
   
2ndbr2

必要に応じて横からリモコンを引き出して操作し、用が済んだらまたしまう、という操作が可能になり、その間動画や実況が止まることもありません。

残念ながら視聴画面から直接セカンドブラウザを起動することはできず、メインのブラウザとは別に立ち上げてリモコン画面にしておく必要がありますが、それでも結構便利ですので、ご参考に。

余談の雑記(2017/3/3)

暫くブログ更新が滞っていたので、ここで小ネタをいくつか。

その1)Chrome/OperaでTVRemoteViewer_VBの表示が少し大味になったと思った場合

自分も最近気が付いたのですが、Win7のPCで常用しているChromeブラウザで、何だか最近TVremoteViewer_VBのボタンやタブの表示が今までより大きくなり、

Chromefontadj1

本来1行で表示できていたはずのトップページ・番組タブのボタン群が2行になっていることに気が付きました。
また一部の表示ではselectボックスとボタンの大きさが想定より少しアンバランスになっています。

ちょっと調べてみると、これは昨年末に落ちてきたChrome56で、標準フォントがMS Pゴシックからメイリオに変更になったのが原因なのが判りました。
この現象は同じエンジンを使っているOperaブラウザでも起きます。

私自身は特にブラウザのフォントに拘りがあるわけでもないので、デフォルトフォントを以下の場所でMS Pゴシックに戻しました。

Chromefontadj2

またOperaでも以下の場所で同じように戻すことができます。

Chromefontadj2opera

以上で無事、元の表示バランスに戻りました。

Chromefontadj3

Chromeを標準のブラウザとして常用されている方にはそれなりにメイリオの方がいい、という方もおられるかもしれませんので無理にとは申しませんが、個人的にはこちらの方がお勧めです。
(なによりAndoriodでもiOSでもChromeのフォントはこれほど自己主張する事はないので、ちょっとこの変更は拙速なのではないかと。MSとの関係で何かあったのか知りませんが、メイリオの選択はグーグルジャパンの判断でしょうね。)

その2)ファイル/プレイリスト画面の改良

これも小ネタといえば小ネタなのですが、TVRemoteViewer_VB 1.82で、一部モバイル端末で特にプレイリスト画面の使い勝手が落ちる点に対策をおこないました。
まあ性格的に自分が気に入ればどういう感想があろうが気にしない性格なのですが、自分でもAndroidタブを常用するようになって初めて、「Android Dolphinブラウザでのファイル選択操作が非実用的」という事に気が付いた次第です。

具体的にはファイルリスト画面では、全体の画面が固定されている事を前提にファイルリストの部分を指/マウスでドラッグしてリストを上下左右にスクロールできるようになっていますが、Android系ブラウザで特にDolphin Browserでは、画面全体が簡単にドラッグされてしまい、リストがなかなかスクロールできないばかりか、注意深くリストだけをドラッグしてめくっていっても、何かの拍子に先頭のリストに戻ってしまいます。

そこでそういうブラウザでのリストめくりが簡単になるように、リストの右側に少し大きめのスクロールボタンを付けました。

Fileselectnt

これで上下にリストをめくっていくことができます。

またプレイリスト操作時の画面バランス調整として、画面が一定以下の狭さの場合、無理にプレイリストとファイルリストを小さくして上下1画面で表示させようとせず、プレイリスト/ファイルリストがそれぞれほぼ1画面に収まる大きさで表示し、指でスクロールさせて双方に移動する形にしました。以上で個人的には(大規模な改修なしで)それなりに使えています。

その3)動画エリアの右上に「動画エリア縮小」ボタンを付けた。

現状動画エリアを画面いっぱいに広げるための「最大化」ボタンはありますが

Fullsc1_2

視聴中にいろいろな操作を行ないたい時には、動画エリアを縮小ししたいと思います。
リモコン操作モードでなくてもこの「画面縮小」をワンタッチでおこなえるように、Ver2.00からは、動画画面上に「画面縮小」ボタンを付けました。
ボタンの場所は動画エリアの左上端で、

Shrink1_2

画面起動直後や画面最大化時には十秒間ほどこのように表示されますが、通常は透明です。透明でも常に有効ですので、全画面状態から何か操作したい時は、画面の左上隅をタッチ(クリック)すれば良いです。

その4)ファイルリストを一気に読み込めるようにした。

ファイル選択画面では、画面の一番下に「残り全てのリストを読み込む」というボタンを追加いたしました。

Fileall

沢山の録画ファイルを抱えている環境では、少し遅めの端末でこの画面にアクセスするとなかなか昔のファイルに到達できませんでしたが、このボタンを押すことで全ファイルリストを一気に取得できます。
ただし、遅い端末では読み込みが完了するまでにそれなりの時間がかかり、その間画面が固まった状態になるのはご了解の上で使用してください。といっても非現実的なほどの待ち時間になることは殆ど無く、1~2分で読み込みできるとは思いますが。

その5)その他の小ネタ

TVRemoteFiles Ver1.82は久しぶりのリリースアップだけあって、いろいろ気になっていた点を改修してあります。具体的には

-視聴画面でリモコン機能が、現在のステータスを見失って「デバイス非接続」となってしまって操作ができなくなる現象がよく起きていたのを改修しました。
改修後も一時的に同じ現象が起きることはありますが、しばらくすれば回復して操作可能な状態に戻ります。

-プレイリストで再生ファイルの切替え時に、次のファイルの最初からではなく途中から再生してしまうことがあったのをFIXしました。

-目覚まし機能がトップ画面と待機画面でのみ有効位だったのを、視聴画面を除くほぼすべての画面で効くようにしました。まあうっかり番組表やファイルリストを表示させたまま放っといたら目覚ましにならなかった、という場合でも目覚まし有効になる、という程度の効果ですが、実はこの目覚まし機能は今回のショートカット機能と多くのルーチンを共有しているので、それにともなった機能付加です。

- 個人的にはしばらくDVD機能関連でVLCの変な癖に悩まされ続けたので、(特にChtomecastではVLCのHLSは全く使えないことが判明したりしたこともあり)VLCのTVRemoteViewer_VBでの利用は非推奨なのですが、ただ調べていくうちにスクリプト側のちょっとした実装不足で、VLCのファイル再生でのエンコード終了が検知できていないことが判りましたので、そこの改修をおこないました。

TVRemoteFiles V1.82では以上のような改修をおこなっています。

« QSV/NVEnc + TVRemoteViewer_VBで軽量PCでもロケフリ フルHDでも気軽にストリーミング | トップページ

デジタルTV、TS抜きチューナー」カテゴリの記事

コメント

ISO再生について本日再度確認しました。
状況としてはISOファイルは「配信されていません」
と出てしまい再生できないのは同じなのですが
週初にログ出力がないと書いたのは誤りでした。
すいません。
以下のログが出力されていました。


ISO再生スタート

2016/10/22 19:46:21 /StartTv.htmlへのリクエストがありました。(text/html)
2016/10/22 19:46:21 UDPポート=42425を取得しました
2016/10/22 19:46:21 HLS_option_ffmpeg_file.txt内に[320x180]に該当するHLSオプションが見つかりました。
2016/10/22 19:46:22 E:XXXXXXXXXXXXXX.ISOの開始時間をTOTと作成日時から取得しました
2016/10/22 19:46:23 /ViewTV1.htmlへのリクエストがありました。(text/html)
2016/10/22 19:46:23 /projekktor/jquery-1.9.1.min.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:23 /jslib/json2.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:23 /jslib/ecl.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:23 /jslib/hiPageMemoryCookie.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:24 /ViewTV1.htmlへのリクエストがありました。(text/html)
2016/10/22 19:46:24 /projekktor/jquery-1.9.1.min.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:24 /jslib/json2.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:24 /jslib/ecl.jsへのリクエストがありました。(text/javascript)
2016/10/22 19:46:24 /jslib/hiPageMemoryCookie.jsへのリクエストがありました。(text/javascript)

~~~~~~~~~~~~以下ひたすら繰り返しのため省略~~~~~~~~~~~

ISO再生ストップ

2016/10/22 19:47:06 /WI_STOP_STREAM.htmlへのリクエストがありました。(text/html)
2016/10/22 19:47:06 /WI_STOP_STREAM.htmlへのリクエストがありました。(text/html)
2016/10/22 19:47:06 配信中のストリームlistが存在しません
2016/10/22 19:47:06 現在稼働中のNumber:
2016/10/22 19:47:06 /index.htmlへのリクエストがありました。(text/html)

となっていました。
お手数ではありますが、確認すべき箇所または
改善策をご教授願えないでしょうか?

【サーバー】
OS    :windows7 pro sp1 64bit
使用ソフト:ffmpeg-3.1.4-win32-static.zip
      RecTask_0.1.4.edit-20120818.zip
      TvRemoteFiles v1.81    ←変更
      TvRemoteViewer_VB v2.35  ←変更

Vladiさん、早速のお返事ありがとうございます。

本日、1.81にupしました。
おかげさまでtsファイルと放送のストリーム機能が復帰しました。
ただ、残念ながらISOファイルは「配信されていません」
と出てしまい再生できませんでした。

※TvRemoteViewer_VBのISOファイル再生時はログ出力なし。
 確認のためISOファイルをvlc.exeで開いたところ
 正常に動作しているようなのでISOのデータは問題ないようです。

pyonkichiさん、すみません、今朝のver1.80は時間切れでテストも記事の一部の追加も中断したまま仕事に出かけていたのですが、掲示板に上げた通り
http://echo.2ch.net/test/read.cgi/avi/1474984113/164
物凄い基本的なバグがあり、おっしゃる通りうまく動かなかったと思います。恐れ入りますが、1.81へのupをお願いいたします。

すいません、うまく動かないため質問させてください。
以前、
「iPhone/iPad/Android/モバイルPC等による
 ロケフリ・テレビ+動画ストリーミングの視聴環境を作る」
の記事を参考にさせていただき環境を作成しました。
そちらのほうはおかげさまでうまくいったのですが
本日、こちらの記事を参考にISO再生を行えるよう設定しようとしたところ
TVRemoteFiles v1.80のバージョンアップ後の動作がうまくいきませんでした。

具体的にはクライアントで以下のような動作をします。

windows クライアント:再生すると動画再生画面が黒くなり再生されない。
    ウィンドウ右下のファイル情報が表示されない。
    しばらくするとトップページに戻ってしまう。

iphone クライアント:再生はできるのだが2分ぐらいすると再生が中断してしまい
   トップページに戻ってしまう。
   ウィンドウ右下のファイル情報が表示されない

環境は以下の通りです。

【サーバー】
OS    :windows7 pro sp1
使用ソフト:ffmpeg-3.1.4-win32-static.zip
      RecTask_0.1.4.edit-20120818.zip
      TvRemoteFiles v1.79
      TvRemoteViewer_VB v2.32

【windows クライアント】
OS    :windows7 pro sp1
ブラウザー:chrome

【iphone クライアント】
OS    :IOS 10.0.2
ブラウザー:safari

解決法があればご教授いただけないでしょうか?

※windows10でも試しましたが動作はiphoneと同じでした。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/570024/64359981

この記事へのトラックバック一覧です: TvRemoteViewer_VB 新機能について。(ショートカット機能、hls.js、黒画面除去、DVD-ISO再生):

« QSV/NVEnc + TVRemoteViewer_VBで軽量PCでもロケフリ フルHDでも気軽にストリーミング | トップページ

フォト
無料ブログはココログ
2017年5月
  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 31      

ウェブページ