リサイズ、デバンディング、トーンマッピング、色相調整などができる外部ライブラリのlibplacebo
フィルタの使い方。パラメータが多いので一部を抜粋。
- haasn/libplacebo: Official mirror of libplacebo
- Asd-g/avslibplacebo: AviSynth+ libplacebo.
- Lypheo/vs-placebo: libplacebo-based debanding, scaling and color mapping plugin for VapourSynth
基本コマンド
ハードウェア支援なくデコードしてyuv420p形式にリサイズする。
ffmpeg -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=1280:720:yuv420p,hwdownload,format=yuv420p" -c:v libx264 -c:a copy output
NvidiaのGPUがあればデコード支援に使い、こちらの方が速い。
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=1280:720:nv12,hwupload_cuda" -c:v hevc_nvenc -c:a copy output
10ビット深度でリサイズする。
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=1280:720:p010le,hwupload_cuda" -c:v hevc_nvenc -pix_tmt p010le -c:a copy output
HDRからSDRにトーンマッピングする。
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=format=gbrpf32le:color_trc=linear:tonemapping=mobius,libplacebo=format=nv12:colorspace=bt709:color_primaries=bt709:color_trc=bt709,hwupload_cuda" -c:v hevc_nvenc -c:a copy output
mpvのhook shadersを使う。glsl形式は読めない。
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=custom_shader_path='C\:/Users/owner/AppData/Roaming/mpv.net/shaders/NoChroma.hook',hwupload_cuda" -c:v hevc_nvenc -c:a copy output
- mpv.io
- User Scripts · mpv-player/mpv Wiki
- bShaders/NoChroma.hook at master · butterw/bShaders
- Video player Shaders guide (MPC-HC, mpv) – Doom9’s Forum
デバンディング。
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=format=nv12:deband_iterations=1:deband_threshold=4:deband_radius=16:deband_grain=6:force_dither=1:dithering=0,hwupload_cuda" -c:v hevc_nvenc -c:a copy output
公式ドキュメント:FFmpeg Filters Documentation : libplacebo
オプション
ffmpeg -h filter=libplacebo
で見られるパラメータ一覧。
以下抜粋。
リサイズアルゴリズムの指定。libplacebo/filters.c · haasn/libplaceboより。
- upscaler[string]
- downscaler[string]
- triangle
- gaussian
- sinc
- catmull_rom
- mitchell
- robidoux
- robidouxsharp
- bicubic
- spline16
- spline36
- spline64