« Amazon Fire TV / Fireタブレットを、TvRemoteViewer_VBで活用する | トップページ | TvRemoteViewer_VB 新機能について。(ショートカット機能、hls.js、黒画面除去、DVD-ISO再生) »

2016年3月 6日 (日)

QSV/NVEnc/AMD VCE + TVRemoteViewer_VBで軽量PCでもロケフリ フルHDでも気軽にストリーミング

題名の通りです。ご関係者各位のご尽力によってこういった汎用のH/Wエンコーダが活用出来るようになりました。

2

従来TVRemoteViewer_VBを使うにはそこそこのCPUパワーを持ったPCが必要で、そこがネックになっていたケースも多かったと思いますが、CPUの負荷が軽くなるどころではなくCPU負荷が殆どないレベルでQSV/NVEnc/AMD VCEを活用しますので、従来動画配信サーバに使うことがあまり想像できなかったNUCやAtomベースのスティックPCですら、楽に映像配信サーバとして活用できるようになります。
(2018/12月追記:AMD VCEのサポートを追加しましたので、AMD製APUや勿論Radeonでも軽量高画質な映像配信ができるようになりました。)

使うための敷居がぐっと下がることになりますので、今までPCを持ってすらいなかった方でも安価なWindowsスティックやタブレットを手に入れれば良いということで利用し易くなるのではないでしょうか?

また従来、フルHD(1920x1080)での配信は高性能PCにとっても荷が重かったのですが、H/Wエンコード機能を使えば楽にHD画質を複数ストリームで常時配信できるようになります。
更にQSVではSkylake世代以降、NVEncでは第2世代Maxwell以降のH/W環境であれば、4K配信も利用できます。(VCEはどこからか確認できていませんが、少なくともPolaris以降ならOK。)

但しHD解像度以上の場合、再生環境にもH/W支援は必要です。通常のiOS/Mac/Android環境であればH/W支援が効くのであまり問題はありません(むしろモバイル環境でそれ程の解像度は意味が無かったり回線速度の方が問題になります)が、PCでEdge以外の環境ではちょっと前まではFlashによるエミュレーションで動いていましたので、HD解像度は荷が重い状況がありました。
が、それもhls.jsによって解決し、現在のバージョンでは大抵のPCでHD、4K視聴とも軽くこなせるようになりました。さすがにスティックやWinタブだとWin10/Edgeがないと苦しいですが、それでもHLSはH.264がベースなだけあってハードウェア支援も効きが良く、TVTestでmpeg2デコーダで映すより遥かに負荷の軽い視聴環境が得られます。

1.QSVの利用法
0) QSVを利用可能なシステム環境かどうかチェック。
1) QSVEncのダウンロードと配置
2) TVRemoteViewer_VB.iniの編集
3) 使い方
4) 使用上の注意点

2.NVEncの利用法
 NVEncのダウンロードと配置

3.AMD VCEの利用法
 VCEEncのダウンロードと配置
 VCEEncの注意点

さて、以下はQSVを使ってフルHDで4ストリームを同時配信している例です。

Qsvenc2

軽くOCしているとはいえ今や年代物のSandyBridgeベースのマシンですが、CPU負荷は殆ど無視できるレベルで、(4ストリームともなると内蔵GPUをかなり目一杯使うとはいえ)インテルHD3000内蔵グラフィクスを活用して、フルHDの映像x4を並行して配信しています。
また内蔵グラフィクスはこれだけ使ってもCPU温度はあまり上がらないのも判ります。

一方こちらは従来型の、H/W支援のない状態でのストリーミングの例です。

Swenc

フルHDでのストリーミングはS/W処理だけだと非常に重く、1ストリームの配信だけで一杯一杯になるのが判ります。(CPUクーラーもかなり煩くなりますね。)
この比較だけでもQSVの効果が判ると思います。

もっと新しいCPUであればミッドレンジ以下であっても内蔵グラフィクス能力はこれより上ですので、複数ストリームの高画質配信も難なくこなします。また同じOSV/NVEncでも、新しい世代のH/Wほど画質も向上します。

