FFmpegを利用して、動画ファイル内の音声や映像のみを分離して保存する方法を備忘録的に投稿しておきます。
エンコードを確認
動画を作成していると、編集で利用する動画の音声や映像を分離しておきたいと考えることがあります。
FFmpeg の[-vn]や[-an]オプションを利用すると、対象とした動画内の音声や映像のみを分離して保存ができます。
また、編集や再エンコード時を考慮して、無劣化で抽出したい場合には利用されているエンコーダーの種類を確認しておきます。
例えば、こんな感じ。
.\/bin/ffmpeg -i 'sample.mp4'
これで、指定したmp4ファイルの映像と音声のエンコーダーが出力されます。
赤枠内が映像(例の場合は[h264])、青枠内が音声(例の場合は[aac])のエンコーダーが表示されます。
[-vn]や[-an]オプションで分離して再出力
エンコーダーが確認できたら、[-vn]や[-an]オプションで音声(または映像)を分離して再出力できます。
音声の場合は、こんな感じ。
.\/bin/ffmpeg -i "sample.mp4" -vn -y -acodec copy "audio-only.aac"
[copy]オプションを使うと、エンコードをそのまま出力されるので劣化が少なく分離が可能です。
同様に映像の場合は、こんな感じ。
.\/bin/ffmpeg -i "sample.mp4" -an -y -vcodec copy "video-only.mp4"
パラメータの “a”(audio) を “v”(video)に置換する感じで映像のみで出力されます。
編集時の再利用するような映像や音声の素材を作る際に便利です。
まとめ
今回はFFmpegを利用して、動画ファイル内の音声や映像のみを分離して保存する方法を書きました。
[-vn]や[-an]オプションを利用すると、対象とした動画内の音声や映像のみを分離して保存が可能です。
その際に、先にエンコーダーを確認しておくことで[copy]オプションを指定して劣化を少なく分離して出力できます。
[FFmpeg]で動画ファイル内の音声や映像のみを分離して保存したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。