The No such file or directory error that appears out of nowhere when you run FFmpeg is one of the most common stumbling blocks for newcomers — often showing up even though the file is clearly there.
Tested with ffmpeg 6.1
Typical Error Message
input.mp4: No such file or directory
or
/path/to/file.mp4: No such file or directory
Cause 1: The Path Contains Spaces (Most Common)
Symptom
# Wrong — the shell splits the argument at the space
ffmpeg -i My Video.mp4 output.mp4
In this command, My and Video.mp4 are parsed as separate arguments.
How to fix
Wrap in double quotes:
ffmpeg -i "My Video.mp4" output.mp4
Single quotes also work:
ffmpeg -i 'My Video.mp4' output.mp4
On Windows Command Prompt (cmd.exe):
ffmpeg -i "My Video.mp4" output.mp4
Tip: Avoiding spaces in file names is the best defense. Replacing them with underscores (
_) or hyphens (-) saves a lot of trouble.
Cause 2: Wrong Working Directory
Symptom
Occurs when the terminal’s current directory differs from the directory containing the file:
# The file is in /home/user/videos/, but you're somewhere else
ffmpeg -i input.mp4 output.mp4
# → input.mp4: No such file or directory
How to fix
Use an absolute path:
ffmpeg -i /home/user/videos/input.mp4 /home/user/videos/output.mp4
cd into the directory first:
cd /home/user/videos/
ffmpeg -i input.mp4 output.mp4
Verify the file location:
# macOS / Linux
ls -la *.mp4
# Windows (PowerShell)
Get-ChildItem *.mp4
Cause 3: Extension Case Mismatch
Symptom
If the actual file is INPUT.MP4 but you specify input.mp4, Linux and macOS will error out because they’re case-sensitive (Windows is not).
# Wrong on Linux/macOS (actual file is INPUT.MP4)
ffmpeg -i input.mp4 output.mp4
How to fix
# Verify the exact file name, then match it
ls -la
ffmpeg -i INPUT.MP4 output.mp4
Cause 4: Output Directory Doesn’t Exist
FFmpeg does not create output directories automatically.
# Wrong — output/ directory doesn't exist
ffmpeg -i input.mp4 output/result.mp4
# → output/result.mp4: No such file or directory
How to fix
# Create the directory first
mkdir -p output
ffmpeg -i input.mp4 output/result.mp4
Diagnostic Flowchart
When "No such file or directory" appears
1. Does the file exist?
→ Check with ls -la or dir
2. Does the file name contain spaces?
→ Wrap in "" if so
3. Check the working directory
→ pwd (Linux/macOS) / cd (Windows)
→ Retry with an absolute path
4. Check case sensitivity (Linux/macOS)
→ Use ls to confirm the exact file name
5. Check the output directory
→ Create it with mkdir -p
Bonus: Windows Path Notes
Windows uses \ as the path separator, but FFmpeg accepts / as well.
# Both work
ffmpeg -i C:\Users\user\video\input.mp4 output.mp4
ffmpeg -i C:/Users/user/video/input.mp4 output.mp4
For UNC paths (network paths), forward slashes sometimes fail. Use backslashes in that case.
Measured Example
On Windows, converting My Video.mp4 from the Desktop can fail with the same error if your shell is simply in a different working directory. In PowerShell, first confirm the file exists:
Test-Path "C:\Users\user\Desktop\My Video.mp4"
If it returns True, pass the same absolute path to FFmpeg with quotes:
ffmpeg -i "C:\Users\user\Desktop\My Video.mp4" "C:\Users\user\Desktop\out.mp4"
Even for a 2-minute video, input path resolution happens before processing starts, so a wrong input path fails immediately. If the command runs for a while and then fails, check the output directory, permissions, or network storage instead. Results vary by environment.
Frequently Asked Questions
Spaces in the filename — quoted but still failing
Smart quotes from a doc copy-paste look like normal quotes but are not. Retype the quotes manually in the terminal, or escape spaces with \ instead.
How do I run FFmpeg on a glob pattern?
FFmpeg does not expand globs itself. Either pre-expand with the shell (for f in *.mp4; do ffmpeg -i "$f" ...; done) or use -pattern_type glob -i "*.mp4" for image sequences.
Why does FFmpeg ignore a relative path on Windows?
Windows shell variable expansion plus \ escapes can mangle relative paths. Use forward slashes (/) or full absolute paths to avoid surprises.
Does FFmpeg create the output directory?
No — you must mkdir -p it first. Wrap with a check: mkdir -p "$(dirname "$out")" && ffmpeg ... "$out".
My UNC network path fails on Windows
Forward slashes break for UNC. Use \\server\share\file.mp4 (escaped backslashes) or map to a drive letter first.
Related Articles
Tested with ffmpeg 6.1.1 / Ubuntu 24.04 & Windows 11
Primary source: ffmpeg.org/ffmpeg.html