Windows上ではK-Lite Mega Codec Packを入れてあるので再生できるのだが、Macで見たいとか言われたので、PanasonicのHDC-SD5で録画した166個のMTSファイルを一括変換すべく色々やってみた。
思いついた変換方法は、MTS→Avisynthスクリプト作成→VirtualDubで読み込み→AVI保存
とりあえずavsはファイル数分作ることにした。さっくりとPythonスクリプトで作成。(後述)
VirtualDubでジョブ処理をさせるためにjobsファイルを作成する。これもどうせ途中で止めたりしないので、1ファイルに「ファイルオープン」~「AVI保存」~「クローズ」までを処理数分繰り返して記述することにした。
カレントディレクトリにtemplate.avs、template.jobs、createJobs.pyを作成。中身はそれぞれ以下の通り。
template.avs
DirectShowSource("..$1")
BilinearResize(1920,1080)
template.jobs
VirtualDub.Open(U"D:datasmovieshogeavs$1.MTS.avs");
VirtualDub.SaveAVI(U"D:datasmovieshogeavi$1.avi");
VirtualDub.Close();
createJobs.py
import os
path=’./MTS’
filelist = os.listdir(path)
output_jobs = ”
for i in range(len(filelist)):
item=os.path.join(os.path.normpath(path),filelist[i])
filename = os.path.basename(item)
filebase = filename.replace(‘.MTS’, ”)
f = open(‘./template.avs’, ‘r’)
output = ”
for line in f:
line = line.replace(‘$1’, item)
output = output + line
f.close()
fo = open(‘./avs/’ + filename + ‘.avs’, ‘w’)
fo.write(output)
fo.close()
f_jobs = open(‘./template.jobs’)
for line in f_jobs:
line = line.replace(‘$1’, filebase)
output_jobs = output_jobs + line
f_jobs.close()
fo_jobs = open(‘./all.jobs’, ‘w’)
fo_jobs.write(output_jobs)
fo_jobs.close()
あ、MTSファイルはMTSフォルダに入れておくのと、aviフォルダ、avsフォルダを作っておく。
あとはPythonスクリプトを実行するだけで、all.jobsが出来上がるので、VirtualDubのファイルメニューからRun Scriptを実行するだけ。VirtualDubの保存時のエフェクトやCODECはあらかじめVirtualDub上で設定しておく。