QSV/NVEncは従来、「画質はそれほど良くないけどリモートやモバイルで低画質で観るには役に立つ」という程度の立ち位置だったと思いますが、そういう印象は対応ソフトが簡易なものばかりだったのも一因だと思います。最近になってサポートされた高機能なソフトではカスタマイズの幅も広く、(x264の画質には及ばないもののそこらのレコーダの画質を上回る程度に)高画質なトランスコードを、ローエンドCPUにも殆ど負荷をかけない形で処理できます。汎用のCPU/GPU+ソフト的手段がまたもや専用品を上回ることになるわけで、家電自慢の専用トランスコーダという発想がまた1つ過去の遺物になっていきますね。

モバイル端末での視聴であればそもそもHD画質は必要ないのですが、現在のTVRemoteViewer_VBは低ビットレートのロケフリ用途だけではなく、家中のテレビ/モニタを汎用性の高い映像端末にする使い道に広がっていますので、無線LANでも無理のないビットレートで高画質映像を屋内配信するのに重宝すると思います。

1.QSVの利用法

TVRemoteViewer_VB、TVRemoteFilesはいずれも最新版(少なくともそれぞれv1.99以降およびver1.75以降。)にしてください。
その上でTVRemoteViewer_VBでQSVを利用するには、rigaya氏が公開しているフリーウェアのQSVEncを使います。

もともとTVRemoteViewer_VBがHLS生成に使っているffmpegにもQSVサポートはあるのですが、現状では出来が良くなく効果が薄いため、その性能向上を待っていた状態でした。
ところが今年に入ってQSVEncがHLSのリアルタイム生成をサポートし、またrigaya氏がTVRemoteViewer_VBを意識したチューニングやガイドをおこなってくださったため、短期間で必要十分な機能が実現できました。rigaya氏には本当に感謝です。

0) QSVを利用可能なシステム環境かどうかチェック。

QSVEncはQSVが利用できない環境では起動できず、TVRemoteviewerではストリームを開始出来ません
インテルCPUでQSVをサポートしたHDグラフィックを内蔵していることがQSVを利用できる第一の条件です。あるいはこれから購入するCPUがQSVをサポートしているか判らない場合はインテルのページでチェックしてみてください。

またよくある話ですが、QSVをサポートしているPCであっても、Windows導入/アップグレード直後、あるいはPC購入直後に動いているHDグラフィックドライバではQSVは動かないことが多いです。利用前に必ずインテルのサポートページから最新版のグラフィックス・ドライバを導入しておいてください。
運用中もQSVEncのバージョンアップに合わせてインテルドライバのアップデートが必要な場合があります。とりあえず使えているけどかなり画像が乱れる、というような場合インテルドライバのアップデートで解消できる場合が多いので、定期的なアップデートをお勧めします。(Windowsアップデートが頻繁なのでシステムが常に最新状態にあると錯覚しがちですが、Windowsアップデートではグラフィックドライバの更新の面倒は見てくれず、また時々Microsoftが提供するものは最新のものではありません。必ずインテルのページに行ってアップデートしてください。)

さて、QSVをサポートしたCPUであることに加えてたまに問題になる点として、お使いのPCのマザーボードがインテルHDグラフィックを利用しているかどうかの話もあります。利用せずに画面表示はNVIDIAやAMDのGPU任せで内蔵グラフィックを殺した状態にしているノートPC等は要注意ですので、お持ちのPCの製品情報をよく調べて、QSV利用可能かどうかチェックしてください。

そういう話を含めてQSVの機能を使うにはいくつか条件がある場合があります。
http://vladi.cocolog-nifty.com/blog/2011/05/plex-px-w3u2-0d.html#HBQSV

今回の場合利用するプログラムはhandbrakeCLI..exeではなくQSVEncC.exe(またはQSVEncC64.exe)ですので、登録が必要な場合はそちらを登録することになりますが、実際は私の環境では2台中1台がWindows7でプライマリモニターもGeforceに繋がっているにも関わらず、Virtu登録は不要でした。

