⧅ffmpeg AVCHD形式のmtsに変換する
⧅ffmpegに戻る。
概要
AVCHDはMP4と同じコーデック(Codec)で、H264を採用しています。ffmpegの-c:vまたは-vcodecのオプションでlibx264を指定することが多く、-c:aまたは-acodecオプションではac3を指定するのが普通です。
AVCHDの拡張子は*.mp4ではなく、*.mtsあるいは*.m2tsが使われます。*.mtsや*.m2tsだけでAVCHDであると認識して動画を再生するのはPCならではの動作でVLC Media Playerなどでは直接再生が出来ます。ほとんどの民生機器(ビデオカメラ、動画撮影機能付きデジタルカメラ、ムービープレイヤー)ではAVCHD形式でオーサリングされた状態のファイル・ディレクトリ構造でもっとAVCHD形式であることを認識し、オーサリングされた構造から様々な機能な機能を提供します(字幕、タイトル、チャプター)。
つまりAVCHDオーサリングツールがなければ正式なAVCHD形式にはできないということを意味していますが、まずは動画形式を変換する必要の無い*.mts形式の動画ファイルを作っておくことはAVCHD形式のBlu-rayやDVD、USBメモリ、SD-Cardを生成するための第1歩になります。
https://archived.regza.com/regza/bd_dvd/cs/info/avchd/index.htmlにあるように様々なAVCHDの方式の違いによって読み込める動画が異なるという機器による差異もあるので、一筋縄にはいかないということがありそうですが、標準的なAVCHDが作れれば、その差に関係なく読み込ませることが可能であるかもしれません。やってみないとわかりません。自分でレコーダが対応しているAVCHD USBディスクを作るのが管理人の目的でもありました。
なんらかの動画ファイルがあるとして、*.mts形式を生成するには以下のようなffmpegコマンドを使います。例えばDVDメディアから*.vobファイルを抽出し、これをAVCHD形式に変換するには以下のようなコマンドを使います。
>ffmpeg -ss 90 -to 00:11:00 -i "InputMain.vob" -c:v libx264 -acodec ac3 -b:v 8000k -r 29.97 -deinterlace "OutputMain.mts"
のようにすることで変換ができます。それぞれのオプションの意味は以下のとおりです。
-ss : 動画の開始時間[秒]
-to : 動画の終了時間[hh:mm:ss]
-i : 入力動画ファイル名
-c:v または -vcodec : コーデック名を指定します。主にlibx264を指定します。
-c:a または -acodec : オーディオコーデック名を指定します。主にac3を指定します。mp4の場合はaacでしたね。
-b:v : ビデオビットレートを指定します。例では8000kbpsを指定しています。DVDではこれぐらいの高ビットレートで記録されています。画質を落とさないようにするにはffprobeコマンドで入力動画の動画情報を確認して同じようなビットレートを指定するとよいでしょう。
-r : フレームレートを指定します。例ではNTSC規格でよく使われている29.97fpsを指定しています。
-deinterlace : インターレースにしない設定です。プログレッシブ走査というものを採用しようとするものです。インターレースは走査をフレーム毎に奇数だけ偶数だけを行うもので縞模様が気になることが発生する方式です。画質に拘らないときに使うモノです。
変換した*.mtsファイルだけではあまりやくにたたないので、オーサリングツールを使うことになるでしょう。管理人もまだ使いこなせていませんがmultiAVCHDというオーサリングツールが無料で優秀っぽいです。multiAVCHDが使いこなせる日が来たら記事にするかもしれません。
⧅ffmpegに戻る。