手元にチャプター入りの動画ファイルがあって、音声だけ取り出して、勉強したり、音楽を楽しみたいことはありませんか?以下の手順でできたので、まとめておきます。なお、こちらのサイトを参考にやってみました。ありがとうございます。
ツール類の準備
私はMacを使っていたので、Homebrewをつかってツールを準備します。Homebrewについては調べるとそれなりに情報でてくると思いますので、ここでは割愛します。
$brew install ffmpeg
$brew install mkvtoolnix
上記でかんたんにツールの準備は完了です。
分割
それでは実際に動画のファイルを分割していきます。ここでは元々の動画ファイルをorg.m4vとしています。
$ mkvmerge -o output.m4v --split chapters:all org.m4v
mkvmerge v65.0.0 ('Too Much') 64-bit
'org.m4v': Using the demultiplexer for the format 'QuickTime/MP4'.
'org.m4v' track 0: Using the output module for the format 'AAC'.
'org.m4v' track 1: Using the output module for the format 'AVC/H.264'.
'org.m4v' track 3: Using the output module for the format 'QuickTime compatible video'.
The file 'output-001.m4v' has been opened for writing.
'org.m4v' track 1: Extracted the aspect ratio information from the MPEG-4 layer 10 (AVC) video data and set the display dimensions to 1920/1080.
Progress: 5%
The cue entries (the index) are being written...
The file 'output-002.m4v' has been opened for writing.
Progress: 10%
The cue entries (the index) are being written...
.
.
.
同一フォルダにoutput-001.m4v output-002.m4v とチャプタ毎に分割されたファイルが出力されているはずです。
変換
次に分割したファイルを音声のみのファイルに変換をします。すべてのファイルを変換するのがめんどくさいので、for文で実行しています。
$ for i in {001..022}; do ffmpeg -i output-$i.m4v -vn -acodec copy output-$i.m4a; done
これで全てのファイルをm4aに変換ができました。
問題が発生
実際にMacのミュージック(旧iTunes)に取り込んで再生したが、契約しているiCloudミュージック(旧iTunes Match)と同期が始まらない、なぜかと思ったらどうやらファイルを音楽と認識していない模様。色々調べてみると字幕のストリームが含まれてしまい、それで音楽と認識していない模様 なので、字幕のストリームを削除する。
$ for i in {001..022}; do ffmpeg -i output-$i.m4a -map_metadata -1 newoutput-$i.m4a; done
これで問題が解消された。
つまり整理すると変換時に同時に削除できた模様
$ for i in {001..022}; do ffmpeg -i output-$i.m4v -map_metadata -1 -vn -acodec copy output-$i.m4a; done