ご利用の環境でQSVが使える状態になっているかどうかは、少し下にあるQSVEncに付属しているツールを使って簡単にチェックできます。

具体的にはQSVEncのフォルダにある「QSVが利用可能か確認 [ダブルクリック].bat」

Qsvencck_2

を実行すれば、しばらくしてブラウザ表示でチェック結果が返ってきます。

Qsvencck2_2

「QSVが使用できます。」 と返ってくればQSVEncが使える状態になっています。

ちなみにこちらは手元にあるスティックPCで実行してみたものです。

Qsvencck3

Atom Z8350でも、インテルは明確には謳っていませんがh.264QSVは普通にサポートしているので、TVRemoteViewerの配信サーバとして使えることが判ります。

QSVが使えるはずの構成なのに「使用できます」と表示されない場合は、インテルドライバのアップデートなど、環境を見直してみてください。

1) QSVEncのダウンロードと配置

QSVEncのReadmeによると、動作に必要なランタイムは以下の通りになりますので、先に導入しておいてください。

Visual Studio 2015 の Visual C++ 再頒布可能パッケージ
http://www.microsoft.com/ja-jp/download/details.aspx?id=48145
.NET Framework 4.x

但し.NET Framework 4.xはTVRemoteViewer_VBの前提にもなっているので、導入済みの筈ですね。

次に、OSVEncの実行用フォルダを適切な場所に作成してください。(以降は\QSVEncフォルダとします。)
QSVEncは2.38以降のできるだけ最新のバージョンを使ってください。2.38でHLS起動時の応答時間や確実性もffmpegと遜色のないほどに向上しましたし、現在のTVRemoteViewer_VBでは2.38で追加されたパラメータを使っていますので、それより前のバージョンをお使いの方も最新版にアップデートしてください。

QSVEncは現在OneDrive(またはGoogleDrive)上で公開されています。rigayaさんのBlogで右のサイドメニューにある「QSVEnc + QSVEncC」(またはそのミラー)をクリックすればOneDrive(ミラーはGoogleDrive)のフォルダが開きますので、QSVEnc_x.xx_7zip というアイコンを右クリックし、プルダウンで「ダウンロード」を選択して適切な場所に保存してください。保存が完了したら7z等を使って解凍し、中身をQSVEncの実行用フォルダにコピーしてください。

中身は以下のようなファイル構成になっています。

Qsvencc1

QSVEncはAviUtlを使って対話的に実行する事もでき、その場合setupプログラムの実行が必要ですが、ここではやらなくても構いません。TvRemoteViewer_VBはここの \QSVEncCフォルダ以下にあるバッチ用プログラムのみをそのまま使います。
\QSVEncCフォルダの下にはx86,x64の2つのフォルダがあり、それぞれ32bit版、64bit版のWindowsに対応します。

64bit版Windowsで32bit版QSVEncCを使ってもかまいません(他のソフトと違ってあまり大きな差はありませんが、現在64bit版のほうかいくらか速くなるかも、ということです。)が、32bit版Windowsで64bit版QSVEncC64を指定しないよう、ご注意ください。

2) TVRemoteViewer_VB.iniの編集

QSVEncを利用する場合にTVRemoteViewer_VBの設定画面は一切弄る必要はありません。
QSV対応のテストをしていた時期にはここを弄ることでffmepgとQSVEncCを切り替える方法をガイドしていた事がありましたが最終的にその方法はほぼ使わなくなっていますので、むしろQSV対応でここを弄らないよう注意してください。

現在はTVRemoteViewer_VB.ini にQSVEncC.exe (または64bit版の場合QSVEncC64.exe)の絶対パスを指定するだけでQSV対応が完了します。

