先日、ビデオカメラで撮影した動画を再生しようとしたら音が出ないことがあり、音が出るようにする方法を調べたので備忘録的に記録しておきたいと思います。
FFmpegについて
FFmpegという音声や動画の処理を行うコマンドラインツールを使いました。(FFmpegのインストール方法は省略)
FFmpegを使えば、動画から音声だけを抜き出したり、サイズや解像度を変更したりといった作業が驚くほど簡単に、かつ一瞬で終わります。
ネット上の怪しい変換サイトに動画をアップロードしたり、広告だらけの得体の知れないアプリをインストールしたりするよりも、安全で確実な選択肢です。自分のPC内で処理が完結するので、プライバシーの面でも安心です。
まずはMTSのファイルを単純にmp4にしてみます。
ffmpeg -i input.MTS -c copy output.mp4
💡コマンド解説
ffmpeg:動画・音声を処理するツール
-i input.MTS: -i=入力ファイルを指定 input.MTSを読み込む
-c copy:-c= コーデック1指定 / copy = 変換しないでそのままコピー
ファイルはMP4になりましたが、これでも音が再生されませんでした。
音声形式が再生できるものではないようです。
SONYのサイトにも、AVCHD は音声に Dolby Digitalを使用すると記載がありました。
まずは元ファイルの音声形式を確認します。
ffmpeg -i input.MTS
💡コマンド解説
ffmpeg -i input.MTS:ffmpegを使ってinput.MTSファイルの中身を解析して表示する
ffmpeg version 8.1 Copyright (c) 2000-2026 the FFmpeg developers
(略)
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1440x1080 [SAR 4:3 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, start 1.100100
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s, start 1.033367
Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle (pgssub) ([144][0][0][0] / 0x0090), 1920x1080, start 1.033367
Streamが3つ出てきました。
つまり、この動画ファイル(input.MTS)は、映像1本、音声1本、字幕1本の構成になっている、という内容です。
Audio: ac3, 48000 Hz, 5.1(side)
という内容から、この動画の音声はAC-3であることがわかります。
AC-3とは
AC-3というのは、Dolby Digitalと呼ばれる音声形式で、主にDVD / Blu-ray / 放送 / AVCHD(MTS)で使われているものです。
特徴としては、
- 5.1ch(サラウンド)対応
- 圧縮音声(高効率)
なのですが、Dolby Laboratoriesの技術であるAC-3の再生にはライセンス料が必要なため、パソコンに標準で入っている再生ソフトでは対応を省略している場合があります。(以下のMedia Playerのコーデックサイトにも、AC-3が載っていません。)
再生するには、AC-3に対応した再生ソフト(VLC media playerなど)を使用するか、音声の形式をAACや、MP3などの広く対応しているものに変換する必要があります。
AACに変換
AAC(Advanced Audio Coding)は、MP3の後継で、高音質・高圧縮な音声データ圧縮方式として現在広く使われてるものです。
また、元の音声が5.1chのサラウンド2ですが、これも再生互換性を上げるために、2chのステレオに変換します。
以下のコマンドで、広く再生できる映像ファイルに変換できます。
ffmpeg -i input.MTS -c:v copy -c:a aac -ac 2 -b:a 192k output.mp4
💡コマンド解説
-i input.MTS:input.MTSを読み込む
-c:v copy:-c:v = 映像のコーデック指定 / copy = そのままコピー
-c:a aac:-c:a = 音声のコーデック指定 / aac = AAC形式に変換
-ac 2:-ac = 音のチャンネル数 / 2 = 2つ(ステレオ:左右)
-b:a:-b:a = 音の品質(データ量)指定 / 192k = 良い音質
input.mp4のファイルができたので、以下のコマンドで情報を確認してみましょう。
ffmpeg -i input.mp4
ffmpeg version 8.1 Copyright (c) 2000-2026 the FFmpeg developers
(略)
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 11289 kb/s, 59.94 fps, 59.94 tbr, 90k tbn (default)
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 193 kb/s (default)
Streamが2つになって、元のMTSファイルに入っていた字幕ストリームはなくなり、映像はH.264のまま、音声がAACになっていることが確認できます。
これで音声が出ていなかった環境でも無事音が出るようになりました。