QSVでTVRemoteViewer_VB

はじめてTVRemoteViewer_VBを導入してみた。ブラウザで見ることができ、感激。素晴らしいです。

ただswエンコードをすると結構CPUを喰うので、QSVEncCを使ってエンコードさせてみる。



TVRemoteViewer_VBの1.88では、QSVEncCに対応してくださっていて(ありがとうございます)、HLSアプリにQSVEncCを指定することができる。指定するQSVEncCはx86でもx64でもよいのだけど、特にAtom系を使用する場合には、x64のほうが少し高速。(昔はx86のほうが速いこともあったけど…)

また、HLS_option.txtを以下のように書き換えた。

特に"-m hls_time:3"を順守させるため、"--gop-len 90"が必要となる。

[320x180]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 320x180 -o mystream.m3u8
[480x270]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 480x270 -o mystream.m3u8
[640x360]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 640x360 -o mystream.m3u8
[720x480]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 720x480 -o mystream.m3u8
[960x540]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 960x540 -o mystream.m3u8
[1280x720]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 1280x720 -o mystream.m3u8
[1920x1080]-i udp://127.0.0.1:%UDPPORT%?pkt_size=262144&fifo_size=1000000 -f hls -m hls_time:3 -m hls_list_size:17 -m hls_allow_cache:1 -m hls_segment_filename:mystream-%08d.ts --output-thread 0 -a 1 --avqsv --audio-copy -c h264 --vbr 5000 --gop-len 90 --tff --vpp-deinterlace normal --output-res 1920x1080 -o mystream.m3u8


非常に低いCPU使用率で利用することができる。

ただ、まだQSVEnc使用時に問題があって、

・NHKなど一部の局で音声処理に失敗する。
QSVEncのほうでもう少しいろいろ試す必要がある。

・おそらくsegmentの切り替わりでぷつぷつ切れる場合がある。
Win10のEdgeやAndroidのChromeでは全く問題なくきれいに再生できるが、WindowsのFirefoxやChromeではなぜかぷつぷつ…。

あまりストリーミング再生の仕組みがよくわかっていないので、これについては原因がなんなのかよくわからない。mux時になにかオプションをさらに指定する必要があるのだろうか?

m3u8ファイルやtsファイルはffmpeg使用時と大きな差はないように思うが…?
スポンサーサイト

コメントの投稿

非公開コメント

No title

rigayaさん、諸々しっかり対応いただき、感謝いたします。
-f hls オプションは指定しない方が良いようです。その他調整したパラメータを反映したものをアップいたしましたので、試してみてください。上記のぷつぷつ切れる現象もほぼ起きなくなり、PC環境の再生も良好になります。
http://peace.2ch.net/test/read.cgi/avi/1444062758/856
そちらにも書いてありますが、本来セグメント毎の時間は-m hls_time:3 で約3秒に指定してある(ffmpegの場合正確に3秒になるわけではなくばらつきますが)のですが、QSVEncCではこれを無視して強制的にほぼ10秒長になり、その関係で起動がちょっと遅いのが現状の僅かな弱点です。(hls再生開始ではセグメントが2~3個できるまで待ちになるため。)
とはいえ、それ以外はほぼ完璧に対応できつつあると思います。
たまにうまく再生スタートできない事がありますが、この辺はffmpegとのデコーダの違いに起因すると思いますので、とりあえず気にしないということで。とにかく有難うございました。

Re: No title

調整ありがとうございます。また、はじめて使ってみましたが、素晴らしいソフトをありがとうございます。

セグメントサイズについてですが、ごめんなさい、あとから追記したのですが、10秒長になるのは"--gop-len"の設定で解消できます。

セグメントサイズが10秒超になるのは、--gop-lenのデフォルトがfps×10なためです。"-m hls_time:3"とされているようですので、"--gop-len 90"とすればおおむね3秒となるかと思います。

あと、申し訳ないのですが、--vpp-deinterlaceの"it"はかなり精度が悪いので、"normal"のほうが無難かと思われます。

対応しました。

rigayaさん、早速有難うございます。その通りのオプションで確かに3秒セグメントにでき、起動速度も改善されましたので、アップし直しました。本当はいろいろQSVパラメータも調整したほうが良いのですが、現状でもユーザーの多くに満足してもらえると思います。まことに有難うございます。
プロフィール

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR