QSVEnc 3.18

久しぶりの更新。

[共通]
・Haswell環境のd3d11モードでBフレームありのH.264インタレ保持エンコを行うと、映像が乱れることがあるのでその場合にはBフレームを無効化するように。
内蔵GPU以外にGPUがあり内蔵GPUから映像出力をしていないときにQSVエンコするためには、エンコ用に使用するGPUメモリは通常のd3d9モードではダメで、d3d11モードで確保しなくてはならない。

ところが、インタレ保持でエンコードすると映像が乱れる場合があるとご報告いただき、いろいろ調べると
・Haswell 5063ドライバ(それ以外のドライバについては不明)
・d3d11モード
・H.264 インタレ保持エンコ
・Bフレームあり
の条件をすべて満たすと、映像が乱れる場合があることがわかった。Broadwell/Kabylakeでは発生しないし、根本的な原因は正直謎。

ともかく、映像が乱れてしまうのは問題なので、今回の変更で、上記条件をすべて満たしている場合、Bフレームをなしにして回避するようにした。

ただ、Bフレームなしは圧縮率が大きく下がってしまうので、できれば内蔵GPUから映像出力をするようにしてd3d9モードが使用したいところ。

[QSVEncC]
・映像のcodec tagを指定するオプションを追加。(--video-tag)

・音声エンコード時のtimestampを取り扱いを改良、VFR時の音ズレを抑制。



QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。

QSVEncBenchmark.zipはベンチマーク用です。(重いので注意)。run_benchmark.batをダブルクリックで実行です。

QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>

ソースはこちら


スポンサーサイト



コメントの投稿

非公開コメント

--input-format および x264 r2970

お世話になっております。2点報告いたします。

■QSVEnc_3.18 および NVEnc_4.36 で"--input-format"オプションが機能していないようです。
 何を指定しても
  Error: Unknown option: "matroska"
 のようにエラーとなります。
 (コマンド解析時に i++ が抜けている?実装当初からずっと機能していなかった予感)
  https://github.com/rigaya/QSVEnc/blob/3.18/QSVPipeline/qsv_cmd.cpp#L435
  https://github.com/rigaya/NVEnc/blob/4.36/NVEncCore/NVEncCmd.cpp#L522

■x264が3/14にr2970になっているようです。GitLabに移転したようですね。
  https://code.videolan.org/videolan/x264

Re: --input-format および x264 r2970

> --input-format
> コマンド解析時に i++ が抜けている?
おっしゃる通りです…。次回更新時修正します。

> x264
更新しました。

avswのRGB読み込み

ありがとうございます。
あと1つ気になる点があったので一応追加報告します。

■avswのRGB読みこみについて

 試しにx264rgb.mp4を--avswで読み込んでみたところ
   avsw: Invalid pixel format "gbrp" from input file.
 というエラーになりました。
 更に試しにffmpegで読めるRGB系のaviを--avswで読ませてみたところ
   x264rgb.avi → gbrp
   UtVideo_ULRG.avi → gbrp
   UtVideo_ULRA.avi → gbrap
   RGB24.avi → bgr24
   RGB32(RGBA).avi → bgra
 ということでエラーとなりました。(これらは--aviを使えば問題はないです)
 avswが対応しているのはrgb24とrgb32とのことなので
 gbrpやbgr24等が読めないのは仕様通りかもしれませんが、
 それらに対応しないと実質的にavswでのRGB読み込みはほぼ出来ないかもしれません。
 (RGBソースを使うことはあまりないかもしれませんが)

 ちなみに LagarithRGB.avi を--avswで読み込ませた場合は、一応
   avsw: avsw: lagarith(rgb24)->rgb32 [AVX2], 640x360, 1/1 fps
   Vpp Enabled: ColorFmtConvertion: rgb32 -> nv12
   Input Info avsw: lagarith(rgb24)->rgb32 [AVX2], 640x360, 1/1 fps
   VPP Enabled ColorFmtConvertion: rgb32 -> nv12
 という感じでrgb24として読み込めたのですが、
 RGBプレーンの扱いが変になる(ffmpeg側の問題?)らしく、
 出力ファイルを再生するとRとBが入れ替わってしまっていました。