またffmpegは本来のHLS生成には使いませんが、補助的な用途としてサムネイルの作成に使います。したがってffmpeg.exeのフルパスもTVRemoteViewer_VB.iniに指定してください。
以上の指定場所は以下の図の通りです。(設定場所はiniの一番上のほうにありますので、判り易いと思います。)

Qsvenccsetting0

以上を設定して保存したら、TVRemoteViewer_VBを再起動してください。これでQSV対応は完了です。

3) 使い方

TVRemoteViewer_VB.iniにきちんと設定がされていれば、動画再生時に以下のように、エンコーダを選ぶための新しい欄が追加されている筈です。(図にはVLCの選択肢もありますがとりあえず気にしないでください。)
ここで「標準」を選べば今まで通りffmpegを使ったS/Wエンコード、「QSV」を選べばQSVEnc使ったH/Wエンコードが起動します。

番組表からの起動
Qsvprogram

ファイル再生
Qsvfile

プレイリスト再生
Qsvpl

ライブ視聴中のチャンネル切替え/属性変更
Qsvlivechg

ファイル/プレイリスト再生中の属性変更/再ロード
Qsvfilechg

リモコンによる属性変更
Qsvremochg

なお、QSV対応をおこなった初回の視聴開始時に、TVRemoteViewer_VBサーバ側にQSVEncCによる通信を許可するかどうかのファイアウォールのメッセージが表示されます。 (これはNVEnc、VCEEncでも同じです。)

Qsvenc1_2

これには速やかに「アクセスを許可する」と答えてください。見逃すと視聴が開始できません。

4) 使用上の注意点

QSVEncはffmepgとは全く違うプログラムであるため、HLS配信そのものはほぼ同じような使い勝手になりますが、ffmpegの機能を使って実現していた以下の機能は現状使えません。

①  ファイル再生での可変速(倍速)再生がNG

なお、QSVEnc最新版では実況焼き込みは出来るようになりました。
また以下の点でややffmpegと違う動作をします。

② 映像と音がずれる事があるかも。ずれ方は

 (A) ライブ、ファイル再生とも、コンマ何秒~数秒程度ずっとずれていることがある。、これはストリーム再起動すると変わるので、何度か再起動して適正なタイミングに調整することが可能。
 (B)WOWOW、スターチャンネルや一部映画チャンネルなどで時間経過とともにずれが大きくなっていく

という2種類があります。
(A) (B)ともrigaya氏とユーザーの努力でだいぶ出なくなっています。ただもし気になるほどの音ずれがある場合は、ストリームを再起動してみてください。

③ 途中で再生が止まるケース、画質が崩れすケース

長い時間流しっぱなしにしていると映像やCMの切れ目で映像が止まったままになる事があります。そういうときはストリームを再起動してください。
mpeg2-tsの何かの切れ目でエンコードが停止してしまうと考えられ、従来のffmpegによるエンコでもたまに起きていた現象です。QSVEncではffmpegに比べてやや頻度が高かったのですが、これもQSVEncが改善を進めたことによって、現在は殆ど差がないレベルになりました。

④ うまく起動できないケース

QSVEncはバージョンアップを重ねるうちに非常に安定した環境になっていますので、ffmpegで再生できてQSVEncで再生できないケースは殆どなくなっていると思われます。
ただしDVD-ISOで字幕付きの場合や、先頭からの再生ではうまく起動できないケースがあります。(これはNVEnc/VCEでも同じです。)そういう場合は字幕なしにして、先頭から1分程度のオフセットを付けて再起動してみてください。
(これはエンコーダの仕様から来る止むを得ない制約です。DVD再生の場合は元がSD解像度ですので、ソフトエンコの方が使い勝手が良いかもしれません)。

2.NVEncの利用法

NVEncについてもrigaya氏が公開しているフリーウェアNVEncCを使ってQSVEncとぼ同じ手順で、ハードウェアエンコードが使えるようになりました。

Nv2

