動画ファイルから音声を抽出する
-vn
オプションで動画を無効にし、-acodec copy
で音声をそのまま抽出する。出力ファイルの拡張子は音声のコーデックに合わせて適切に指定する必要がある。
$ ffmpeg -i movie.mp4 -vn -acodec copy sound.m4a
参考:
FFmpeg で動画ファイルから音声だけ抜き出す | katz’s adversaria
FFmepg を使って動画から音声を抽出する | virtualiment
FFmpeg で動画から音声だけ無劣化抽出/分離 | SlackNote
Extracting WAV from MP4 while preserving the highest possible quality – Super User
音声を WAV 形式で抽出する
24 bit PCM データ形式で出力する。
$ ffmpeg -i movie.mp4 -vn -acodec pcm_s24le -f wav sound.wav
16 bit PCM データ形式でを出力する。
$ ffmpeg -i movie.mp4 -vn -acodec pcm_s16le -f wav sound.wav
音楽 CD 用の WAV ファイル形式を出力する。
$ ffmpeg -i movie.mp4 -vn -ac 2 -ar 44100 -acodec pcm_s16le -f wav sound.wav
参考:
動画から MP3 / WAV ファイルを作る、WAV ファイルの音声を動画の音声にする – Qiita
Extracting wav from mp4 while preserving the highest possible quality – Super User
How to determine AAC bit depth – Super User
音声を FLAC 形式で抽出する
$ ffmpeg -i movie.mp4 -vn -acodec flac -f flac sound.flac
オプション
-compression_level
: 圧縮レベルを指定する (範囲:0
~12
/デフォルト:5
)
参考:
FFmpeg でまとめて WAV を FLAC に変換、ついでにトラック番号設定 | たまごやさん
音声を FLAC 形式で圧縮する
-compression_level
オプションに圧縮レベルを 0
~ 12
で指定する。圧縮レベルは、値が大きい方が圧縮率が高くなる。圧縮レベルの指定を省略した場合、デフォルトの圧縮レベルとして 5
が使われる。
$ ffmpeg -i sound.wav -vn -acodec flac -f flac -compression_level 12 sound.flac
ドキュメント:
flac – Codecs | FFmpeg Documentation [Official]
参考:
Apple Lossless (ALAC) を FLAC に変換する | 記憶は人なり
最高圧縮率の FLAC ファイルに変換するにはどのようなコマンドを打てばいいのでしょうか? – Yahoo! 知恵袋
Setting FLAC compression in FFmpeg | Rubenerd
FLAC Compression Levels with FFmpeg | exobrain
FFmpeg’s FLAC compression levels & defaults settings – Stack Overflow
How to specify FLAC compression level when converting with avconv? – Ask Ubuntu
FLAC compression levels 8 versus 12 – HydrogenAudio Forum
オーディオ/音声の形式を変換する
参考:
WAV ファイルを MP3 に変換する
$ ffmpeg -i "input.wav" \ -vn -ac 2 -ar 44100 -ab 256k -acodec libmp3lame \ -f mp3 "output.mp3"
参考:
動画から MP3 / WAV ファイルを作る、WAV ファイルの音声を動画の音声にする – Qiita
Convert audio files to MP3 using FFmpeg – Stack Overflow
音量を調整する
次のコマンドを実行して音量を確認する。
$ ffmpeg -i movie.mp4 -vn -af volumedetect -f null -
出力から max_volume
の項目を確認する。
音声のゲインを 6dB 下げる。
$ ffmpeg -i movie.mp4 -vcodec copy -af volume=-6dB output.mp4
音声のゲインを 6dB 上げる。
$ ffmpeg -i movie.mp4 -vcodec copy -af volume=6dB output.mp4
ドキュメント:
Audio Volume | FFmpeg Wiki [Official]
volume – Filters | FFmpeg Documentation [Official]
参考:
動画や音声ファイルの音量を FFmpeg で調整するときのメモ – Qiita
FFmpeg で音声のボリュームを変更する | 技術的特異点
Is it possible to change volume with no reencode with FFmpeg? – Stack Overflow
再生速度を変更する
再生速度を 2
倍にする場合、テンポ変更フィルターオプションを -af atempo=2.0
のように指定する。
$ ffmpeg -i movie.mp4 -vf setpts=PTS*0.5 -af atempo=2.0 output.mp4
テンポの変更範囲は 0.5
倍から 100
倍の範囲に制限されている。それ以上の範囲に変更する場合は複数回重ね掛けする。
再生速度を 0.4
倍にする。
$ ffmpeg -i movie.mp4 -vf setpts=PTS*2.5 -af "atempo=0.5,atempo=0.8" output.mp4
ドキュメント:
How to speed up / slow down a video | FFmpeg Wiki [Official]
atempo – Audio Filters | FFmpeg Documentation [Official]
参考:
コマンドラインから MP4 を倍速に変換する – Qiita
FFmpeg で音声ファイルの再生速度を変更する方法 | 技術的特異点
FFmpeg を使って動画の再生速度を変えてみる | 脳内メモ++
FFmpeg で早聴き/倍速化 | World Wide EDEN
FFmpeg でN倍速の動画を生成するコマンド | Ryo Ota
MP3 エンコード (libmp3lame)
ドキュメント:
MP3 – Encode | FFmpeg wiki [Official]
AAC エンコード
コーデック
- ネイティブ (
aac
) - Fraunhofer FDK AAC (
libfdk_aac
/※配布バイナリには含まれていない) - AudioToolbox (
aac_at
/※ Mac のみ)
ドキュメント:
aac – Codecs | FFmpeg Documentation [Official]
AAC – Encode | FFmpeg wiki [Official]
参考:
雑多な形式の音楽ファイルを mp3 か m4a に一括変換するコマンド | SlackNote
高品質で AAC 変換できると言われる libfdk_aac エンコーダをハイレゾピュアー音源で音質評価してみました | ハイレコのブログ
FFmpeg から使える AAC エンコーダ の音質比較 | 音風景ブログ
オーディオコーデック
ドキュメント:
Audio Types | FFmpeg wiki [Official]
参考:
FFmpeg のオーディオコーデックの指定 | tech.ckme.co.jp
再エンコードしない
映像を再エンコードせずに処理する場合は、オプション -vcodec copy
を指定する。
参考:
What’s the difference between FFmpeg’s “-vcodec copy” and “-sameq”? – Super User
映像と音声を結合する
再エンコードせずに映像と音声を一つのファイルに結合する。
$ ffmpeg -i video.mp4 -i audio.m4a -c:v copy -c:a copy movie.mp4
参考: