AviQtlのお部屋
公式サイト / Codebergリポジトリ / GitHubミラー / リリース / Wiki
AviQtlとは...
AviUtl 1.10 & ExEdit 0.92の操作感を踏襲しつつ、AviUtlを超える性能を持つ動画編集ソフトを開発するプロジェクトです。
主な特徴
- AviUtlに酷似した直感的なUI
- GPUを使った高速で強力なエフェクト
- VST3やLV2等の音声エフェクトに対応
- Linux、Windows、macOSに対応
★ インフォメーション ★
開発リセットのお知らせ
AviQtlは2026年5月末日を持って、開発をリセット致します。理由は以下のとおりです。
- Qt Quick独自のレンダリングループとCompute Shaderとの相性が悪く、実装が困難
- 同様に、ECSとの相性が悪く、最適化が困難
今までのQt QuickベースのAviQtl(以降『AviQtl Legacy』)はコミット履歴を含めてlegacyブランチに移動しました。現在のmainブランチには、Qt Widgets及びbgfxをベースとした新しいAviQtl(以降『AviQtl』)が置かれています。
AviQtl Legacyによって得られた知見
- QtとFFmpegを使えば、動画編集ソフトの高品質なプロトタイプを高速に実装できる。
- Compute Shaderの開通が難しい為、GPUゼロコピーを目指すならQt Quickベースのプレビュー実装は不適。
- QMLとQSBを用いると、拡張性の高いアーキテクチャを構築できる(少なくともvertとfragは十分に機能する)。
AviQtlの今後
- 開発リセット直後はコア機能を実装するためプルリクエストをお受けできません。御了承下さい。
- AviQtl Legacyのソースコード及び最終バージョン(AviQtl Legacy 0.0.95)のリリースは、引き続きGNU Affero General Public License Version 3 or laterでライセンスされ、公開を続けます。しかし、動画編集ソフトとしての実用性はありません。AviQtl Legacyの今後のアップデートや互換性は保証されません。
★ ダウンロード ★
- 現在AviQtlはLinux(x86_64)、macOS(ARM64)、Windows(x86_64)をターゲットにしております。
- 最新のパッケージが使えないディストリビューション(Ubuntu等)では正しく動作しない可能性がございます。
- CachyOSでのご利用を推奨しております。
- Linuxの場合、Qt6全般、LuaJIT、Vulkan実装(Mesa等)、FFmpeg、Carlaをインストールします(macOS、Windowsは依存関係を同梱しているため追加のインストールは不要です)。
- お使いのPCに最適なビルドをダウンロードします。
- ダウンロードしたファイルを展開します。
AviQtlに実行権限を付与します。AviQtlを実行します。
Linux環境において、Ubuntu等の保守的なディストリビューションをご利用の方は、DistroboxでArch Linuxコンテナを作成し、その中で実行することを強く推奨致します。
★ ビルド手順 ★
Linux / macOS / Windowsの各環境でBUILD.pyを利用してビルド可能です。
ビルドターゲットはOSから自動判定されます。通常はpython BUILD.pyのみで実行可能です。
リポジトリをクローンし、必要に応じて仮想環境を作成します。
git clone https://codeberg.org/taisho-guy/AviQtl.git
cd AviQtl
python3 -m venv .venv
python -m pip install --upgrade pip PySide6
Linux
distrobox/podmanを使用してビルド環境を分離します。
- 依存関係のインストール:
pacman -S --needed distrobox podman python pyside6 git(Archの場合) - ビルド:
python BUILD.py --arch - 実行:
./build/AviQtl
macOS
Homebrew経由で依存関係を解決し、.appバンドルを作成します。
- 依存関係のインストール:
brew install python pyside git - ビルド:
python BUILD.py --xcode - 実行:
open ./build/AviQtl.app
Windows (MSYS2)
- 依存関係のインストール:
pacman -S git mingw-w64-ucrt-x86_64-pyside6 - ビルド:
python BUILD.py --msys2 - 実行:
./build/AviQtl.exe
Windows (MSVC - 非推奨)
環境構築の複雑さから非推奨としています。
- 準備: VS2022 C++ツールセット、公式Qt(MSVC x64版)、vcpkg。
- ビルド:
python BUILD.py --msvc --qt-dir <path> - 実行:
.\build\AviQtl.exe
★ Q & A ★
開発のきっかけは?
OSの壁と決定的敗北
私が愛用するCachyOS上でAviUtlを運用しようとして失敗したことがきっかけです。AviUtlのためだけにWindows環境を維持し続けることは私にとって受け入れがたいものでした。
肥大化したエコシステム
理由は違えど、AviUtlを「仕方なく」使い続けている方は少なくないはずです。長年の拡張によって肥大化した「ハウルの動く城」のようなエコシステムは、不満を抱えながらも手放すことができない存在となっています。
プロジェクトの目標とミッション
私は、鹿児島県立甲南高等学校の課題研究において、この現状を打破すべくAviQtlの独自開発を決意しました。
個人的な目標: Domino、VocalShifter、REAPER、AviUtlをはしごすることなく、Linux上のAviQtlのみで音MADを制作すること。
AviQtlのミッション: AviUtlを「仕方なく」使っている方々の最適解になること。
名称の由来は?
AviQtlは、「AviUtl」と「Qt」を組み合わせた造語です。AviUtlの操作感を継承しつつ、QtによるモダンなUIとクロスプラットフォーム対応を実現する設計思想を表しています。
アイコンの由来は?
QtとAviUtlを組み合わせた本プロジェクトのアイデンティティを表現しています。
なぜAviUtlのクローンを開発しているのですか?
AviQtlは「AviUtlの再発明」ではありません。AviUtlを強く意識していますが、その中身は全く異なります。
| 鳥瞰図 | AviQtl | ExEdit0 | ExEdit2 | Beutl | YMM4 |
|---|---|---|---|---|---|
| 基盤 | Qt Quick | Win32 API | Win32 API | SkiaSharp | WPF |
| 処理 | データ志向型並列処理 | シングルスレッド | マルチスレッド | SceneGraph並列描画 | 基本シングルスレッド |
| メモリ | 64bit | 32bit | 64bit | 64bit | 64bit |
| 描画 | Vulkan/Metal/DX12 | GDI | DX11 | OpenGLバックエンド | WPF |
| 音声 | Carla (VST3/LV2等) | 貧弱 | 貧弱 | 貧弱 | 合成音声対応 |
| 拡張 | LuaJIT/C++/QML/GLSL | Lua/C++ | LuaJIT/C++ | C# | EXO |
| OS | Linux/Windows/macOS | Windows | Windows | Windows/macOS/Linux | Windows |
AviQtlはExEdit2も解決できない構造的弱点を根本的に覆します。
1. ECSがもたらす「データ指向」の革命
従来のオブジェクト指向(OOP)的なマルチスレッドでは、各クリップを「オブジェクト」として扱い、メモリ上のあちこちに散らばったデータを読み込むたびにレイテンシが発生します。AviQtlのECSは、データをメモリ上に「隙間なく、連続して」配置し、CPUのキャッシュ効率を極限まで高めます。
2. メモリ管理の「近代化」と「一貫性」
C++23のスマートポインタ(RAII)とアロケータ最適化を採用し、AviUtlのプラグインごとにバラバラだったメモリ管理を一元化。原因不明のクラッシュを構造的に最小化しています。
3. Qt6 / QML による「疎結合なUIアーキテクチャ」
UIスレッドとレンダリング(Vulkan)スレッドを完全に分離。重いレンダリング中でもタイムラインの操作が一切妨げられず、High-DPI環境でもUIがぼやけることはありません。
4. クロスプラットフォーム・コア(OSからの自立)
特定のOSに縛られ続ける制作上のリスクを排除。Linux上で真のパフォーマンスを発揮できるのはもちろん、他OSでもコアを書き換えることなく最大のパフォーマンスを得られます。
AviUtlのプラグインやスクリプトはそのまま使えますか?
いいえ。仕組みが根本から異なるためバイナリレベルでの互換性はありません。互換レイヤーを実装する予定も有りません。しかし、LuaJITを採用しているため、スクリプトの移植性は高く、AviUtl以上に柔軟な拡張システムを備えています。
課題研究が終わった後も開発は続きますか?
はい。このプロジェクトは私の「音MAD制作をLinuxで完結させる」という目標から始まっています。研究期間終了後も、私自身のメインエディタとして、そしてAviUtlの代替を待つ方々のために開発を継続します。
★ 関連リンク ★
AviQtlは、多くの素晴らしいプロジェクトの上に成り立っています。この場を借りて、感謝を申し上げます。
| AviUtl | 非自由 | 本プロジェクトがリスペクトしている、KENくん氏開発の動画編集ソフト「AviUtl」の公式サイトです。 |
| Carla | GPLv2+ | VST3やLV2等の音声エフェクトをホストするためのバックエンドとして利用しています。 |
| AviQtl | AGPLv3+ | Codeberg上のメインリポジトリです。開発の最前線であり、ソースコードや最新リリースが公開されています。 |
| FFmpeg | GPLv2+ | 動画・音声のデコード、エンコード、変換を司る、映像処理の要です。 |
| LuaJIT | MIT | 非常に高速なJITコンパイルが可能なLuaエンジンで、エフェクト記述や拡張機能に使用しています。 |
| Qt | GPLv3 | UI/UXの構築にQt QuickおよびQMLを採用し、クロスプラットフォームで軽快な操作感を実現しています。 |
| Remix Icon | Remix Icon License v1.0 | AviQtl内のシンボルアイコンに採用されています。 |
| Vulkan | Apache 2.0 | GPUを最大限に引き出し、リアルタイムでの高度な描画とエフェクト処理を支える基盤APIです。 |
| Zrythm | AGPLv3 | 音声プラグイン(Carla等)の対応において、実装を参考にしました。 |
★ 使用上の注意 ★
AviQtlはGNU Affero General Public Licenseに基づいて公開されている自由ソフトウェアです。