NVEncを利用するにはKepler以降のGeFoeceが必要になりますが、Gefoeceの型番とコア世代は入り組んでいるので、よく判らない時は英語のまとめ記事からリンクされているWikiなどでご確認してください。安いものでは4千円台のGT710でも使えますし、QSVがどのCPUモデルでも性能に大きな差がない(世代による機能の差はある)のに比べると、高級なモデルほど効きも良くなります。
同時エンコードできるストリームの数は2個です。(SLI構成でどうなるかは未確認)。上限を越える同時エンコードをおこないたい場合はソフトエンコード(や使える場合はQSV)と併用すると良いと思います。

ちなみにQSV、NVEncとくればAMDのVCEもぜひ、という声もあると思いますが、遅ればせながら対応しました。(このNVEncの次の項番で説明いたします。)

NVEncのダウンロードと配置

QSVEncと同じく、動作に必要なランタイム等を確認してください。現状以下のランタイムが必要です。

Visual Studio 2015 の Visual C++ 再頒布可能パッケージ (x86)
https://www.microsoft.com/ja-jp/download/details.aspx?id=48145

.Net Framework 4.x

次に、NVEncの実行用フォルダを適切な場所に作成してください。(以降は\NVEncフォルダとします。)

NVEncも現在OneDrive(またはGoogleDrive)上で公開されています。rigayaさんのBlogで右のサイドメニューにある「NVEnc + NVEncC」(またはそのミラー)をクリックすればOneDrive(ミラーはGoogleDrive)のフォルダが開きますので、NVEnc本体を保存した上で解凍し、中身を\NVEncの実行用フォルダにコピーしてください。

TvRemoteViewer_VBで使うのはこの中の\NVEncC\x86 (または\NVEncC\x64)フォルダ下にあるNVEncC.exe (またはNVEncC64.exe)です。
その場所をTvRemoteViewer_VB.ini の以下の場所で指定してください。

Nv1

以上でTvRemoteViewer_VBを再起動すれば、NVEncがエンコーダとして選択できるようになる筈です。

なおNVEncの利用時もQSVと同様、NVIDIAのページからご利用のビデオカードに合わせた最新のグラフィックドライバをダウンロードして、アップデートしておくことをお勧めします。
これは最初だけでなく、NVEncをアップデートすればグラフィックドライバも最新版にしないと動かない場合がありますので、定期的に最新版にしておいてください。

NVEncが動作するかどうかは、NVEncCのフォルダにあるツールで確認できます。

Nvencc_2

これはコマンドラインツールなので、コマンドプロンプトを開いてNVEncCフォルダに移動し、「NVEncC_feature_test.bat」を実行してみてください。
動作する環境であれば何も表示されず、動作しない環境の場合エラーが表示されます。その場合はドライバのアップデート等、環境を見直してみてください。

その他の使い方の注意点や特性はQSVと殆ど変らない筈ですので、QSVのパートをご参照ください。初回のストリーム起動時にファイアーウォールのダイアログが出ますので、「アクセスを許可する」の指定を必ずおこなってください。。
Qsvenc1_2

私自身も最近ようやくNVEncを使える環境(i7-7700K + GTX1050)を手に入れ使っていますが、QSVEncと同じく殆どCPUに負荷をかけない状態でフルHDを含む高画質の配信が可能です。
GPU-Zで見ると、QSVと同じくGPU-Loadも上がりますが、むしろNVIDIAの場合に表示されるVideo Engine Loadが上がり、GPUエンコードが働いていることが判ります。

Gpuz_nv_2

尚、最近になってようやく手元の環境を作ったこともあり、NVEncでの動作も改めて検証しているところですが、画質、動作の安定性とも十分満足できるレベルだと思います。
また画質とは別の話になりますがビットレートの管理がしっかりしていて、たとえば1Mbpsのビットレートを指定すると何がなんでもそのビットレートを守るような動作をするので、ゲーム実況での利用を想定しているという噂通り、まさに配信向けの作りです。
(実はffmpegなど大半のエンコードソフトの「ビットレート維持モード」は努力目標でしかなく、次第に指定値に近づくように画質を自動調整しますが短時間では指定ビットレートを超えることがあり、遅い回線で動画が止まりやすい原因になっています。)
もちろんこのメリットは動きの速いシーンでのブロックノイズが出やすいデメリットを伴うことになるのですが、特にあまり速度の上げられないモバイル環境をお使いの方は重宝する特性だと思います。

