◎メインサイトとブログとSNS
VSRX-2020 - オリジナルOSやライブラリ、アプリケーションのリファレンスとプログラミングなどの各種テクニックを公開しているメインサイト
RED - 音楽・ドラマ・アイドル・ゆるキャラ・食べ物などの話題を取り上げるブログ
White Fox - ドラマ・副業・公営ギャンブルに関する情報を提供するブログ
Instagram / Youtube
最近の記事

2020年06月02日

オープンソースの動画編集ソフトウェアであるLinux版「Shotcut」のVA-API経由でのQSVハードウェアエンコードの高画質設定

◇Shotcut公式ダウンロードページ
https://shotcut.org/download/

オープンソースの動画編集ソフトであるLinux版「Shotcut」では、ハードウェアエンコードを行う事が出来ます。IntelのQSVとNVIDIAのNVEncが対応しており、いずれもVA-APIというAPIを経由してハードウェアエンコードを実施します。
IntelのQSVは、内蔵GPUに内蔵されている専用チップで、Skylake以降のプロセッサでは、H.264のデコードやエンコードだけでなく、H.265のデコードやエンコードにも対応しています。ハードウェアエンコードでは、Bフレーム付きでH.265のハードウェアエンコードが出来るNVEncが一番容量を圧縮しながら綺麗にエンコードが可能です。QSVのH.265ハードウェアエンコードでは、Bフレームが使えないので、綺麗にエンコードをする事は可能ですが、容量が大きくなりがちです。そこで、QSVでは、Bフレーム付きのH.264ハードウェアエンコードの方をおすすめします。

Linux版「Shotcut」で、QSVによるハードウェアエンコードで綺麗に出力出来るのは、以下の設定です。
レートコントロールはQVBRを選び、品質は60%(vglobal_quality=20)を選択します。品質60%は23Mbpsぐらいのビットレートでエンコードしてくれます。29.97fpsのフルHD動画12分で、2.1GBの容量になりました。これを基準に品質設定を下げていくと容量も抑える事が出来ます。
Bフレームは3にしており、別途オプション「ref=1」「b-adapt=2」を追加しています。ビットレートを少し抑えながら、画質を出来るだけ保持させる事ができ、これぐらいの設定であれば、再生するハードウェアで動画が破綻する事は無いでしょう。

ちなみに、グラフィックドライバはIntel Media driverを使っています。Ubuntuで標準でインストール出来るi965-va-driverよりもQSVに最適化されているので、エンコード時間も少し短くなります。

◇Intel Media driver PPA
Ubuntu 19.04以降用
https://launchpad.net/ubuntu/+source/intel-media-driver
Ubuntu 18.04用
https://launchpad.net/~morphis/+archive/ubuntu/intel-media

◇QSVハードウェアエンコード高画質設定

【映像】
解像度 1980x1080
アスペクト比 16:9
フレームレート 29.97fps
走査方式 プログレッシブ
フィールドオーダー なし
インターレース解除 YADIF-時間軸+空間軸
補間 バイキュービック
並列処理 ON

【コーデック】
コーデック h264_vaapi
レートコントロールQVBR
品質60%-vglobal_quality=20
GOP 15フレーム
Bフレーム 3
コーデックスレッド 0

【音声】
チャンネル 2(ステレオ)
サンプルレート 48000Hz
コーデック aac
レートコントロール QVBR
品質 50% aq=250

【その他】
vpre=medium
preset=medium
movflags=+faststart
vprofile=main
vf=format=nv12|
ref=1
b-adapt=2
connection_type=x11
hwupload=1




スクリーンショット_2020-06-02_14-55-17.pngスクリーンショット_2020-06-02_14-55-31.pngスクリーンショット_2020-06-02_14-55-43.pngスクリーンショット_2020-06-02_14-55-53.png

画質はこんな感じです。
スクリーンショット_2020-06-02_14-47-15.png

QSVでハードウェアエンコードをする際には、ビットレート指定では無く、品質固定で設定するのが基本です。品質固定で設定していく事で、画質が綺麗な動画ファイルを作る事ができ、エンコード速度がCPUソフトウェアエンコードよりも遥かに高速になります。少々動画ファイルの容量が小さくなりにくいという欠点がありますが、QSVでも十分に綺麗な動画を作る事が可能です。

以下はまとめ動画です。

◇Linux版「Shotcut」のVA-API経由でのQSVハードウェアエンコードの高画質設定
posted by takatan at 15:05| 大阪 ☀| linux | このブログの読者になる | 更新情報をチェックする