Re: avswのRGB読み込み

…ついに気づかれてしまいましたか…(苦笑)

ffmpeg 4.0にアップデートしたQSVEnc 3.04からそうなっています(その前はutvideoは読めていました)。理由はご指摘の通り、ffmpeg側で理由は不明ですがrgbの持ち方が変わって、これに対応する変換処理をQSVEncが持たないのが原因です。

というわけで変換処理を追加すればよいのですが、またshuffleする関数を書くのが辛くて放置していました…。

Re: avswのRGB読み込み

> ffmpeg 4.0にアップデートしたQSVEnc 3.04からそうなっています...

なるほどそういうことでしたか。
L-SMASH WorksでRFF処理がうまくいかなくなったりという件もありましたし、
ffmpeg 4.0ってなんというか鬼門なんですかね・・・。
  https://mevius.5ch.net/test/read.cgi/avi/1485415675/942-949
ffmpegは更新も頻繁ですし、変更内容を全部追いかけて対応するなんて無理すぎぃ・・・。

今回の件はなんとなく思いつきで試して気づいただけなので、
特に困っているとかそういうわけではないです。
実用でRGBソースを使う人もあまりいないでしょうし、
気が向くまで放置しても問題はあまりないかと・・・w

No title

お世話になっています。
QSVEncC (x86) 3.18 を使って、
スカパープレミアムをロケフリ(TvRemoteViewer_VB)しようとすると、
hls配信されずに止まってしまいます。
NVencC であれば正常に配信できるので、困っているわけではないのですが、
QSV のほうが同時処理数などが有利なので、
できれば QSVEncC で処理できると助かるため調査したいのですが、
どのようにすれば調査可能でしょうか?
取り急ぎログを取得してみました。

スカパープレミアムのGAORAをロケフリ再生しようとしたログ
https://www.axfc.net/u/3969971
NHK BS1をロケフリ再生しようとしたログ
https://www.axfc.net/u/3972166

Re: No title

残念ながらスカパープレミアム(というより124,128度CS)を受信できる環境でなく、問題となる入力データがないので、再現しての調査がこちらでは難しいかもしれません。

実装のどこに原因があるかわかりやすくするため、試しにQSVEncCのオプションに"--avsw"をつけてCPUデコードしてみるとどうなるかお試しいただけないでしょうか。これでうまくいくとデコーダ及びデコーダへの転送の問題(こちらだと難しいですが)、これでも駄目だと入力データからの映像データの抽出部分になるかと思います。

avswでは再生できました。。。

回答ありがとうございます。
確認したところ、
--avswでは正常に配信(再生)可能で、
--avqsvと--avhwでは配信不能でした。
対応不可能っぽい感じでしょうか。
それとも何か情報を提供すれば可能性は残っていますでしょうか?

Re: avswでは再生できました。。。

お試しいただきありがとうございます。--avswは正常ということですし、わたしのほうでもNVEncとのコード比較を行ってみましたが読み込み部分については差はほぼありませんでしたので、入力データからの映像データの抽出部分は正常で、デコーダ周りのなにかということになりそうです。

ご指摘のとおり、これ以上は手元で再現できる入力データがないと調査が難しそうです…、申し訳ありません。

念のため、うまくいかない際の "--log-level debug"を付加したときのログをいただけないでしょうか。また、配信不能とのことですが、配信側でQSVEncCがクラッシュしてしまう感じでしょうか、それとも単にフリーズしたような感じになっているのでしょうか?

いろいろお願いしてすみませんが、よろしくお願いします。

avswでは再生できました。。。

debug ログ取得しました。
その他プロセスの状態なども送りたいので、メールで送らせてください。
プロフィール

rigaya

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出力

svtAV1guiEx (ミラー)
- SVT-AV1によるAV1出力

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