ただ余談になりますが、NVIDIAのGPGPUは過去にエンコーダとしての能力に期待して(ろくにゲームもしないのに)ハイエンドのGeForceを大量に揃えたことがあったのですが(⇒参考記事)、当時はNVIDIAは演算専用のTeslaと一般向けグラボのGeForceを明確に差別化しており、同じKeplerチップを使っているにも関わらずいつまで待ってもGeForce用エンコードエンジンは提供されないままだった、という苦い経験がありました。まあ一部メディアの期待を煽る記事をよく吟味もせず信用してしまった自分の責任なのですが。
そういう経緯もあって、何年も経ってからNVEncが出てきてからも「過去の(自分の持っている)Kepler世代は放置して新製品のみ対応というのは販促の見せ球でしかない」と、良い印象を持っていなかったのも事実です。

しかし実際に利用してみて十分に使えることが確認できてからは印象も変わりました。NVIDIAとしてもインテルのQSVへの対抗上、この機能に関して本気になったんだろうと思います。
まあQSV自体も当初提灯記事が煽っていたような形では全く使い物にならず、今のように当たり前に使えるようになるまで迂路曲折があったのですが、結局利用者に望ましい形に収まるのは良いことですね。
今の時代どのベンダを信用する/しないというのではなく、そのベンダの立ち位置上力を入れざるをえない所から出てくる「良い製品」を、自分たちにとって役に立つと判断できるなら経緯を問わず支持して活用し、逆にそうでないものは容赦なく批判する、という是々非々の姿勢が大事で、それを楽しむくらいが本来当たり前なんだろうと思います。(国内マスメディアでそういう姿勢のものが皆無、というのが異常ですね。)

 

3.AMD VCEの利用法

AMD VCEについてもrigaya氏が公開しているフリーウェアVCEEncCを使ってQSVEnc/NVEncとぼ同じ手順で、ハードウェアエンコードが使えるようになりました。(2018/12)

Vceenc2

VCEEncを利用するにはSouthern Islands(HD7000番台)以降のRadeonまたはAPU組み込みのAMDグラフィックスが必要になりますが、お使いのモデルがサポートしているかどうか判らない時は、ちょっと下にあるVCEEncCを使ったコマンドラインで確認してみてください。ただNVEncが最近ローエンドGPUからは意図的に省かれているので対応モデルの確認が必要なのに対し、VCEはCPU(APU)内蔵タイプやローエンドGPUであってもくまなくサポートされている筈なので(例外の有無は未確認)、ここ数年内のモデルであれば問題なく使えると思います。
同時エンコードできるストリームの数は恐らく2個までです。(手元で確認した限り)

VCEEncのダウンロードと配置

QSVEnc/NVEncと同じく、動作に必要なランタイム等を確認してください。現状特にドキュメントには書いてありませんが、他と類推すれば以下は必要かと思います。

Visual Studio 2015 の Visual C++ 再頒布可能パッケージ (x86)
https://www.microsoft.com/ja-jp/download/details.aspx?id=48145

.Net Framework 4.x

次に、VCEEncの実行用フォルダを適切な場所に作成してください。

VCEEncも現在OneDrive(またはGoogleDrive)上で公開されています。rigayaさんのBlogで右のサイドメニューにある「VCEEnc + VCEEncC (ミラー)」をクリックすればOneDrive(ミラーはGoogleDrive)のフォルダが開きますので、VCEEnc本体を保存した上で解凍し、中身を\VCEEncの実行用フォルダにコピーしてください。
(中にあるインストーラはAviUtlで使うためのものですので、ここで動かす必要はありません。)

