(修正版)part4 最後に残っている修正されそうなShadowPlayの色空間(ColorSpace)bt.601をbt.709に変換するときのあれやこれや。

日記 > PC

ミスリードを起こしたすべての始まり:ShadowPlay:MediaInfo Video [Standard : PAL]

※PALって話は無視してよい
※入力がbt601-6-525(NTSC)の時だけはちょっと違う処理が必要らしい
■ ShadowPlay:MediaInfo Video [Standard : PAL]について

・今回ShadowPlayで録画した動画はFHD(1920×1080)なので、標準PALフラグ自体は意味が無いようです
・PAL standard resolution is about 720×576 (not HD)。もちろん解像度だけの設定ではない
・フォーマット(metadata=video_format)にフラグを立てることはできるという事
・「TMPGEnc MPEG Smart Renderer 6 Version 6.0.6.7」を通すと[Standard : Component]になる

参考資料:

How to have "standard PAL" flag with a 1920x1080 video
I need to transcode some 1920x1080 video and to have the mediainfo flag "standard PAL" in it. I tried many things with ffmpeg but either I have the PAL flag w...
■ FFMpeg 11.30 colorspace filter
FFmpeg Filters Documentation
■ Rec.601 or BT.601(CCIR 601)

[Primary color]
・Slightly different primaries are specified for the 625-line (PAL and SECAM) and 525-line (NTSC) systems.

Rec. 601 - Wikipedia

https://glenwing.github.io/docs/ITU-R-BT.601-6.pdf

■ FFMpeg: colormatrixフィルタ

・YUVの変換式の変換を行うcolormatrixフィルタの使い方。このフィルタは8ビット深度の映像限定である。
※10bit使うなら、このフィルタには使わない方向で。実写だと分かりにくいものの、グラデーション縞が出るようなソースでは影響出ます。
個人的な感想なので好みで(^◇^;

色の変換色を変更するcolormatrix | ニコラボ
YUVの変換式の変換を行うcolormatrixフィルタの使い方。このフィルタは8ビット深度の映像限定である。
■ FFMpeg: colorspaceフィルタ

・カラースペースの変換を行うcolorspaceフィルタの使い方。このフィルタは高ビット深度の映像にも対応している。

色空間変換するcolorspace | ニコラボ
カラースペースの変換を行うcolorspaceフィルタの使い方。このフィルタは高ビット深度の映像にも対応している。
■ FFMpeg: colorspace サンプル「colorspace with fast=1 iall=bt601-6-525」

・「fast[boolean] 色度とガンマ補正を考慮しない」オプションを使うらしい
・colorspace with fast=1 iall=bt601-6-525:

ffmpeg -i “origin(rgb24).png” -c:v libx264 -preset placebo -qp 0 -x264-params “keyint=15:no-deblock=1” -pix_fmt yuv444p10le -sws_flags spline+accurate_rnd+full_chroma_int -vf “colorspace=bt709:iall=bt601-6-525:fast=1” -color_range 1 -colorspace 1 -color_primaries 1 -color_trc 1 “colorspace_fast=1_iall=bt601-6-525.avi”

ffmpeg -i “colorspace_fast=1_iall=bt601-6-525.avi” -compression_level 10 -pred mixed -pix_fmt rgb24 -sws_flags +accurate_rnd+full_chroma_int “colorspace_fast=1_iall=bt601-6-525.png”

※「-color_range 1 -colorspace 1 -color_primaries 1 -color_trc 1」:1 = bt.709

colorspace – FFmpeg
■ FFMpeg: colorspace 変換サンプル

MPC-HCなど再生時の静止画保存に合わせたものです。
※colorprimやtransferを見ているプレイヤーでは違う変換が必要かもってことです


set BEFORE=%~1
set FILENAME=%~n1_colorspace_fast=1_iall=bt601-6-525
set EXTENSION=%~x1
set AFTER=%FILENAME%%EXTENSION%
set LOGFILE=%FILENAME%.log

ffmpeg -hwaccel cuda -i “%BEFORE%” -c:v hevc_nvenc -preset:v p7 -profile:v main10 -vf colorspace=all=bt709:iall=bt601-6-525:fast=1 -rc vbr -qmin:v 0 -qmax:v 18 -pix_fmt p010le -codec:a copy “%AFTER%” 2>”%LOGFILE%”

今回の事例では入力設定省いても同じ動作なので。

ffmpeg -hwaccel cuda -i “%BEFORE%” -c:v hevc_nvenc -preset:v p7 -profile:v main10 -vf colorspace=all=bt709:fast=1 -rc vbr -qmin:v 0 -qmax:v 18 -pix_fmt p010le -codec:a copy “%AFTER%” 2>”%LOGFILE%”

・今まで使ってきたmpdecimateの結果(unsharpフィルタは除いてあります)

ffmpeg -hwaccel cuda -i “%BEFORE%” -c:v hevc_nvenc -preset:v p7 -profile:v main10 -vsync vfr -vf mpdecimate,colorspace=all=bt709:iall=bt601-6-525:fast=1 -rc-lookahead 32 -spatial-aq 0 -temporal-aq 0 -weighted_pred 0 -rc vbr -qmin:v 19 -qmax:v 25 -b_ref_mode 1 -multipass 2 -dpb_size 4 -g 300 -bf 4 -pix_fmt p010le -codec:a copy “%AFTER%” 2>”%LOGFILE%”

うむむむ。まだ納得はしていないが、そういう事なんだろうと理解はした感じ(^◇^;
あとはNVEncCか!

■ NVEncC: colorspace 変換サンプル

MPC-HCなど再生時の静止画保存に合わせたものです。
※colorprimやtransferを見ているプレイヤーでは違う変換が必要かもってことです

[NVEncC]

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=smpte170m:bt709 –colormatrix bt709 –colorprim bt709 –transfer bt709 –audio-codec copy -i “%~1” -o “%~n1_nvenc_matrix+bt709x3.mp4″ 2>”%~n1_nvenc_matrix+bt709x3.log”

[NVEncC:input 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 –colormatrix bt709 –colorprim bt709 –transfer bt709 –audio-codec copy -i “%~1” -o “%~n1_nvenc_auto2matrix+bt709x3.mp4″ 2>”%~n1_nvenc_auto2matrix+bt709x3.log”

※今までのテストコマンドラインからunsharp設定を除いただけ…(´・ω・`)
正しくなるように設定すると今までどうやってあんなばらつき設定を出していたのか思い出せないという不思議な世界。1日勉強して単語の差異を知った効果か!(笑)

全部unsharpフィルタの動作を理解していなかった弊害ということにしておこう(・・ゞポリポリ

■ ほかのプレイヤーなど再生環境によって、表示カラーが変わる可能性は残る‥‥そういう条件付き妥協(^◇^;

MPC-HCなど再生時の静止画保存に合わせたものです。
※colorprimやtransferを見ているプレイヤーでは違う変換が必要かもってことです

3度目です(^◇^;

タイトルとURLをコピーしました