BDのチャプター分割(チャプター切り出し)の方法 (2) | 備忘のためのメモ

BDのチャプター分割(チャプター切り出し)の方法 (2)

◆tsMuxeRでバッチ処理

コマンドライン版のtsMuxeRは
$ "tsMuxeRへのパス" "メタファイル名.meta" "出力ファイル名"
で実行する形のようだ。
メタファイルの形式は、tsMuxeRGUIで「Save meta file」で出力される形式。
※入力ファイル名はメタファイルの中に記述。

チャプター分割をGUIでひとつづつやっていくのは大変なので、

チャプターファイル名1,開始時間(秒),終了時間(秒)
チャプターファイル名2,開始時間(秒),終了時間(秒)
チャプターファイル名2,開始時間(秒),終了時間(秒)
   ・・・・・・・・・・・・・

のようにチャプターをリスト化したファイル「chapterlist.txt」を用意しておき、これを一行ずつ
読み込んでチャプター分割するようなバッチ処理「BD_chapter_cutter.sh」を作る。
リストファイルはBDInfoの出力をもとに作る。
$ BD_chapter_cutter.sh "本編ファイル.m2ts" "出力先フォルダ"
で実行。

[BD_chapter_cutter.sh]
tsMuxeR_path=~/program_files/tsMuxeR/tsMuxeR;
in_file=$1;
outfolder=$2;

echo 本編ファイル:"${in_file}";
echo 出力フォルダ:"${outfolder}";

cat chapterlist.txt|while read chapter;
do
echo "${chapter}";
chaptername=`echo "${chapter}"|cut -d',' -f1`;
start_time=`echo "${chapter}"|cut -d',' -f2`;
end_time=`echo "${chapter}"|cut -d',' -f3`;

echo チャプターファイル:"${chaptername}".m2ts;
#下記3行は改行位置を変えないこと
#2行目・3行目の内容はtsMuxeRGUIで確認。コーデック、track=PIDの10進数
echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --cut-start=${start_time}s --cut-end=${end_time}s --vbv-len=500 >temp.meta;
echo V_MPEG4/ISO/AVC, "$in_file", fps=29.970, insertSEI, contSPS, track=4113 >>temp.meta;
echo A_LPCM, "$in_file", track=4352 >>temp.meta;

cat temp.meta;
$tsMuxeR_path temp.meta "${outfolder}${chaptername}.m2ts";

done;


cat chapterlist.txt|while read chapter;
で一行ずつ取り出し。
for chapter in `cat chapterlist.txt`;
だと、半角スペースを含む行の場合にスペースを改行として処理されてうまく取り出せない。