デコーダにはQSVとNVDECにハードウェア支援を受けたDXVA2、D3D11、D3D12、Vulkan。フィルタにはQSV、OpenCL、NPP、Vulkan。エンコーダにはQSVとNVENC、ソフトウェアエンコーダのlibx264のコマンド例のまとめ。コマンド例はぞれぞれ上にQSV、下にlibx264を併記し、filterはソフトウェアフィルタ(いわゆる通常のフィルタ)を示す。他にも処理の速いコマンド例があるかもしれない。入力ファイルはH.264/AACを想定している。エラーが出るときはフィルタの最後をformat=nv12からformat=yuv420pに変更するとエラーがなくなるかもしれない。
libnppは8.1から非推奨予定。
-hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1の-hwaccel_deviceで利用するデバイスを番号を指定できる。デバイスはintel CPU、NVIDIA GeForce、AMD Radeonどちらでも使える。OpenCL、Vulkanフィルタも同様にintel CPU、NVIDIA Geforce、AMD Radeonで使える。使えるハードウェアは GPU-Zで調べられる。
OpenCLが使えるデバイスならこのコマンドでデバイス番号が調べられる。
ffmpeg -hide_banner -v verbose -init_hw_device opencl
Vulkanが使えるデバイスならこのコマンドでデバイス番号が調べられる。
ffmpeg -hide_banner -v verbose -init_hw_device vulkan
ffmpeg: default hwaccel_output_format to cuda when hwaccel is cuvidより、-hwaccel cudaでデコードするときには-hwaccel_output_format cudaを追加した。
Continue reading “ハードウェアデコーダ、フィルタ、エンコーダを組み合わせる”