映像のエンコーダで複数のコーデックが使える。

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がないので検証できない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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