録画したTSファイル、
Blu-rayレコーダーで再生できる形にしませんか?
bdav は、PT3 などで録画した MPEG2-TS を家庭用 Blu-ray レコーダー/プレイヤー互換の BDAV 形式に変換する Linux 用のフリーコマンド。Wine 不要、再エンコード不要。コマンド 2 つで、録りためたアニメがディスクに焼ける形になります。
# インストールから BDAV 作成まで、たったこれだけ $ uv tool install --from git+https://github.com/sorshi/bdav bdav $ bdav author --input-dir /mnt/rec/7749 --output /work/disc1
こんな経験、ありませんか?
bdav が全部解決します
BD-RE Part 3 (BDAV) 規格を Python 標準ライブラリだけでネイティブ実装。だからシンプルで壊れにくい。
Linux だけで完結
Wine もサードパーティ製バイナリも不要。公開規格 BD-RE Part 3 (BDAV) のネイティブ実装で、Python 標準ライブラリのみで動作します。macOS でも動きます。
無劣化・音声もそのまま
ffmpeg や tsMuxeR による再多重化・再エンコードは行いません。放送そのままの画質で、ステレオ/サラウンド/二カ国語といった音声構成も正しく保持されます。
サブタイトル自動取得
アニメ番組表データベース「しょぼいカレンダー」と連携し、各話のサブタイトルを自動で解決。「#1 はじまりの章」のような番組名を手入力なしで付けられます。
foltia ANIME LOCKER 連携
foltia 形式のファイル名 ({TID}-{話数}-…) からタイトルと話数を自動抽出。CMカット情報を元にしたチャプターの自動生成にも対応します。
プレビューしてから安心実行
「プレビュー → 確認 → ビルド」の2段階フロー。プラン(JSON)を編集してタイトルを微調整することも、CI/自動化向けの一発実行もできます。
実機再生確認済み
出力した BDAV ファイルツリーを BD-R/BD-RE に書き込めば、家庭用 Blu-ray レコーダー/プレイヤーでそのまま再生できます。
使い方は3ステップ
録画ディレクトリを指定してプランを作り、確認して、ビルドするだけ。
プランを作成 — サブタイトルは自動取得
録画ファイルのあるディレクトリを指定すると、しょぼいカレンダーから各話のサブタイトルを取得したプラン(JSON)が生成されます。
$ bdav plan --input-dir /mnt/ts/7749/ --plan ./7749.plan.json
プランを確認・編集(任意)
生成された JSON にはタイトル・話数・チャプターなどが入っています。「#1 レプリカは、夢を見ない。」のように整形済み。気になる箇所があればテキストエディタで直せます。
"formatted_title": "#1 レプリカは、夢を見ない。", "channel_name": "AT-X", "rec_time": "2026-04-07T23:30:00"
ビルド — BDAV ツリーが完成
あとは出力を待つだけ。できあがった BDAV ディレクトリを UDF 2.5 で BD-R/BD-RE に書き込めば、レコーダーで再生できます。
$ bdav build --plan 7749.plan.json --output /mnt/ts/bdav/
# 急いでいるなら、プレビュー付きワンショット実行でもOK $ bdav author --input-dir /mnt/foltia/7749 --output /work/disc1 \ --channel-name BS11 --channel-number 211 # 何が起きるか見るだけ (dry-run) $ bdav author --input-dir /mnt/foltia/7749 --dry-run
インストール
依存ライブラリはゼロ。uv か pipx なら、システムの Python を汚さずに1行で入ります。
# A. uv (推奨) $ curl -LsSf https://astral.sh/uv/install.sh | sh $ uv tool install --from git+https://github.com/sorshi/bdav bdav # B. pipx $ pipx install git+https://github.com/sorshi/bdav # C. pip + venv $ git clone https://github.com/sorshi/bdav.git && cd bdav $ python3 -m venv .venv && source .venv/bin/activate $ pip install -e .
対応環境
| OS | 最小バージョン | 備考 |
|---|---|---|
| Debian | 10 (buster) 以降 | Debian 12 推奨 / glibc 2.28+ |
| Ubuntu | 18.04 LTS 以降 | 24.04 LTS 推奨 / glibc 2.27+ |
| RHEL / AlmaLinux / Rocky | 8 以降 | glibc 2.28+ |
| macOS | 12 Monterey (Intel) / 11 (Apple Silicon) | 純 Python のため動作 |
| Windows | WSL2 | ネイティブ動作は未確認 |
| 入力形式 | 処理 |
|---|---|
| .m2ts (192バイトTS) | そのまま STREAM/ に配置 (6144バイト境界に整列) |
| .ts / .m2t (188バイトTS) | PCR から到着時刻を補間し、192バイト M2TS にラップ |
よくある質問
無料で使えますか?
画質は落ちませんか?
作った BDAV はどうやってディスクに焼くのですか?
アニメ以外の録画にも使えますか?
--input と --title でファイルごとにタイトルを手動指定すれば、任意の MPEG2-TS 録画をオーサリングできます。しょぼいカレンダーに繋がらないときは?
--no-api フラグを付けると外部 API への問い合わせをスキップして動作します。タイトルは手動指定またはプラン JSON の編集で設定できます。