デコーダにはQSVとNVDECにハードウェア支援を受けたDXVA2、D3D11、。フィルタにはQSV、OpenCL、NPP。エンコーダにはQSVとソフトウェアエンコーダのlibx264のコマンド例のまとめ。コマンド例はぞれぞれ上にQSV、下にlibx264を併記し、filter はソフトウェアフィルタ(いわゆる通常のフィルタ)を示す。他にも処理の速いコマンド例があるかもしれない。入力ファイルはH.264/AACを想定している。

HWAccelIntro – FFmpeg

オプション

  • -hwaccel
    ハードウェアデコードに使う名前の指定
  • -hwaccel_device
    ハードウェアアクセレーションの支援に使うデバイスの指定
  • -hwaccel_output_format
    ハードウェアアクセレーションの支援を受けたデコードの出力フォーマットの指定
  • -init_hw_device
    初期化するハードウェアデバイスの指定
  • -filter_hw_device
    フィルタで使うハードウェアデバイスの指定

フィルタ

  • hwdownload
    ハードウェアフレームをシステムメモリへダウンロードする
  • hwupload
    システムメモリフレームをハードウェアサーフェスにアップロードする
    フィルタを初期化するときに、アップロード先のデバイスを指定する必要がある。ffmpegを使う場合は、-filter_hw_device を指定して適切なデバイスを指定する

QSV

QSV 対応の ffmpeg をつくる
QSV フィルタの詰め合わせ vpp_qsv

デコード

ffmpeg -hwaccel qsv -c:v h264_qsv -i input -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

CPUフィルタ

ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

QSVフィルタ

ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

QSVフィルタからCPUフィルタ

ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf scale_qsv=1280:720,hwdownload,format=nv12,filter,hwupload=extra_hw_frames=64 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからQSVフィルタ

ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,filter,hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,filter,hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタ
ffmpeg に nvenc(cuda)をインストールする
CUDA を使ったハードウェアアクセレーションフィルタのまとめ

ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタからCPUフィルタ

ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからNPPフィルタ

ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,filter,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel qsv -c:v h264_qsv -i input -vf hwdownload,format=nv12,filter,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタ
openclで検索 | ニコラボ
FFmpeg Filters Documentation : OpenCL Video Filters

ffmpeg -hwaccel qsv -c:v h264_qsv -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタからCPUフィルタ

ffmpeg -hwaccel qsv -c:v h264_qsv -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからOpenCLフィルタ

ffmpeg -hwaccel qsv -c:v h264_qsv -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NVDEC(cuvid)

デコード

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf hwdownload -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

QSVフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

QSVフィルタからCPUフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからQSVフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwdownload,format=nv12,scale=320:240,hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwdownload,format=nv12,scale=320:240,hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタからCPUフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからNPPフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf hwdownload,format=nv12,filter,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -vf hwdownload,format=nv12,filter,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタからCPUフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからOpenCLフィルタ

ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel cuvid -c:v h264_cuvid -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NVDEC

デコーダ名の指定が不要。一部フィルタの併用方法が不明。

デコード

ffmpeg -hwaccel nvdec -i input -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel nvdec -i input -c:v libx264 -c:a copy output.mp4

CPUフィルタ

ffmpeg -hwaccel nvdec -i input -vf filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel nvdec -i input -vf filter -c:v libx264 -c:a copy output.mp4

QSVフィルタ

ffmpeg -hwaccel nvdec -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel nvdec -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

QSVフィルタからCPUフィルタ

ffmpeg -hwaccel nvdec -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel nvdec -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからQSVフィルタ

ffmpeg -hwaccel nvdec -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf filter,hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel nvdec -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf filter,hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

DXVA2

デコード

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -i input -vf hwdownload -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -i input -vf hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

CPUフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -i input -vf hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -i input -vf hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

QSVフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

QSVフィルタからCPUフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからQSVフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwdownload,format=nv12,scale=320:240,hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwdownload,format=nv12,scale=320:240,hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタからCPUフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからNPPフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,scale=320:180,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,scale=320:180,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタからCPUフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからOpenCLフィルタ

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

D3D11

デコード
-hwaccel_device で何番目のGPUを使うか指定している。

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -i input -vf hwdownload -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -i input -vf hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

CPUフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -i input -vf hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -i input -vf hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

QSVフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

QSVフィルタからCPUフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 0 -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからQSVフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwdownload,format=nv12,scale=320:240,hwupload=extra_hw_frames=64,scale_qsv=1280:720 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -init_hw_device qsv=qsv:hw -filter_hw_device qsv -i input -vf hwdownload,format=nv12,scale=320:240,hwupload=extra_hw_frames=64,scale_qsv=1280:720,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

NPPフィルタからCPUフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからNPPフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,filter,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device cuda=cuda -filter_hw_device cuda -i input -vf hwdownload,format=nv12,filter,hwupload_cuda,scale_npp=-2:720:interp_algo=lanczos,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

OpenCLフィルタからCPUフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,hwupload,roberts_opencl,hwdownload,format=nv12,filter -c:v libx264 -c:a copy output.mp4

CPUフィルタからOpenCLフィルタ

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -hwaccel_device 1 -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwdownload,format=nv12,filter,hwupload,roberts_opencl,hwdownload,format=nv12 -c:v libx264 -c:a copy output.mp4

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)