AVIは1990年代後半のコンテナですが、なかなか消えてくれません。古いビデオカメラのクリップ、DivX/Xvidでリッピングした動画、MJPEGのキャプチャ、レガシーツールの画面録画——これらは今でも .avi としてハードディスクに残り、最近のスマホ・ブラウザ・編集ソフトではきれいに再生できないことがよくあります。AVIをMP4に変換すればこれが解決します。多くの場合はH.264 + AACへの再エンコードが最も安全な道ですが、運が良ければコンテナを差し替えるだけで済むケースもあります。本記事では両方の方法と、その見分け方を解説します。

動作確認: FFmpeg 8.1


この記事でわかること

  1. AVIの中身は実際には何か(DivX/Xvid/MJPEGなど)
  2. ほぼすべてのAVIをMP4化する1つのコマンド
  3. ストリームコピーが効くケースと効かないケース
  4. 画質と容量のためのCRF値の選び方
  5. 古いAVIの音声(MP3・PCM・AC-3)への対処
  6. ビデオカメラ映像のインターレース解除
  7. トラブルシューティング
  8. よくある質問

1. AVIの中身

AVIは単なるコンテナです。中身のコーデックは、時代や作成ツールによって大きく異なります。

よくある映像コーデック時代・出所MP4と互換性あり?
DivX / Xvid(MPEG-4 ASP)リッピング動画、2000年代場合による(要注意)
MJPEG古いカメラ・キャプチャカード不可
Cinepak、Indeo、MS-MPEG41990年代のクリップ不可
AVI内のH.264(まれ)一部のキャプチャツール可(コピー可能)
よくある音声コーデックMP4と互換性あり?
MP3可(コピー可能)
PCM(非圧縮)不可(再エンコード)
AC-3MP4では可だが安全のため再エンコード推奨

組み合わせが予測しづらいため、H.264 + AACへの再エンコードが信頼できる既定です。元のAVIの中身が何であれ、どこでも再生できるファイルを作れます。


2. ほぼすべてのAVIに使える1コマンド

映像も音声も再エンコードし、Web対応の形にします。

ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
  • -c:v libx264 … 映像をH.264でエンコード。最も互換性の高いコーデック
  • -crf 23 … 一定品質の目標値(小さいほど高画質・大容量)
  • -c:a aac -b:a 192k … 音声をAACに再エンコード。AVIに多いMP3音声に192kが適する
  • -movflags +faststart … moovアトムを先頭へ移動し即時ストリーミングに対応

DivX・Xvid・MJPEG・PCM・MP3のどの入力も同じように扱えます。


3. ストリームコピーが効くケースと効かないケース

AVIがすでにMP4互換のコーデック(最も確実なのは H.264映像 + MP3またはAAC音声)を含んでいれば、再エンコードせずにコンテナを差し替えられます。これは瞬時かつ無劣化です。

ffmpeg -i input.avi -c:v copy -c:a copy -movflags +faststart output.mp4

これが効く場合、変換は1〜2秒で終わり、画質はまったく変わりません。

失敗する、または互換性の低いファイルになるのは次の場合です。

  • 映像がDivX/Xvid(MPEG-4 ASP)のとき——FFmpegはこれをMP4へストリームコピー(mp4v として格納)できることが多いものの、最近のプレーヤーや端末では正しく扱えないことが多いため、H.264への再エンコードがより確実です。
  • 映像がMJPEG・Cinepak・Indeoのとき——これらはMP4に確実には収まりません。
  • 音声がPCMのとき——MP4は生のPCMをきれいに格納できません。

判断の前に中身を確認しましょう。

ffprobe -hide_banner input.avi

Video:Audio: の行を見ます。Video: h264Audio: mp3aac が最もきれいにコピーできるケースです。DivX/Xvid(mpeg4)も mp4v としてコピーできることが多いですが、H.264への再エンコードの方が互換性は高いです。MJPEG・Cinepak・Indeo や PCM 音声の場合は第2節で再エンコードしてください。

よくある折衷案:映像はコピーし、音声だけ再エンコードします。

ffmpeg -i input.avi -c:v copy -c:a aac -b:a 192k -movflags +faststart output.mp4

これは映像がすでにH.264で、音声がPCMなど非互換な場合に有効です。


4. CRF値の選び方(画質と容量)

CRFは再エンコード時の画質と容量のバランスを決めます。

CRF画質主な用途容量
18視覚的にロスレス貴重な映像の保存
20非常に良い残したい家族の動画中〜大
23とても良い(既定)一般的な変換
26良い気軽に視聴

古いAVIは低解像度(640×480以下)が多く、低めのCRFでも小さいファイルになります。大切な映像にはCRF 18〜20がおすすめです。

ffmpeg -i input.avi -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k -movflags +faststart output.mp4

DivX/Xvidの素材をCRF 20でH.264に再エンコードすると、H.264はMPEG-4 ASPより効率的なため、同等の画質を同程度かより小さい容量で保てることがほとんどです。


5. 古いAVIの音声への対処

AVIの音声はトラブルの元になりがちです。

  • MP3音声はMP4へコピー(-c:a copy)して問題ありませんが、192kのAACに再エンコードすると再生互換性が最大化します。
  • PCM音声は再エンコードが必須で、MP4へストリームコピーできません。
  • AC-3音声は残せますが、ステレオAACに再エンコードするとスマホでのデコード問題を避けられます。

ステレオAACへダウンミックスする安全な音声正規化:

ffmpeg -i input.avi -c:v libx264 -crf 20 -c:a aac -b:a 192k -ac 2 -movflags +faststart output.mp4

-ac 2 でステレオ出力を強制すると、古いキャプチャのサラウンドトラックを扱えない端末での「音が出ない」問題を防げます。


6. ビデオカメラ映像のインターレース解除

MiniDVカメラやアナログキャプチャカードからのAVIはインターレースのものが多く、動きのある場面で櫛状の横線として現れます。yadif フィルタでインターレースを解除します。

ffmpeg -i input.avi -vf yadif -c:v libx264 -crf 20 -c:a aac -b:a 192k -movflags +faststart output.mp4

-vf yadif できれいなプログレッシブ映像になります。動きが少し甘く見えても正常です——インターレース素材は解除時にわずかに細部を失います。


7. トラブルシューティング

エラー1: Could not find tag for codec ... in stream

原因: MP4のmuxerが受け付けない映像コーデック(MJPEG・Cinepak・Indeoなど)に -c:v copy を試した。DivX/Xvidは通常コピーできますが、その他のAVIコーデックはできません。 解決策: -c:v libx264 で映像を再エンコードする(第2節)。

エラー2: 出力に音がない

原因: PCMなど非互換な音声トラックを -c:a copy でコピーした。 解決策: 音声を再エンコードする:-c:a aac -b:a 192k

エラー3: 動きのある場面で横方向の櫛状の線が出る

原因: 素材がインターレース。 解決策: -vf yadif を追加してインターレース解除(第6節)。

エラー4: 音声と映像がずれていく

原因: 一部の古いAVIは可変フレームレートか、ヘッダが壊れている。 解決策: 再エンコード時に一定フレームレートを強制する。

ffmpeg -i input.avi -r 30 -c:v libx264 -crf 20 -c:a aac -b:a 192k -movflags +faststart output.mp4

エラー5: オンラインで長いバッファの後にやっと再生開始する

原因: faststartがない。 解決策: -movflags +faststart を付ける(上記の全コマンドに含まれています)。


よくある質問

Q1. AVIからMP4への変換で画質は落ちますか。 A. 再エンコードは非可逆ですが、CRF 18〜20では通常は劣化が目に見えません。さらにH.264はDivX/Xvidより効率的なので、同程度かより小さい容量で同等の画質が得られることがよくあります。AVIがすでにH.264 + MP3を含むなら、ストリームコピー(第3節)は無劣化です。

Q2. 高速なコピー方式が使えるかどうかはどう判断しますか。 A. ffprobe input.avi を実行します。h264mp3aac はきれいにコピーできます。DivX/Xvid(mpeg4)も mp4v としてコピーできることが多いですが、H.264 再エンコードの方が互換性は高いです。その他のコーデック(MJPEG・PCM など)は再エンコードします。

Q3. コピーしたのに古いAVIがスマホで再生できないのはなぜ。 A. コンテナは変わってもコーデックが変わっていないからです。スマホはDivX/Xvid/MJPEGを再生できません。H.264に再エンコードしてください。

Q4. かけがえのないホームビデオに最適なCRFは。 A. -preset slow とCRF 18で、できる限り細部を保ちましょう。

Q5. AVIがとても小さく低解像度です。アップスケールすべき? A. 基本的には不要です——アップスケールでは細部を増やせません。低めのCRFで変換し、今ある情報を保つだけにします。

Q6. フォルダ内のAVIを一括変換できますか。 A. できます。FFmpegを1ファイルずつ呼ぶシェルループを使います。1ファイルあたりのコマンドは第2節のものと同一に保ってください。


関連記事


Tested with FFmpeg 8.1 — verified with our command-check script 一次ソース: ffmpeg.org/ffmpeg.html / ffmpeg.org/ffmpeg-codecs.html