TvRemoteViewer_VBで使うのはこの中の\VCEEncC\x86 (または\VCEEncC\x64)フォルダ下にあるVCEncC.exe (またはVCEncC64.exe)です。
その場所をTvRemoteViewerに教えるためにTvRemoteViewer_VB.ini を直接編集(exepath_VCEEnc = で指定)しても良いのですが、現在のTvRemoteViewer_VBではダイアログで殆どのパラメータが設定できるので、今後は以下の方法がお勧めです。

Vceenc1_2

所定の場所にVCEEncC(64).exeへのフルパスを記入すると、欄が未決項目として黄色くなります。その状態で右上隅の「ini更新&適用」のボタンを押してください。それで更新内容はiniファイルに反映され、必要があれば再起動する旨のメッセージが表示されますので、指示に従ってください。
以上でTvRemoteViewer_VBを再起動すれば、VCEEncがエンコーダとして選択できるようになる筈です。
初回のストリーム起動時にファイアーウォールのダイアログが出ますので、「アクセスを許可する」の指定を必ずおこなってください。。
Qsvenc1_2

なおVCEEncの利用時もQSV、NVEncと同様、AMDのページからご利用のビデオカードに合わせた最新のグラフィックドライバをダウンロードして、アップデートしておくことをお勧めします。
これは最初だけでなく、VCEEncをアップデートすればグラフィックドライバも最新版にしないと動かない場合がありますので、定期的に最新版にしておいてください。

なおVCEEncが動作するシステムかどうかは、コマンドラインでVCEEncCをオプション  --check-hw を付けて実行すればわかります。

Vceavailable
VCE available と表示されていればOKです。

その他の使い方の注意点や特性はQSVと殆ど変らない筈ですので、QSVのパートをご参照ください。
以下はVCEで2本のフルHDストリームを配信している状態のスクショです。

Vceenc4

GPU LoadがばらけているのはVCEEncの特徴のようです。ただVCEはGPUコアではなくASICの回路で動いているそうなので、ここで出ている負荷がVCE処理の本体ではないと思います。(恐らく前処理/後処理をやっているGPUコアの負荷のみが表示されている。)
CPUの負荷が少しあるように見えますがこれはこの記事の最初のほうにあるQSVでのスクショとほぼ同じ傾向で、アイドル状態でもWindows10が"何か"やってるのが原因で、本質的ではありません。ほぼCPU負荷はなしのHD x2ストリーム配信が可能ということになります。
SW処理でフルHD配信をやると、1ストリームでこのCPUが100%あたりに張り付いてしまいますので、VCEもQSV/NVEncと同じく、この用途での効果は絶大という事になります。

VCEEncの注意点

VCE自体はQSVやNVEncと比べると発展途上で(というか永らく発展しないまま終わってしまうかと思っていたため真面目に対応するのが遅くなってしまいましたが、最近になってようやくアップデートが多くなり、進化しようとしている雰囲気は出てきましたので)、それへの期待も込めていますが、現状「ならでは」の注意点もいくつかあります。

1)例えば上記の同時エンコード可能な数を超えたストリームを起動しようとすると、QSVやNVEncのように起動に失敗するだけではなく、場合によってはVCE自体がハングして動作がおかしくなることがあります。(なかなか起動しない、絵が崩れるなど)
またそれ以外でも、間違ったパラメータを指定すると、それ以後どうやっても動画が開始できなくなる場合もあります。
その場合システムをクリーンアップするためにPCを再起動してください。他にもっとスマートな解決方法があるのかもしれませんが、今のところそれが一番確実です。
まあ「間違ったパラメータ」はよほど自分でオプションを弄らない限り起きないとは思いますので、許容並列エンコード数(2)をうっかり超えない事だけ気をつけていただければと思います。

