← All posts

FFmpeg で動画から音声を抽出する方法

FFmpeg で動画から音声を抽出する手順。MP3・AAC・FLAC・WAV への変換、ビットレート制御、マルチトラック処理、メタデータ保持を解説。

FFHub·2026-04-24
FFmpeg で動画から音声を抽出する方法

FFmpeg で動画から音声を抽出するのは難しくありません。MP3、AAC、FLAC、WAV、Opus のいずれにも変換でき、ビットレート・サンプリングレート・メタデータまで細かく制御できます。動画収録からポッドキャストを抜く、楽曲トラックを取り出す、字幕や文字起こし用にダイアログを抽出する——本記事はそうしたシナリオを一通りカバーします。

Try it in your browser

動画をドロップして形式(MP3 / AAC / FLAC / WAV)を選ぶだけ。FFmpeg をインストールせずブラウザ上で動きます。

一番シンプルな抽出方法は?

もっとも手っ取り早いのは、ストリームコピーで再エンコードせずに音声を抜き出す方法です。

# Extract audio without re-encoding (keeps original format)
ffmpeg -i input.mp4 -vn -c:a copy output.aac
  • -vn は映像を無効化(音声のみ抽出)
  • -c:a copy は音声ストリームをそのままコピー(無劣化、瞬時)

ただしソースの音声フォーマットを知っておかないと、正しい拡張子を選べません(FFmpeg に慣れていない方は 初心者向け FFmpeg ガイド を先に読んでみてください)。先に確認しましょう。

# Check what audio codec the video uses
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1 input.mp4

codec_name=aac のように出れば、拡張子は .aac.m4a を使うことになります。

各フォーマットへ抽出するには?

MP3 — 互換性が広い

# Extract to MP3 at 192 kbps
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3

# Extract to MP3 using VBR quality (recommended)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

MP3 の VBR 品質スケールは 0(最高、約 245 kbps)から 9(最低、約 65 kbps)まで。値 2(約 190 kbps)がバランスの良い値です。あわせて 動画フォーマットの変換 を行うときも、codec とビットレートの考え方は同じです。

AAC — Apple・Web 向け

# Extract to AAC at 192 kbps
ffmpeg -i input.mp4 -vn -c:a aac -b:a 192k output.m4a

# Higher quality AAC
ffmpeg -i input.mp4 -vn -c:a aac -b:a 256k output.m4a

Opus — ビットレート効率がもっとも高い

Opus は低ビットレートでも品質が高く、特に音声コンテンツに向いています。

# Extract to Opus at 128 kbps (excellent quality)
ffmpeg -i input.mp4 -vn -c:a libopus -b:a 128k output.opus

# Opus for speech content (lower bitrate is fine)
ffmpeg -i input.mp4 -vn -c:a libopus -b:a 64k output.opus

FLAC — ロスレス圧縮

# Extract to FLAC (lossless, smaller than WAV)
ffmpeg -i input.mp4 -vn -c:a flac output.flac

WAV — 非圧縮

# Extract to WAV (PCM 16-bit)
ffmpeg -i input.mp4 -vn -c:a pcm_s16le output.wav

# Extract to WAV (PCM 24-bit for higher precision)
ffmpeg -i input.mp4 -vn -c:a pcm_s24le output.wav

フォーマットの比較

Formatタイプ128 kbps での品質ファイルサイズ用途
MP3非可逆良い汎用再生
AAC非可逆より良いApple、Web、ストリーミング
Opus非可逆非常に良い最小Web、VoIP、ポッドキャスト
Vorbis非可逆良いオープンソース系
FLACロスレス完全アーカイブ、オーディオファイル
WAV非圧縮完全編集、制作
ALACロスレス完全Apple エコシステム

ビットレートと品質はどう決める?

適切なビットレート

最適値はコンテンツとフォーマットによります。

コンテンツMP3AACOpus
音声・ポッドキャスト96-128 kbps64-96 kbps48-64 kbps
音楽(カジュアル)192 kbps128 kbps96-128 kbps
音楽(高品質)320 kbps256 kbps160-192 kbps
アーカイブFLAC を使うFLAC を使うFLAC を使う

サンプルレートの調整

抽出と同時にサンプルレートを変えられます。

# Downsample to 22050 Hz (suitable for speech)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 96k -ar 22050 output.mp3

# Keep standard CD quality (44100 Hz)
ffmpeg -i input.mp4 -vn -c:a flac -ar 44100 output.flac

チャンネル数の指定

# Convert to mono (good for speech, halves file size)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 96k -ac 1 output.mp3

# Force stereo output
ffmpeg -i input.mp4 -vn -c:a aac -b:a 192k -ac 2 output.m4a

特定の音声トラックだけ抽出するには?

動画には複数の音声トラック(多言語・コメンタリーなど)が含まれることがあります。-map で選択できます。

# List all streams in the file
ffprobe -v error -show_streams -of json input.mkv | grep -E "index|codec_name|codec_type|language"

# Extract the first audio track (default)
ffmpeg -i input.mkv -map 0:a:0 -c:a copy output_track1.aac

# Extract the second audio track
ffmpeg -i input.mkv -map 0:a:1 -c:a copy output_track2.aac

# Extract all audio tracks as separate files
ffmpeg -i input.mkv -map 0:a:0 track1.mp3 -map 0:a:1 track2.mp3

0:a:0 は「1 つ目の入力ファイル(0)の、音声ストリーム(a)の、最初のもの(0)」という意味です。

特定の時間範囲だけ抽出

# Extract audio from 1:30 to 3:45
ffmpeg -i input.mp4 -vn -ss 00:01:30 -to 00:03:45 -c:a libmp3lame -b:a 192k output.mp3

# Extract the first 60 seconds of audio
ffmpeg -i input.mp4 -vn -t 60 -c:a copy output.aac

-ss-i の前に置くとシークが速くなります(精度はやや落ちる)。-i の後ろに置くとフレーム単位で正確にシークできます。

メタデータを保持するには?

FFmpeg はデフォルトでメタデータを引き継ぎます。明示的に制御もできます。

# Extract audio with all metadata preserved
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -map_metadata 0 output.mp3

# Extract audio and add/override metadata
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k \
  -metadata title="Episode 42" \
  -metadata artist="My Podcast" \
  -metadata album="Season 2" \
  -metadata date="2026" \
  output.mp3

# Extract audio and strip all metadata
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -map_metadata -1 output.mp3

アルバムアートを埋め込む

# Extract audio with thumbnail from video
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k \
  -c:v copy -disposition:v attached_pic output.mp3

動画の最初のフレーム(ミュージックビデオではサムネイルになっていることが多い)をアルバムアートとして埋め込みます。

まとめて抽出するには?

ディレクトリ内の全動画から音声を抽出

# Extract all MP4 files to MP3
for f in *.mp4; do
  ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 192k "${f%.mp4}.mp3"
done

# Extract all video files (mixed formats) to AAC
for f in *.mp4 *.mkv *.avi *.mov; do
  [ -f "$f" ] || continue
  name="${f%.*}"
  ffmpeg -i "$f" -vn -c:a aac -b:a 192k "${name}.m4a"
done

品質プリセット付きのバッチ処理

#!/bin/bash
# Extract audio from all videos in current directory
# Usage: ./extract_audio.sh [quality]
# quality: low (96k), medium (192k), high (320k), lossless

QUALITY="${1:-medium}"

case "$QUALITY" in
  low)     CODEC="-c:a libmp3lame -b:a 96k";  EXT="mp3" ;;
  medium)  CODEC="-c:a libmp3lame -b:a 192k"; EXT="mp3" ;;
  high)    CODEC="-c:a libmp3lame -b:a 320k"; EXT="mp3" ;;
  lossless) CODEC="-c:a flac";                 EXT="flac" ;;
esac

for f in *.mp4 *.mkv *.avi *.mov *.webm; do
  [ -f "$f" ] || continue
  echo "Extracting: $f"
  ffmpeg -i "$f" -vn $CODEC "${f%.*}.$EXT"
done

抽出時に音量を調整するには?

抽出と同時に正規化や音量調整ができます。

# Increase volume by 50%
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -af "volume=1.5" output.mp3

# Decrease volume by half
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -af "volume=0.5" output.mp3

# Normalize audio loudness (EBU R128 standard)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k \
  -af "loudnorm=I=-16:TP=-1.5:LRA=11" output.mp3

