この記事は
ffmpegを使って映像+音声の動画ファイルから映像のみの動画ファイルと音声ファイルを作成する方法のメモ。
やりかた
まずはffmpegに放り込んでどんなストリームが存在するかをチェック
ffmpeg -i source.mp4
例えば動画のみの抜き出しなら以下の要領(0:映像ストリーム,1:音声ストリーム)
ffmpeg -i source.mp4 -vcodec copy -map 0:0 destination.mp4
例えば音声のみの抜き出しなら以下の要領(0:映像ストリーム,1:音声ストリーム)
ffmpeg -i source.mp4 -acodec copy -map 0:1 destination.mp4
例えばまるごとコピーなら以下の要領(0:映像ストリーム,1:音声ストリーム)
ffmpeg -i source.mp4 -vcodec copy -map 0:0 -acodec copy -map 0:1 destination.mp4
申し訳程度の解説
-mapを使用して元の動画のどのストリームを使用するかを指定する
-map <source_file_index>:<stream_index>
-mapだけを指定すると(多分)再エンコードされるので-vcodecとか-acodecで使用するコーデックを指定する。今回はトランスコードとかしないのでcopyでいいのだが、これは指定したい-mapの直前に書く。
まとめると以下の様な書き方をすればOK。
ffmpeg <-i input> <-Xcodec copy -map 0:X> <-Xcodec copy -map 0:X> ... <output>
感想
- mapの指定方法微妙にわかりづらいっすね