映像のエンコーダで複数のコーデックが使える。
Vulkan を使ったハードウェアアクセレーションフィルタのまとめ
Vulkanのハードウェア支援を受けた汎用フィルタlibplacebo
目次
h264_vulkan
オプション
一部使っても効果がないオプションもある。
基本コマンド
ffmpeg -hwaccel vulkan -init_hw_device vulkan=vkdev:0 -filter_hw_device vkdev -i input -vf format=nv12,hwupload=derive_device=vulkan -c:v h264_vulkan -qp 30 output.mp4
ffmpeg 8.1から追加予定でscdetフィルタのシーンチェンジ判定をエンコーダのキーフレームとして挿入できるようになった。ただし-keyint_minなどでキーフレーム幅の最小値は制御できない。
ffmpeg -hwaccel vulkan -init_hw_device vulkan=vkdev:0 -filter_hw_device vkdev -i input -vf scdet=threshold=10,format=nv12,hwupload=derive_device=vulkan -c:v h264_vulkan -qp 30 -g 240 -force_key_frames scd_metadata output.mp4
シーンチェンジの時間を調べるscdet
fftools/ffmpeg: add force key frame by scdet metadata support · FFmpeg/FFmpeg@540aacf · GitHub
hevc_vulkan
オプション
一部使っても効果がないオプションもある。
基本コマンド
4:2:0の10ビット深度にするためにp010le変換している。
ffmpeg -hwaccel vulkan -init_hw_device vulkan=vkdev:0 -filter_hw_device vkdev -i input -vf format=p010le,hwupload=derive_device=vulkan -c:v hevc_vulkan -qp 30 output.mp4
scdetフィルタのシーンチェンジ判定をエンコーダのキーフレームとして挿入。
ffmpeg -hwaccel vulkan -init_hw_device vulkan=vkdev:0 -filter_hw_device vkdev -i input -vf scdet=threshold=10,format=p010le,hwupload=derive_device=vulkan -c:v hevc_vulkan -qp 30 -g 240 -force_key_frames scd_metadata output.mp4
ffv1_vulkan
オプション
基本コマンド
正常に再生できるファイルを出力しないのでよくわからない。
ffmpeg -hwaccel vulkan -init_hw_device vulkan=vkdev:0 -filter_hw_device vkdev -i input -vf format=nv12,hwupload=derive_device=vulkan -c:v ffv1_vulkan -level 4 -coder 0 -strict experimental -slicecrc 0 output.mkv
rigaya氏のffmpegOutでは正常に機能するようだ。
rigayaの日記兼メモ帳 ffmpegOut 2.02
av1_vulkan
オプション
対応CPUがないので検証できない。