AMD Radeonのハードウェアエンコーダーを使い、ゆっくりMovieMaker4(YMM4)からMP4動画を書き出すプラグインです。映像はH.264 / H.265(HEVC)、音声はAACに対応しています。
Disnana Projectとして、tp-li-devが開発・保守しています。
最新版をダウンロード — Assets内のYMM4-Radeon-AMF-v<バージョン>.ymmeを選んでください。Source codeは開発者向けで、インストール用ではありません。
現在の版は v0.2.2 です。MP4に記録する音声トラックの長さ情報を修正しました。旧版の出力は、再生・変換するアプリによって後半の音声が短く扱われる可能性があります。変更内容と確認範囲を参照してください。
所有プール8枚・出力回収の待機最適化ONを推奨設定とし、出力設定の「推奨設定」「比較用の従来設定」ボタンで同じ圧縮条件のまま比較できます。
- Windows 11(x64)
- YMM4 / YMM4 Liteの.NET 10対応版で、
IVideoFileWriter3を持つ版が必要です。v0.2.0のAPI・独立テストと実プロジェクトログはYMM4 v4.56.1.1で確認しています。古いAPIのYMM4ではGPU直渡しをOFFにしてもプラグインを読み込めません。 - AMFによるH.264 / HEVCエンコードに対応したAMD Radeon GPUと、そのGPUに対応するRadeonドライバー
- Microsoft Visual C++ v14再頒布可能パッケージ(x64)。ランタイム不足のエラーが出る場合はMicrosoft公式配布ページから導入してください。
通常の利用にVisual Studio、.NET SDK、AMF SDK、NVIDIA SDK、検証用のffmpeg / ffprobeを別途用意する必要はありません。開発環境の準備はCONTRIBUTINGを参照してください。
実機確認はWindows 11・Radeon RX 6800 XT環境で行っています。別のGPU・ドライバー・YMM4の版での動作は未確認です。最初は短い区間を出力し、映像と音声を確認してください。
- 最新版のReleaseを開き、Assetsから
.ymmeをダウンロードします。自分でZIPに圧縮し直す必要はありません。 - 作業中のプロジェクトを保存し、YMM4を終了します。
- ダウンロードした
.ymmeをダブルクリックし、インストーラーの案内に従います。YMM4を複数配置している場合は、普段使う配置先を確認してください。 - YMM4を起動します。
- 「ファイル」→「設定」→「プラグイン」→「プラグイン一覧」に「Radeon (AMF) プラグイン出力」が表示されることを確認します。
.ymmeでインストーラーが開かない場合は、YMM4を起動して「ヘルプ」→「YMM4用拡張子の関連付け」→「登録する」を実行します。その後YMM4を終了し、手順3からやり直してください。YMM4公式のプラグイン導入手順も参照できます。
- YMM4でプロジェクトを開き、保存します。
- 「ファイル」→「動画出力」を開きます。
- 「全般」内の「動画出力」で「Radeon (AMF) プラグイン出力」を選びます。
- v0.2.1では「H.264」「8 枚」「出力回収の待機を最適化:ON」「自動 (YouTube 推奨)」「標準」の既定設定で試してください。他の実験機能はOFFです。
- 必要に応じて出力範囲・音量などのYMM4側の設定を確認し、「出力」から保存先のMP4ファイルを指定します。テスト時は既存の動画と別名にしてください。
- 完了したMP4を再生し、冒頭と末尾の映像・音声・同期を確認します。
出力解像度の幅と高さは、どちらも正の偶数が必要です(例:1920×1080、1080×1920)。解像度と完成動画のfpsはYMM4側の設定を使用します。YMM4公式の動画出力手順も参照してください。
| 項目 | 既定値 | 説明 |
|---|---|---|
| コーデック | H.264 | H.264 / H.265 (HEVC)。まずはH.264で確認してください。HEVCはGPUと再生先の両方が対応している必要があります。 |
| 所有テクスチャプール | 8 枚 | 4 / 6 / 8枚。16 / 32 / 64 / 128枚は実験設定として選択できます。増量時は所有画像の画素量を目安1 GiB以内に制限(1080p:最大128枚、4K:最大32枚。従来の4〜8枚は維持)。総VRAMの上限ではなく、枚数を増やしても必ず速くなるわけではありません。実測と注意点を確認してください。 |
| GPU直渡し(実験・IVideoFileWriter3) | オフ | 入力経路の比較オプション。YMM4の描画済みGPUフレームを直接受け取り、CPU読み取り用ビットマップへの中間コピーを省きます。AMFの所有テクスチャへのGPUコピーは残ります。 |
| MF方式:入力解放通知でテクスチャを再利用(実験) | オフ | MFの入力寿命管理を参考に、AMFが入力を使い終えた通知で所有テクスチャを返します。画質・ビットレート・GPUコピー回数は変えません。速くなるとは限らない検証用機能です。 |
| MF方式:GPU VideoProcessorでNV12化してAMFへ投入(実験) | オフ | 所有RGBへGPUコピー後、D3D11 VideoProcessorでBT.709 limited NV12へ変換し、所有NV12 poolからAMFへ渡します。CPU readbackはありません。RX 6800 XTの実測では現行経路より速くならなかったため、比較・解析用です。構造と実測 |
| 出力回収の待機を最適化(テスト版) | オン | AMFの期限付き出力待機と、即時に戻る場合の高精度タイマーを使います。完成フレームの回収遅れを減らすための機能で、画質・ビットレート・GPU直渡し・プール枚数は変えません。非対応AMFでは従来方式を使います。 |
| 入力満杯時を進捗通知で待機(実験) | オフ | AMF_INPUT_FULL時の固定sleepを、圧縮済み出力の完了通知待ちへ置き換えます。入力解放は診断のみで、10 msの再確認上限を持ちます。画質・プール・コピー回数は変更しません。実測では速度差がノイズ内で再試行が増えたため、通常利用は推奨しません。 |
| AMF投入を専用スレッドへ分離(実験) | オフ | 所有テクスチャへコピー後、プール枚数以内のキューでAMFへの投入を別スレッドへ渡します。画質・枚数・回収設定は変えません。必ず高速化する設定ではありません。 |
| エンコーダー専用D3D11デバイス(実験) | オフ | 同じGPUの専用デバイスと共有面を使い、GPUコピーを1回から2回にします。共有面1枚分のメモリと同期の負担が増えます。投入スレッドとは独立して比較できます。実測では高速化未確認。構造と注意点を参照してください。 |
| デバッグログを書き出す | オフ | エラー調査時にオンにしてから出力します。保存先は後述。 |
| プロファイリング結果を書き出す(集計JSON) | オフ | 通常出力・破棄モードの受け取り時間や処理区間を集計し、終了時に出力名.amf_profile.jsonへ保存します。デバッグログとは独立しています。 |
| 計測専用:映像・音声を破棄(MP4を作成しない) | オフ | YMM4から届いた映像・音声を、コピー・エンコード・音声保持・動画保存せずに返します。診断用で、視聴できる動画は生成されません。 |
| ビットレート方式 | 自動 (YouTube 推奨) | 自動は映像の高さとfpsに応じた内蔵の目安でVBR出力します。手動指定には固定 (CBR)または可変 (VBR)を選びます。 |
| 出力品質 | 標準 | 通常は標準を推奨します。高品質は削除せず、低速・画質差を要確認と表示します。検証した2素材では標準との差が小さく、合成映像では処理時間が約2.2倍でした。他素材での同等性を保証する結果ではありません。画質比較 |
| ビットレート(kbps) | 手動用の初期値は12000 | CBR / VBR選択時に入力できます。設定範囲は100〜200000kbpsですが、GPU側の対応範囲には別の制約があります。 |
自動設定ではビットレート欄は編集できません。欄に表示された12000などの数値が、そのまま実際の自動設定値になるとは限りません。「YouTube 推奨」はUI上の名称で、YouTubeから最新の推奨値を取得する機能ではありません。
GPU直渡しはこの動画出力設定で操作します。別のツールやHarmonyは不要です。チェックは次に開始する出力へ適用され、進行中の出力経路は変わりません。OFFでもAMFハードウェアエンコードであり、CPUエンコードに切り替える機能ではありません。従来経路も、プラグインではCPUに画素を読み出しません。
実プロジェクトのログでGPU直渡しON/OFF両方の7,259フレーム完了を確認しましたが、この1往復では高速化を確認できていません。長時間安定性も未確認です。まず短い区間を別名で出力して確認してください。v0.2.0の変更と検証範囲を参照できます。
設定のファイル保存は未実装のため、YMM4を再起動した後は出力設定を確認してください。
「MF方式:入力解放通知でテクスチャを再利用」「MF方式:GPU VideoProcessorでNV12化してAMFへ投入」「出力回収の待機を最適化」は、v0.2.1で選択できる実験機能です。同じ開発ビルドの両DLLを使い、チェックを一つずつ変えて同条件で比較してください。MFから取り込んだ仕組みと使い方、入力再利用の実測結果、NV12経路の構造と実測を参照してください。待機最適化はそれとは独立した別オプションです。
画質設定を変えずに高速化する試みですが、MFの「品質固定100」と同等以上の画質・速度は未確認です。v0.2.1は待機最適化だけを既定ONに採用し、他の実験機能はOFFを維持します。推奨/従来ボタンは画質・ビットレート・診断設定を維持し、他の実験機能をOFFにします。待機単独の実測結果とMFとの画質比較手順も用意しています。
以下の診断オプションはv0.2.0で追加した機能です。v0.1.1パッケージには含まれません。通常の動画制作では既定のOFFのまま利用できます。
同じプロジェクト・同じ範囲で、まず「プロファイリング結果を書き出す」だけをオンにして通常出力し、次に「計測専用:映像・音声を破棄」もオンにして比較します。両方ともデバッグログはオフにし、必ず別々の新しい出力名を指定してください。破棄モードではMP4を作りませんが、プロファイリングがオンならJSONは保存します。設定したMP4が既に存在していても、本プラグインの破棄モードはそれを更新しません。
JSONは動画の出力先フォルダーへ保存します(例:通常.mp4.amf_profile.jsonと破棄.mp4.amf_profile.json)。同名のJSONは最新結果で置き換えます。破棄モードでプロファイリングもオフにした場合、プラグインからは動画・計測JSONのどちらも生成しません。調査が終わったら両方のチェックを外してください。
両DLLを同じビルドへ更新する必要があります。区間の意味、比較の手順、結果の読み方はプロファイリングガイドにまとめています。破棄モードとの差は、GPU競合や待ち時間の変化も含むため、そのままエンコード時間とは解釈できません。
プラグイン内の自動更新には対応していません。
- Releasesで変更内容を確認し、新しい
.ymmeをダウンロードします。 - プロジェクトを保存してYMM4を終了します。
- インストール時と同じYMM4を対象に、新しい
.ymmeをインストールします。 - YMM4を起動し、短い区間を別名で出力して確認します。
標準の配置先はYMM4フォルダ\user\plugin\AMFVideoWriterPluginです。その中のVERSIONで配置済みパッケージの版を確認できます。手動で差し替える場合も、AMFPlugin.dllとAmfNative.dllは同じ配布パッケージの組で使ってください。旧実験版と新しいDLLを混在させないでください。
YMM4を終了し、上記のAMFVideoWriterPluginフォルダーだけをuser\pluginの外へ退避すると、読み込まれなくなります。不要になったら退避したフォルダーを削除できます。YMM4本体や他のプラグイン、プロジェクト・素材フォルダーは削除しないでください。
以前の版へ戻す場合は、現在のプラグインを退避してから、Releasesの該当版をインストールします。
| 症状 | 確認すること |
|---|---|
| プラグインが一覧に出ない | インストール先のYMM4、対応版、再起動を確認します。同名プラグインを複数のフォルダーに手動配置していないかも確認してください。 |
VCRUNTIME140 / MSVCP140などが見つからない |
上記のVisual C++再頒布可能パッケージ(x64)を導入・修復します。個別のDLLを非公式サイトから入手しないでください。 |
| AMFの初期化に失敗する | Radeonドライバーと選択したコーデックへの対応を確認します。本プラグインはYMM4が使用するGPUを引き継ぐため、複数GPU環境ではYMM4が使うGPUも確認してください。 |
| 偶数サイズが必要というエラー | YMM4側の出力解像度を確認します。幅・高さのどちらかが奇数だと出力できません。 |
| HEVCの動画を再生できない | 再生環境のHEVC対応を確認します。切り分けにはH.264での出力を試してください。 |
| 出力途中で失敗する・完了しない | プロジェクトを保存し、デバッグログを有効にして短い区間で再現を確認します。ログとエラー全文を添えて報告してください。 |
| 期待した速度が出ない | プロジェクトの描画負荷、解像度、GPUの同時利用などで速度は変わります。標準出力より常に速いことや、一定のfpsは保証していません。 |
急ぎの出力では、出力方式をYMM4標準のものへ戻して切り分けてください。
「デバッグログを書き出す」をオンにすると、動画と同じフォルダーに、出力ファイル名へ.amf_log.txtを付けたログが作られます。
例:テスト.mp4を出力した場合はテスト.mp4.amf_log.txtです。MP4の出力に失敗しても、ログが残っていれば調査に使えます。ただし、DLLの読み込み以前の失敗や保存先へ書き込めない場合などは、ログが作られないこともあります。
同じ出力名のログには追記されます。再現テストごとに別の出力名を使うと比較しやすくなります。調査後はチェックを外してください。
このプロジェクトのIssuesへ、次を添えてください。
- プラグインのバージョン、YMM4のバージョン、Windowsのバージョン
- GPU名とRadeonドライバーのバージョン
- 解像度・fps・コーデック・ビットレート方式・出力品質・プール枚数
- 再現手順、期待した結果、実際の結果、エラー全文、該当するデバッグログ
- 可能なら、共有可能な素材だけで作った短い再現プロジェクト
ログやYMM4のエラーレポートには、ファイルパス・ユーザー名・連絡先などが含まれる場合があります。公開前に内容を確認し、個人情報や非公開の素材を除いてください。
v0.1.1では、RX 6800 XT上でYMM4からのH.264出力と再生を確認しています。単体の検証ツールではH.264 / HEVC、AAC、全フレームのデコード、フレーム順序、色メタデータ、映像・音声の長さの整合を確認しました。
HEVCのYMM4実プロジェクト出力、実写の目視画質評価、長時間反復、キャンセル時の挙動、複数GPU・ドライバーの網羅検証は未完了です。旧VideoProcessor入力経路(P2)はv0.1.1で廃止済みです。今回の新経路は、所有RGB互換テクスチャを挟み、既存pool/回収へ統合した別実装であり、既定OFFのままです。
測定条件と検証済み・未検証の詳細は実測記録にまとめています。単体ベンチマークのfpsは、YMM4全体の書き出し速度ではありません。
本プラグインのコードはMIT Licenseです。原実装YMM4_NVEncPluginの著作権表示を維持しています。第三者コードの由来とAMF SDKのライセンス全文はTHIRD_PARTY_NOTICES.txtに収録しています。
動画制作で本プラグインを使うだけなら、本プラグイン独自の料金やクレジット表記義務はありません。YMM4本体、音声・画像・楽曲などの素材、コーデックに関する条件は別途確認してください。改変・再配布時の条件を含め、ライセンスの案内に整理しています。
不具合修正・ドキュメント改善・動作報告も歓迎します。開発環境、ビルド、検証、PR、CIリリースの手順はCONTRIBUTINGを参照してください。