FFmpegを実行すると突然出てくる No such file or directory エラー。実際にファイルが存在しているのに表示されることも多く、初心者が最初につまずくエラーのひとつです。

動作確認: ffmpeg 6.1 で確認済み


典型的なエラーメッセージ

input.mp4: No such file or directory

または

/path/to/file.mp4: No such file or directory

原因1: ファイルパスにスペースが含まれている(最多)

症状

# NG — スペースがある場合、シェルが引数を分割してしまう
ffmpeg -i My Video.mp4 output.mp4

このコマンドでは MyVideo.mp4 が別々の引数として解釈されます。

解決方法

ダブルクォートで囲む:

ffmpeg -i "My Video.mp4" output.mp4

シングルクォートでも可:

ffmpeg -i 'My Video.mp4' output.mp4

Windowsのコマンドプロンプト(cmd.exe)の場合:

ffmpeg -i "My Video.mp4" output.mp4

ヒント: ファイル名にスペースを含めないことが一番のトラブル回避策です。アンダースコア _ やハイフン - に置き換えることをおすすめします。


原因2: カレントディレクトリが違う

症状

ターミナルの作業ディレクトリとファイルが存在するディレクトリが異なる場合に発生します。

# ファイルは /home/user/videos/ にあるが、作業ディレクトリが違う
ffmpeg -i input.mp4 output.mp4
# → input.mp4: No such file or directory

解決方法

絶対パスで指定する:

ffmpeg -i /home/user/videos/input.mp4 /home/user/videos/output.mp4

cdで移動してから実行する:

cd /home/user/videos/
ffmpeg -i input.mp4 output.mp4

ファイルの場所を確認する:

# macOS / Linux
ls -la *.mp4

# Windows (PowerShell)
Get-ChildItem *.mp4

原因3: 拡張子の大文字・小文字の不一致

症状

ファイル名が INPUT.MP4 なのに input.mp4 と指定している場合、Linux・macOS では大文字小文字が区別されるためエラーになります(Windowsでは区別されません)。

# NG on Linux/macOS(実際のファイルは INPUT.MP4)
ffmpeg -i input.mp4 output.mp4

解決方法

# ファイル名を正確に確認してから指定する
ls -la
ffmpeg -i INPUT.MP4 output.mp4

原因4: 出力先ディレクトリが存在しない

FFmpegは出力ファイルのディレクトリを自動作成しません。

# NG — output/ ディレクトリが存在しない
ffmpeg -i input.mp4 output/result.mp4
# → output/result.mp4: No such file or directory

解決方法

# 先にディレクトリを作成してから実行
mkdir -p output
ffmpeg -i input.mp4 output/result.mp4

診断フローチャート

「No such file or directory」が出た場合

1. ファイルが存在するか確認
   → ls -la または dir で確認

2. ファイル名にスペースがあるか
   → あれば "" で囲む

3. 作業ディレクトリを確認
   → pwd (Linux/macOS) / cd (Windows)
   → 絶対パスで指定し直す

4. 大文字・小文字の確認(Linux/macOS)
   → ls で正確なファイル名を確認

5. 出力先ディレクトリの確認
   → mkdir -p でディレクトリを作成

補足:Windows パスの注意点

Windowsではバックスラッシュ \ がパス区切り文字ですが、FFmpegはスラッシュ / も受け付けます。

# どちらも使用可能
ffmpeg -i C:\Users\user\video\input.mp4 output.mp4
ffmpeg -i C:/Users/user/video/input.mp4 output.mp4

ネットワークパス(UNCパス)の場合はスラッシュを使うと認識されないことがあります。その場合はバックスラッシュを使ってください。


関連リソース

よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。

FFmpeg チートシート

関連記事


動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 & Windows 11
一次ソース: ffmpeg.org/ffmpeg.html


よくある質問

スペース込みで quote 済みなのに失敗する

ドキュメントからのコピペで「スマートクオート」が混入してる可能性。普通のクオートに見えるが別文字。ターミナルで手入力するか、スペースを \ でエスケープしてください。

glob パターンで FFmpeg を回したい

FFmpeg はグロブを自分で展開しません。シェルで事前展開(for f in *.mp4; do ffmpeg -i "$f" ...; done)するか、画像シーケンスなら -pattern_type glob -i "*.mp4" を使ってください。

Windows で相対パスを無視される

Windows シェルの変数展開と \ エスケープで相対パスが破壊されることがある。フォワードスラッシュ(/)か絶対パスを使えば回避。

FFmpeg は出力ディレクトリを自動作成する?

しません — 先に mkdir -p 必須。mkdir -p "$(dirname "$out")" && ffmpeg ... "$out" のようにラップしてください。

Windows の UNC パスが失敗する

フォワードスラッシュは UNC では機能しません。\\server\share\file.mp4(バックスラッシュエスケープ)を使うか、ドライブレターにマップしてください。