汎用プラグイン

aviutl2-audio-rec

スクリーンショット

概要

録音してwavファイルに保存してタイムラインに挿入

詳細説明

standard-readme compliantLicense: MIT

AviUtl2(ExEdit2)のタイムラインを再生しながら、ワンボタンでマイク音声を録音し WAV ファイルとして保存する Rust 製プラグインと CLI クライアント。

AviUtl2 の汎用プラグイン(.aux2)が Named Pipe サーバーとして常駐し、CLI クライアントからの録音コマンドを受け取って Windows WASAPI 経由で録音セッションを制御します。Stream Input のプロファイルと組み合わせることで、コントローラーの1ボタン操作で録音の開始・停止ができます。録音停止後は収録した WAV ファイルがタイムラインのカーソル位置に自動挿入されます。

背景

AviUtl2(ExEdit2、KENくん氏による 64bit 対応版)でナレーションやスクラッチトラックを収録する際、NLE と外部の録音ソフトウェア(DAW)を行き来するオペレーションが必要です。本プロジェクトはこのコンテキストスイッチを排除し、AviUtl2 を操作したまま外部ハードウェアのボタン1つで録音を完結させることを目的としています。

GUI の操作をエミュレートするのではなく、Named Pipe を通じて AviUtl2 プロセス内の録音処理を直接制御するため、ウィンドウのフォーカス状態や画面レイアウトに依存しない安定した自動化が実現できます。

対象: 旧 AviUtl(32bit)ではなく AviUtl2(ExEdit2、64bit) のみを対象とします。

インストール

前提条件

  • Windows 10 または Windows 11(64bit)
  • AviUtl2(ExEdit2)がインストール済みであること

動作確認は AviUtl2(ExEdit2)開発時点の最新版で行っています。AviUtl2 のバージョンアップ後に動作しない場合はリリースページで対応状況を確認してください。

リリースからインストール(推奨)

  1. GitHub Releases から最新版の zip をダウンロードする。
  2. zip を展開する。
  3. aviutl2_audio_rec.aux2C:\ProgramData\AviUtl2\plugins\ にコピーする。
  4. audio_rec_cli.exe を任意の場所(例: C:\ProgramData\AviUtl2\)にコピーする。
  5. AviUtl2 を起動するとプラグインが自動的に読み込まれ、Named Pipe サーバーが起動します。

ソースからビルド

ビルドには追加で以下が必要です。

  • Rust toolchainx86_64-pc-windows-msvc ターゲット
  • aviutl2-cli — ビルド・デプロイ・パッケージング用 CLI ツール(au2 コマンド)
  • aviutl2-rsCargo.toml で自動取得)

aviutl2-rs は開発中の crate であり、API の破壊的変更が発生する可能性があります。

aviutl2-cli は Releases からダウンロードするか、cargo-binstall でインストールできます。

cargo binstall aviutl2-cli

リポジトリをクローンし、初回セットアップを実行します。

git clone https://github.com/beive60/aviutl2-audio-rec.git
cd aviutl2-audio-rec
au2 prepare

au2 prepare は AviUtl2 本体のダウンロード・展開と、設定ファイルの JSON Schema 出力、成果物へのシンボリックリンク作成を一括で行います。

開発ビルド

au2 develop

プラグイン(.aux2)と CLI(.exe)をビルドし、開発用 AviUtl2 ディレクトリに自動で配置します。

リリースパッケージの作成

au2 release

リリース用にビルドしたパッケージ(zip)を生成します。生成された zip には以下のファイルが含まれます。

ファイル 説明
aviutl2_audio_rec.aux2 AviUtl2 プラグイン本体
audio_rec_cli.exe CLI クライアント

使い方

CLI

AviUtl2 が起動した状態で実行します。出力先 WAV ファイルパスは省略可能です(後述のデフォルト保存先を参照)。

録音を開始します。

audio_rec_cli.exe start "C:\recordings\take1.wav" # 出力先を明示
audio_rec_cli.exe start # デフォルト保存先 + 自動ファイル名(yyyymmdd-hhmmss.wav)

録音を停止します。停止後、収録した WAV がタイムラインのカーソル位置に自動挿入されます。

