part3 待望のNVEncC 5.21以降のみでお手軽VFRエンコード。ついに同一フレームを間引く「–vpp-mpdecimate」オプションが追加に!

日記 > PC

[VFRの技術検証です。すべての動画にVFR化を薦めるものではございませんm(__)m]
※タイトルは個人的に待ち望んだ感情を拙い日本語で表現したものです(^◇^;
※htmlタグの関係でテキストはあちこち修正が入っています。そのままコピペしないでねm(__)m

■ 個人的なマイブームのmpdecimate!旬という事です!

「–vpp-decimate」追加されたあたりから勉強を始めてあったらいいなぁと思う第一候補でしたが、FFMpegでの負荷の高さに言い出せず、ずっと別ルートで模索をしておりましたです
ヽ(*^。^*)ノ

メモ[–vpp-mpdecimate]
連続した重複フレームを削除し、VFR動画を作ることで、実効的なエンコード速度の向上と圧縮率向上を測ります。 なお、このフィルタを使用すると–avsync vfrが自動で有効になります。

パラメータ

hi=768 (int デフォルト: 768)
ドロップするフレームの周期。ここで設定したフレーム数の中から1枚フレームをドロップする。

lo=320 (int デフォルト: 320)

frac=0.33 (float デフォルト: 0.33)
ドロップするフレームの周期。ここで設定したフレーム数の中から1枚フレームをドロップする。

max=0 (int デフォルト: 0)

log=off
判定結果のログファイルの出力。 (bool デフォルト: off)

■ 手元でよく使うデスクトップの60fpsをVFR化してみた!

テスト!テスト!
重複フレームを出すために昔の実写動画(29.97fps)を再生しながらShadowPlay(60fps)で録画してみたファイル。
デフォルト設定でほぼカバーできてる感じ。
ありがたい!

スッキリ縮んだだ!
24分のq28エンコードでファイルサイズが74%に!


■ とりあえずの比較環境

[ShadowPlayソース…の、フォーマット]

Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.2
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference : 3 frames
Format settings, GOP : M=1, N=30
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 60.000 FPS
Minimum frame rate : 15.124 FPS
Maximum frame rate : 63.830 FPS
Standard : PAL
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Title : VideoHandle
Color range : Limited
Color primaries : BT.601 NTSC
Transfer characteristics : BT.470 System M
Matrix coefficients : BT.601
Codec configuration box : avcC

ん?PAL?( ^ω^)・・・ShadowPlayさぁ~ん(^◇^;
PALとはEUで使われているSD時代のアナログ走査線の数が違うよ!24fps圏の・・・あれですよね。
プレステの狭いフレームバッファの中でPAL版対応はしんどかった…(笑)

日本やアメリカはNTSCの30fps圏ですん。
VFRなら関係ないのかな?Color primaries は NTSC だし・・・
気持ち悪いですね(;^_^A アセアセ・・・

[元ソースを再生部分のみにカット]
(TMPGEnc MPEG Smart Renderer 6 Version 6.0.6.7使用)

Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42 (mp42/isom/avc1)
File size : 7.69 GiB
Overall bit rate mode : Variable
Overall bit rate : 46.5 Mb/s
Writing application : TMPGEnc MPEG Smart Renderer 6 Version 6.0.6.7

Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.2
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Bit rate : 46.3 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 60.000 FPS
Minimum frame rate : 42.905 FPS
Maximum frame rate : 80.000 FPS
Standard : Component
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.372
Stream size : 7.65 GiB (100%)
Color range : Limited
Color primaries : BT.601 NTSC
Transfer characteristics : BT.470 System M
Matrix coefficients : BT.601
Codec configuration box : avcC

[VFRソースじゃないときはCFRでエンコードする設定に –vpp-mpdecimate を追加]

D:\bin\NVEncC_5.21_x64\NVEncC64.exe -c hevc –profile main10 –output-depth 10 –bref-mode each –ref 16 –avhw –input-analyze 16 –avsync vfr –aq –aq-temporal –aq-strength 0 –vbrhq 0 –vbr-quality 28 –lookahead 32 –gop-len 600 –bframes 4 –vpp-mpdecimate –vpp-unsharp radius=3,weight=0.5,threshold=10 –colormatrix auto –colorprim auto –transfer auto –audio-copy -i “%~1” -o “%~n1_q28_60fps-vfr.mp4″ 2>”%~n1_q28_60fps-vfr.log”

※不要な設定もありますが、変更するときに忘れるんで付けてるのもあります(^◇^;

上の方で気持ち悪いものがあったので、colorspace 情報書き出してます。
過去のブラウザ(HTML)で見る色空間(colorspace)のあれやこれや(笑)

youtube html5 色空間テスト (追試)
金の髭様がこちらで行なっているテスト。G,Hが追加されたのでもう一回。...

暇なときに自分の再生環境も調べてみたいですねぇ・・・え?暇?あなた?
デフォルトNVEncCではBT.601の時にはフラグが付加されず、BT.709では付加しているようです。
なのでフラグ付加してMediaInfo可視できるようにしてみました。
(今回のmpdecimateには全く関係ないですが…)

[VFR]

Bit rate : 4 665 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 29.336 FPS
Minimum frame rate : 1.500 FPS
Maximum frame rate : 63.471 FPS
Original frame rate : 60.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.077
Stream size : 790 MiB (96%)
Source stream size : 790 MiB (96%)
Color range : Limited
Color primaries : BT.601 NTSC
Transfer characteristics : BT.470 System M
Matrix coefficients : BT.601
Codec configuration box : hvcC

[CFRでエンコードした設定]

D:\bin\NVEncC_5.21_x64\NVEncC64.exe -c hevc –profile main10 –output-depth 10 –bref-mode each –ref 16 –avhw –input-analyze 16 –aq –aq-temporal –aq-strength 0 –vbrhq 0 –vbr-quality 28 –lookahead 32 –gop-len 600 –bframes 4 –vpp-unsharp radius=3,weight=0.5,threshold=10 –colormatrix auto –colorprim auto –transfer auto –audio-copy -i “%~1” -o “%~n1_q28_60fps-cfr.mp4″ 2>”%~n1_q28_60fps-cfr.log”

※不要な設定もありますが、変更するときに忘れるんで付けてるのもあります(^◇^;

[CFR]

Bit rate : 6 374 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 60.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.051
Stream size : 1.05 GiB (97%)
Color range : Limited
Color primaries : BT.601 NTSC
Transfer characteristics : BT.470 System M
Matrix coefficients : BT.601
Codec configuration box : hvcC

う~ん?BT.601( ^ω^)・・・ShadowPlayさん、おちゃめ?事実上世界標準?。

■ 色空間(colorspace)も変更しちゃおう!

720p以上ではBT.709の色空間が推奨されていたような…気のせいだろう(笑)

ffmpeg:未指定のままにするのではなく、h.264をbt.601として明示的にタグ付けしますか?
PALとNTSCでは原色が異なるため、 NTSC = SMPTE 170M = BT 601 525 PAL = BT 470 BG = BT…

なんとNVEncCにはauto設定があるじゃないですか!

(毎度の手抜きセンサー発動)

D:\bin\NVEncC_5.21_x64\NVEncC64.exe -c hevc –profile main10 –output-depth 10 –bref-mode each –ref 16 –avhw –input-analyze 16 –avsync vfr –aq –aq-temporal –aq-strength 0 –vbrhq 0 –vbr-quality 28 –lookahead 32 –gop-len 600 –bframes 4 –vpp-mpdecimate –vpp-colorspace matrix=auto:bt709,colorprim=auto:bt709,transfer=auto:bt709 –vpp-unsharp radius=3,weight=0.5,threshold=10 –audio-copy -i “%~1” -o “%~n1_q28_60fps-vfr.mp4″ 2>”%~n1_q28_60fps-vfr.log”

ん?ダメっぽい?
全体的に白っぽくなった^^;

NTSCとPALが混在してるような(^◇^;

ちょっと保留しましょ。
—-
いろいろ見て回ったものの何を何に合わせてよいのやらヘ(゚∀゚ヘ)アヒャ

ShadowPlay録画環境自体も、まだもめてるらしい(^◇^;
そのうち直るという気がしないでもないが…

{{MetaTags.og.title}}
{{MetaTags.og.description}}

いつ変わるのかっていうのが問題ですなぁ(T.T)

■ 詳しくは「rigayaの日記兼メモ帳」のサイトへ!
NVEnc 5.21
...