2)動画起動時の画像の乱れは数秒待てば解消しますが、暫く待っても数秒おきに画像が崩れることがあります。(特に元が一度エンコードしたMP4ファイルの場合)。この原因は解像度変換に起因することが多いです。
その場合、当ソフトでは解像度 「1920x1080」 の指定が特別なモードになっており、実際は解像度変換をおこなわずソースの解像度を引き継いでエンコードする設定になっています。
どうも画像が安定しないという場合、帯域に制限がなければこの解像度指定に切り替えてみてください。それで画像も安定すると思います。

Vceenc3

3)インターレース解除を行わない。
これは行わないというより、VCEがサポートしていないのが原因です。
もしこれが原因で画面に多数のインターレース縞が見える時は、元の解像度を維持する(1920x1080)か、元の垂直解像度を2の倍数で割った解像度に変えてみてください。例えば元が1080i(1440x1080の地デジや1920x1080の衛星放送)なら、960x540や480x270の解像度なら縞が目立たないと思います。

4)Chromecast(およびAndroidTV)で動画が止まりやすい。
いつもそうなるのではなく元動画によって起きやすくなることがあります。QSV対応でも最初の頃この現象が起きましたが、何か音声処理の不具合が関係していると思います。

5)音ずれ
WOWOWなどRFFがらみの音声はQSVEnc対応の最初の頃にあったような一定割合で音がずれていく、という現象が起きます。また2か国語(サイマル)音声でも音ずれが起きることがあり、この辺も以前のQSVEncと同じです。
QSVEnc/NVEncでは --avsync forcecfr のようなパラメータで強制的に音をシンクロさせる方法が効いていたのですがVCEEncでは今のところ使えないあたり、まだ「発展途上」かと思いますので、今後に期待ですね。

« Amazon Fire TV / Fireタブレットを、TvRemoteViewer_VBで活用する | トップページ | TvRemoteViewer_VB 新機能について。(ショートカット機能、hls.js、黒画面除去、DVD-ISO再生) »

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

コメント

QSVを使用し .tsファイルを視聴しようとすると、不具合が発生してしまいます。

iOS、Androidでは再生から1~2分程すると、いきなり30秒程先に動画が先に進む、を繰り返します。
PCのChrome、Firefoxでは再生が止まり、手動で停止→再生をすると同じように動画が進んでしまいます。

ですが、Windows10のEdgeでは何故か問題なく再生できているので原因が特定できません。
また、リアルタイムの放送でも問題なく再生できます。
標準のffmepg使用時にはファイル再生、リアルタイム放送の両方とも問題ありません。
使用しているQSVEnc、TVRemoteViewer_VBは最新です。

私の設定が間違っているのかもしれませんが、同じような症状の方はいらっしゃらないでしょうか?

HLS設定のところに
; 例 exepath_ffmpeg = "D:\TvRemoteViewer\ffmpeg\bin\ffmpeg.exe"
;   exepath_QSVEnc = "D:\TvRemoteViewer\QSVEnc\bin\QSVEncC.exe"
とありますが「""」これがついているときちんとQSVなどが認識されずWebで選択できずはまってしまったので同じ悩みが起きないようにコメントをしました
誤 exepath_ffmpeg = "D:\TvRemoteViewer\ffmpeg\bin\ffmpeg.exe"
正 exepath_ffmpeg = D:\TvRemoteViewer\ffmpeg\bin\ffmpeg.exe

下の質問ですが、無事に自己解決したことを報告します。

失礼しました。

毎回このブログには、お世話になります。

TVRemoteViewer_VB.iniにQSVEncC.exeとffmpeg.exeのパスを記述しても、動画再生時エンコーダを選ぶための新しい欄が追加されません。パスも合っています。

なぜでしょうか。


コメントを書く

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

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

トラックバック

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

この記事へのトラックバック一覧です: QSV/NVEnc/AMD VCE + TVRemoteViewer_VBで軽量PCでもロケフリ フルHDでも気軽にストリーミング:

« Amazon Fire TV / Fireタブレットを、TvRemoteViewer_VBで活用する | トップページ | TvRemoteViewer_VB 新機能について。(ショートカット機能、hls.js、黒画面除去、DVD-ISO再生) »

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

ウェブページ