audio_rec_cli.exe stop

デフォルト保存先の設定

audio_rec_cli.exe config save-path "C:\録音"

バッファサイズの設定

audio_rec_cli.exe config buffer-size 4096
audio_rec_cli.exe config buffer-size 0 # デフォルト値に戻す

config save-path / config buffer-size サブコマンドで設定を保存します。設定は %PROGRAMDATA%\AviUtl2\audio_rec_cli.json に JSON 形式で永続化され、CLI とプラグイン UI メニューで共通利用されます。

AviUtl2 UI メニューでの操作

AviUtl2 の編集メニューに以下が追加されます。

  • 録音開始
  • 録音停止
  • 録音設定\保存先をクリップボードから設定
  • 録音設定\バッファサイズ\既定値 / 1024 / 2048 / 4096 / 8192

録音開始 は共有設定の保存先とバッファサイズを使用して録音を開始します。
保存先が未設定の場合はログにエラーを表示します。保存先を UI から設定する場合は、事前に設定したいディレクトリパスをコピーしてから 録音設定\保存先をクリップボードから設定 を実行してください。

例: "C:\録音" をコピーして UI メニューの「保存先をクリップボードから設定」を実行

設定後は start にパスを渡さなくてもデフォルト保存先と自動生成ファイル名(例: 20260426-001234.wav)が使用されます。デフォルトが未設定のままパスを省略すると明確なエラーが表示されます。

成功すると終了コード 0 で終了します。エラー時は標準エラー出力にメッセージが表示され、非ゼロの終了コードで終了します。

AviUtl2 録音パネルでの操作

AviUtl2 内のウィンドウクライアントとして 録音パネル が追加され、以下を常時操作できます。

  • 開始ボタン
  • 停止ボタン
  • 録音状態インジケータ(● 録音中 / ○ 停止中

録音パネルの開始/停止ボタンは、編集メニューの 録音開始 / 録音停止 と同じコマンド経路を利用します。
録音パネルは AviUtl2 内に直接埋め込まれ、独立した別ウィンドウは作成しません。

Stream Deck 統合

Stream Deck の「システム: コマンドの実行」アクションに以下のように設定します。

audio_rec_cli.exe start "C:\recordings\take1.wav"
audio_rec_cli.exe stop

デフォルト保存先を設定済みであれば、パスを省略できます。

audio_rec_cli.exe start

アーキテクチャ

[Stream Deck ボタンなど]
       |
       v
[audio_rec_cli.exe] --UTF-8(command)--> [Named Pipe]
       |                                      |
 audio_rec_cli.json                [aviutl2_audio_rec.aux2]
(デフォルト保存先)                    (ワーカースレッド)
                                              |
                                      WASAPI 録音セッション
                                              |
                                       WAV ファイル出力
                                              |
                                   タイムライン自動挿入
                               (カーソル位置・レイヤーに配置)

IPC プロトコル

項目 仕様
通信方式 Named Pipe(\\.\pipe\aviutl2_audio_rec
方向 CLI クライアント ↔ プラグイン(双方向)
エンコーディング UTF-8
ペイロード コマンド(start/stop)。startstart:<buffer_frames>:<path> 形式もサポート
最大ペイロード長 65,536 バイト

config save-path / config buffer-size サブコマンドはパイプを使用せず、%PROGRAMDATA%\AviUtl2\audio_rec_cli.json を直接更新します。

クレジット

  • sevenc-nanashi/aviutl2-rs — AviUtl2 Plugin SDK の Rust バインディング。本プロジェクトのプラグイン実装はこの crate に依存しています。
  • aviutl2-cli — AviUtl2 のプラグイン・スクリプト開発用コマンドラインツール。本プロジェクトのプラグインの開発はこのツールを使用して行われています。

コントリビューション

Issue や Pull Request を歓迎します。GitHub Issues で質問・提案を受け付けています。

詳細は CONTRIBUTING.md を参照してください。

実機回帰テスト

個人開発向けの最小実機回帰セットと運用ルールは以下を参照してください。

ライセンス

MIT © 2026 べいぶ