[PC]
これだけやってみたものの、結局ffmpegで
ffmpeg -i a.ts -vcodec copy -acodec ac3 -ab 320k aa.m2ts
などど指定したら一発で完全なファイルができたので何もする必要がなかったorz
というわけでMultiAVCHDで音ずれに悩んでる場合はこれでm2tsに変換しておこう。
↓残骸('A`)
動作に必要なツール:
Windowsバッチファイルのあまりの貧弱さに泣いた('A`)
動作としては
- tsファイルからAAC音声を取り出す
- AACをwavにする
- wavをAC3にする
- tsファイルの動画とAC3音声を取り出しながらm2tsにする
というだけ。
ただし、元のtsファイルに音声のずれ情報(Stream delay)が書いてあるので、これをちゃんと保持したm2tsファイルを作るのがポイント。MultiAVCHDはこれをやってないようで。
MultiAVCHDにts(AAC音声)を放り込むと音がずれる問題への対処として作ってみたけど
ファイルによって音ずれが直ったり直らなかったりする。
ダメなファイルはmurdoc cutterやHDTVtoMPEG2で先頭数秒を切ってからこれに通すと直るっぽい。
(TSMuxeRのカット機能ではダメだった)
┌(┌;・o・)┐cciconv で自動カットだと…
よし作ってくる(
↓のテキストをコピペして***.sh とでも拡張子と適当なファイル名を付けて
「bash %~dp0\***.sh "%1"」とだけ書いた***.batファイルも作ると
ドラッグドロップ1発で変換してくれる。
#!/bin/sh set -u #------------------- # 設定 #------------------- tsmuxer="D:\tsmuxer.exe" #tsMuxeR.exe の場所 aacdec="D:\faad.exe" #faad.exe の場所 ac3enc="D:\ffmpeg.exe" #ffmpeg.exe の場所 #windows用(でもLinuxは知らん) inputts=`echo $1 | sed 's@\\\@\\/@g'` inputfile=`echo $inputts | sed -e s/\.ts$//` #delay取得とAAC作成 delay=`$tsmuxer "$inputts" | grep 'Stream delay:' | sed -e 's/[^0-9-]//g'` echo timeshift=${delay}ms exit aactrack=`$tsmuxer "$inputts" | grep -B 1 'Stream\ type:.*AAC' | head -n 1 | sed -e 's/[^0-9]//g'` echo MUXOPT --demux > "${inputfile}.meta" echo A_AAC, "$inputts",track=${aactrack} >> "${inputfile}.meta" $tsmuxer "${inputfile}.meta" `dirname "$inputts"` #AC3作成 $aacdec $inputfile.track_${aactrack}.aac rm "${inputfile}.track_${aactrack}.aac" echo ${inputfile}.track_${aactrack}.aac $ac3enc -i ${inputfile}.track_${aactrack}.wav -ab 320k ${inputfile}.track_${aactrack}.ac3 rm "${inputfile}.track_${aactrack}.wav" #m2ts作成と先頭カット mpegtrack=`$tsmuxer "$inputts" | grep -B 1 'Stream\ type:.*MPEG-2' | head -n 1 | sed -e 's/[^0-9]//g'` echo MUXOPT > "${inputfile}.meta" echo V_MPEG-2, "${inputts}",track=${mpegtrack} >> "${inputfile}.meta" echo A_AC3, "${inputfile}.track_${aactrack}.ac3",timeshift=${delay}ms,track=${aactrack} >> "${inputfile}.meta" $tsmuxer "${inputfile}.meta" "${inputfile}.m2ts" rm "${inputfile}.track_${aactrack}.ac3" rm "${inputfile}.meta"