2017.12.28:「音声の準備その1/BDAV形式の場合」を加筆修正
2016.05.04:放置していたパラメータ(2009~12年頃の情報)をようやく修正
2016.04.01~04.06: 注意点を追加。
1920x1080 30pもBDAV/BDMV規格にはない模様。「無理矢理30P出力したい場合」追記
2014.01.27: 1280x720 30Pは BDAVの規格にないので修正。FFMpegのスクリプトを一部修正。
2012.05.24: 初出
フリーソフトを使ってBDAV/BDMV規格に対応したM2TSファイルを作成する方法の紹介です。中~上級者向けページとして解説するので、インストール方法などは解説しません。色々なツールがワンサカ出てきます。
以下のツールが必要
・Simple x264 Launcher (h264 動画を作成)
・Avisynth (Simple x264 Launcherで直接読み込めない動画はコレを経由させる)
・ Ffmpeg・携帯動画変換君 (このページでは音声をaacに変換するのに必要)
・tsMuxerGUI (音声と動画をm2ts形式にMuxするのに利用)
※地デジ録画ファイルの場合、以下も用意しておくと便利
・DGIndex(地デジ録画ファイルなどはこれで中間ファイルを作る)
・BonTsDemux(地デジ録画ファイルの音声と動画を分離)
h.264形式の動画を作成する
Avisynth + Simple x264 Launcher で変換するのが便利。
両ツールともに標準的なインストーラーが付いているので、指示に従ってインストールしればOK。
BDAV/BDMV規格の動画を作成する手順は以下
動画の規格チェック
BDAVの動画規格
・1980x1080 24p/30p/60i
・1440x1080 24p/30p/60i
・1280x720 24p/30p/60p
・720x480 24p/30p/60i
・色空間YV12(4:2:0)
※修正:1280x720 30pはBDMV・BDAVの正式な規格ではありません。
Adobe Encoreなどでは無劣化オーサリングできません。
(何故か再生出来るプレーヤーは結構ある(^_^; )
※1920x1080 30pもBDMV・BDAVの正式な規格ではない模様。
(以前みた資料には30pも書いてあった気がするけど、最近の資料には30pは無い)
(こちらも何故か再生出来るプレーヤーは結構ある)
用意した動画が上記の規格ならば、AviSynthは不要。直接Simple x264で読み込んでOK。
これ以外の動画の場合(または直接読み込めなかった場合)は、AviSynthでリサイズ&フレームレート調整を行います。
変なフレームレートの動画や異なるサイズの動画を読み込む例
# 1280x720 60fpsにするためのAviSynthのスクリプト例
DirectShowSource("D:\xxxx.mp4", fps=59.94,convertfps=true)
#読み込み時に60fps指定する場合
ChangeFPS(60000,1001)
#普通に読み込んだ後に59.94fps指定する場合
ConvertToYV12 #色空間をYV12に変更する場合
BicubicResize(1280,720)#1280x720 に変更する場合
return last
x264で変換(BDAV/BDMV形式に準拠)
作成したavsファイル(または動画そのもの)をSimple x264 Launcherに読み込ませます。
▲クリックで拡大:Simple x264 Launcher起動画面
変換する動画が1本だけなら、ドラッグ&ドロップでOK。
続いて変換設定画面が出ます。
▲クリックで拡大:Simple x264 Launcherの設定
注意点
- HD画質(1280x720以上)の場合はプロファイルHighにする。
- 出力形式は[h264 RAW]形式にする。
- 1920x1080 30P、1280x720 30Pなど特殊なパラメータが必要な形式は、Premiere Pro、Encoreなど (いずれも有料) 対応したツールでのオーサリングが必要。
- ※1920x1080 30P、1280x720 30P はBDMVの場合のみ確認。BDAVでは未確認。
オプションは以下 (確認日 2016.05.04)
一般的な出力
- 1920x1080 24p/23.976p の場合
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1
- 1920x1080 30iの場合
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --tff --sar 1:1
- 1440x1080 30iの場合
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --tff --sar 4:3
- 1280x720 60pの場合
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 60 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1
以下、1920x1080で無理矢理30P出力したいケース
- 1920x1080 30pの場合その1
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --fake-interlaced --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 - 1920x1080 30pの場合その2
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1
※その1のほうがお勧め。
1280x720で無理矢理 30P出力したい場合
- --bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pulldown double
720x480の場合
- 720x480 30i 16:9の場合
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --bff --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 - 720x480 30i 4:3の場合
--bluray-compat --vbv-maxrate 33000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --bff --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 10:11 - ※色空間がbt709ではなくsmpte170mになるので注意。
※トップフィールドファーストの場合は--tffを指定する
最大ビットレートについて
- BD-Rは規格上等倍速は36Mbps。
BDMVの最大ビットレートは40Mbps
BDAVの最大ビットレートは15Mbps
※なのでBDAVの場合「--vbv-maxrate 15000」にする
Open Gopについて
- Open Gopを指定すると、PCで再生した時にシークが非常に重くなる場合がある。
- ブルーレイ/PC兼用の場合は Closed GOPの方が良いかも?
変換設定の注意事項ここまで。
上記設定で*.264 (RAWファイル)形式で出力します。
もっと詳しい情報を確認したい場合はAuthoring a professional Blu-ray Disc with x264を参考にする。
上記パラメータの日本語情報としては
あたりが詳しい。
.264ファイルが出来上がったら、以下で解説する音声ファイルとMUXしてM2TSファイルを作成します。
音声の準備その1
BDMVの場合
このページに情報はありません。
- 音声はAC3またはLPCMです。
- 私の場合、こちらの手順で音声を用意し、multiAVCHD や Adobe Encore でオーサリングを行っています。
(上記の方法で音声を準備すれば特に気を付ける点は無いように思います。)
BDAV形式の場合
Wikipedia の BDAV を見ると、音声の対応フォーマットは「リニアPCM、AAC、AC-3(ドルビーデジタル)、DTS‐HDマスターオーディオ」となっているが、音声はなるべくAACで用意する。
aac形式の音声は、以下の手順で準備する。
地デジ録画ファイルを変換して利用する場合
BonTsDemuxでaac にDemuxするだけで、大抵の場合は再利用可能。
▲BDAV化する場合は、分離したaacファイルをそのまま利用可能です。
・スポーツ中継(音声5.1ch)とCM(音声2ch)音声切り替え
・ニュース番組(音声1ch)と通常番組(音声2ch)音声の切り替え
上記程度の音声切り替えであれば、BDAV形式ならば問題なく再生されます。
地デジ録画ファイル(洋画など2ヶ国語放送)
音声多重化された洋画番組などでは、生AACをそのまま使うと再生できなくなる場合もあります。この場合、BonTsDemuxの[サービス選択]と[音声ES] をいろいろ弄っていると上手く抜き出せる場合もありますが、一旦wavファイルで抜き出す方が無難です。
▲上手くaacで抜き出せなかった場合は、 BonTsDemuxで一旦wav形式にDemuxし、別ツール(ffmpeg等)でaacに変換する。
音声の準備その2
aac以外の音声は何らかの変換ツールを利用してaac形式にします。
サイト内の携帯動画変換君カスタマイズページ(mp4 をmp3に変換、mp3をmp4に変換)で紹介した方法の、[動画・音声⇒ aac 48000-(.mp4形式)]を利用してもOKです。
- ffmpeg -y -i InputFile.xxx -vn -acodec aac -ac 2 -ar 48000 -ab 128k -strict experimental -f mp4 -threads 8 OutputFile.mp4
- ffmpeg -y -i InputFile.xxx -vn -acodec aac -ac 2 -ar 48000 -ab 128k -strict experimental -f mp4 -threads 8 OutputFile.aac
- ffmpeg -y -i InputFile.xxx -vn -acodec aac -ac 2 -ar 48000 -ab 128k -strict experimental -f aac -threads 8 OutputFile.aac
赤字で示した例は、BDAV化出来なかったり、出来上がったDiscが無音になる場合があるので注意!aac音声はmp4形式で出力しておきましょう。またサンプリング周波数は48KHzにする必要があります。
aacなら何でも良いと思っていたのですが、結構厳しいですね(^_^;
※上記スクリプトを、長い事libfaac組み込み版で紹介してました。失礼しました。。。
個人的メモ
私はかなり古いFFMpegを利用していた頃のメモ。
2009年頃、FFMpegはaacはテスト段階で音質が悪く、libfaacを組み込んでいました。(長い事この情報を放置していた)
- ffmpeg -y -i InputFile.xxx -vn -acodec libfaac -ac 2 -ar 48000 -ab 128k -f mp4 -threads 8 OutputFile.mp4
- ffmpeg -y -i InputFile.xxx -vn -acodec libfaac -ac 2 -ar 48000 -ab 128k -f mp4 -threads 8 OutputFile.aac
- ffmpeg -y -i InputFile.xxx -vn -acodec libfaac -ac 2 -ar 48000 -ab 128k -f aac -threads 8 OutputFile.aac
動画と音声をM2TS形式にMUXする
tsMuxerGUIを利用する。
▲クリックで拡大
・作成したm2tsとaacファイルをドラッグ&ドロップし、
・M2TS形式で出力すればOK。
音ズレ補正は、BonTsDemux出力のaacが[-300ms]と表記されていれば[-300]と入力すればOKです。
BDAV形式でオーサリングしたい場合、出力名は00001から始まる[5桁の連番]にしておきます。
▲これでBDAV形式に対応したM2TSファイルが完成しました。
このファイルを、chotBDAVというツールでBDAV形式にオーサリングします。
この解説は以下の関連ページにて行っています。
関連ページ
chotBDAVの使い方: M2TS からBDAV Discを作成するツール: chotBDAV
地デジTSを無劣化で利用する場合: 地デジTS動画をBDAV規格のM2TSファイルに無劣化変換