loudnorm フィルターは、ラウドネスを揃えたいポッドキャストや音声コンテンツに特に役立ちます。メディアファイルサイズの最適化全般は 動画圧縮のベストプラクティス もあわせて参照してください。

URL から直接抽出できる?

FFmpeg は URL からも直接音声を抽出できます。

# Extract audio from a direct video URL
ffmpeg -i "https://example.com/video.mp4" -vn -c:a libmp3lame -b:a 192k output.mp3

トラブルシューティング

「Stream copy」で出力したファイルが再生できない — 抽出した codec が選んだコンテナでサポートされていない可能性があります。たとえば Opus 音声を .mp3 拡張子で -c:a copy するのは無理です。正しい拡張子を選ぶか、再エンコードしてください。

音声が無音 — 動画に複数の音声トラックがあって、デフォルトのトラックが空かもしれません。ffprobe で確認してから -map で正しいトラックを指定します。

「Discarding packet」警告 — たいてい無害ですが、音声が壊れる場合はストリームコピーをやめて再エンコードしてみてください。

音声と映像のタイミングがずれる-async 1 で同期を取れます。

ffmpeg -i input.mp4 -vn -async 1 -c:a libmp3lame -b:a 192k output.mp3

まとめ

  • 再エンコード不要なら -c:a copy を使う(最速・無劣化)
  • 互換性なら MP3、品質重視なら Opus、ロスレスなら FLAC
  • 抽出前に ffprobe で音声トラックを確認する
  • -map 0:a:N で特定の音声トラックを選ぶ
  • ラウドネスを揃えたいときは -af loudnorm を使う
  • ディレクトリ単位の処理は バッチスクリプト で自動化する
Try it in your browser

コマンドラインを打たずに、FFHub に動画をドロップして形式を選ぶだけ。裏では同じ FFmpeg フラグが動きます。

よくある質問(FAQ)

MP4 から再エンコードせず音声を抜き出すには?

ffmpeg -i input.mp4 -vn -c:a copy output.aac を使います。-vn で映像ストリームを落とし、-c:a copy で音声ビットストリームをそのまま保持します(無劣化・即時)。出力拡張子はソースのコーデックに合わせる必要があるため、事前に ffprobe -v error -select_streams a:0 -show_entries stream=codec_name input.mp4 で中身を確認しましょう。

ポッドキャストに最適な音声フォーマットは?

スピーチ中心なら Opus 48〜64 kbps が音質・サイズのバランスでベスト(MP3 のおよそ半分のサイズで同等品質)。あらゆる再生環境に届けたいなら MP3 128 kbps が最も安全。AAC 96 kbps は Apple エコシステムや現代ブラウザに最適。

FFmpeg は動画 URL から直接音声を抽出できる?

可能です。FFmpeg は HTTP(S) URL を入力として受け取れます:ffmpeg -i "https://example.com/video.mp4" -vn -c:a libmp3lame -b:a 192k output.mp3。事前にダウンロードする必要はありません。

複数音声トラックから特定の 1 本だけ抽出するには?

-map 0:a:N(N は 0 始まりのトラック番号)を使います。たとえば ffmpeg -i input.mkv -map 0:a:1 -c:a copy second_track.aac は 2 番目の音声トラックを抽出します。先に ffprobe -v error -show_streams input.mkv で全トラックと言語タグを確認してください。

抽出した音声が無音または壊れているのはなぜ?

多くの場合、デフォルトの音声トラックが空(画面録画や多言語トラック動画でよくある現象)。ffprobe で音声ストリームを特定し、-map 0:a:N で正しいトラックを選んでください。"discarding packet" 警告が出るときは -c:a copy をやめて -c:a libmp3lame などで強制再エンコードします。

ロスレス(FLAC)と非可逆圧縮(MP3)、どちらを選ぶ?

アーカイブ用、二次編集、ロスレスソースからの抽出なら FLAC。日常再生・ポッドキャスト・共有・Web 配信なら MP3 または Opus — 192 kbps MP3 / 96 kbps Opus 以上なら人間の知覚閾値を超えており、サイズ削減の恩恵の方が圧倒的に大きいです。

関連記事

FFmpeg で動画から音声を抽出する方法 | FFHub