15

I am attempting to use FFmpeg to extract audio from a mp4 and I keep running into this error:

CFileffmpegvideo.mp4: No such file or directory exist. 

I am in command prompt (in Windows 7) and have the path as C:\Files\ffmpeg (Where ffmpeg is).

I run this command line

ffmpeg -i C:\Files\ffmpeg\video.mp4 -f mp3 -ab 320000 -vn music.mp3

The file is in the same folder as ffmpeg. I know I am missing something simple here but what is it?

Here is a short video showing the exact process.

Screenshot Showing Error

7
  • Do you actually have "file-name.mp4" in the command line? I don't mean with the quotes, but I mean that specific and exact file name? And... do you actually have a mp4 file called "file-name.mp4" in the directory C:\Files\ffmpeg ?
    – Bon Gart
    Jun 24, 2012 at 2:41
  • @BonGart - Yes I do
    – L84
    Jun 24, 2012 at 2:55
  • Yes I do, to both? Meaning you are using that exact phrasing AND you have a mp4 file with the generic name of "file-name.mp4" in that specific directory? Because that's what the error is telling us... that there isn't any file by that name in that directory.
    – Bon Gart
    Jun 24, 2012 at 2:57
  • @BonGart - I posted a couple screenshots showing the directory and the command prompt screen with error.
    – L84
    Jun 24, 2012 at 3:06
  • Ok. so then the answer was NO.. you were NOT using the exact phrase "file-name.mp4" in the command line, and you do NOT have a file actually called "file-name.mp4" in that directory. What you should do is remove "c:\Files\ffmpeg" from the command line and try again. Since the file you are converting is in the same directory as ffmpeg, you don't need the absolute path.
    – Bon Gart
    Jun 24, 2012 at 3:07

10 Answers 10

5

I recreated your situation (as best I could) on this computer after I watched your video. I downloaded the same version of ffmpeg (don't know about build, since I am limited to using the 32 bit version), copied the executable from the bin folder into the main one, put an mp4 file called "video.mp4" in there, and used your exact command line parameters, minus the absolute path...

ffmpeg -i video.mp4 -f mp3 -ab 320000 -vn music.mp3

enter image description here

..and it worked perfectly for me. Now, I didn't do it from the same directory structure as you had set up (c:\files\ffmpeg). Do you have ffmpeg installed anywhere else on the computer? Have you considered trying a previous build/version? What about 32 bit vs. 64 bit... or vice versa? Is this the first time you've used this version of ffmpeg? Or... has it worked perfectly up until now? Have you tried renaming the input file (silly, I know)?

3
  • Thanks for your help. I have taken a short video showing the exact process. No luck. Here is the link: screencast.com/t/f50qR5eWq2B
    – L84
    Jun 24, 2012 at 6:32
  • @Lynda I edited my answer a bit, included some possibilities at the bottom, upgraded ffmpeg to the same version as you show...
    – Bon Gart
    Jun 24, 2012 at 13:49
  • I will have to try different build I guess. I have tried renaming, re-ordering the file system etc and still same results. This is the only place I have it installed. And I tried ffmpeg on an old computer with the same results and stopped attempting it because the computer had issues. This is a different computer without the issues of the other and still and results. I will try another build I guess.
    – L84
    Jun 24, 2012 at 16:12
17

You may have double extension of file, your "video.mp4" is in fact "video.mp4.mp4" (look at screenshoot of your Windows folder, README.txt has extension hidden)

4

figured out the issue.

if you type in dir in the ff prompt window, check what FOLDER it is referencing.

For me it was actually referencing the bin folder, not the folder the ffmpeg batch file is in.

I put the video file in the "bin" folder and it found it with no issues.

1
  • This is the rightfully correct answer!
    – papajo
    Dec 8, 2017 at 8:03
0

It looks like ffmpeg is having trouble with your absolute filename. I guess, since it's more concentrated on Unix-like environments, it's using \ as escape character. Try using forward-slashes instead.

0

Do a DIR search of the directory to see if the file name has not been changed to "File.mp4.mp4" or similar. That was my problem using Windows Vista and 7.

0

I know this is an old post but just in case someone else stumbles upon it and needs help; you can add the full path to all the files involved and you can run this from any where!

Edit this command with the appropriate values and copy/paste it to a command prompt:

C:\ReplaceThisWithFFMpegInstallFolder\ffmpeg.exe -i "C:\ReplaceThisWithSourceFolder\ReplaceThisWithVideoFileName.mp4" -f mp3 -ab 320000 -vn "C:\ReplaceThisWithDestinationFolder\ReplaceThisWithAudioFileName.mp3"

0

Make sure the filename doesn't have a trailing space. In my case there was a space after the .mp4 extension, making the correct syntax: "input.mp4 "

0

I was having a problem like this with a Win64 build through Cygwin. I think the automatic path conversion we the error, and I wish it worked in more scenarios like with the *NIX-style paths.

This would also occur when I manually called cygpath when piping path data from my clipboard.

I thought Windows-style paths were the problem at first, but that is because when I shift+right-click to copy their paths in file explorer, it adds quotes around them.

I was trying to use this method: ffmpeg -v error -i file.avi -f null - https://superuser.com/a/100290/175686

So the result that works is non-quoted, Windows-style paths.

Another nifty link: https://unix.stackexchange.com/questions/77016/ffmpeg-pattern-type-glob-not-loading-files-in-correct-order

0

I had this error because my filename had a whitespace in it. To solve it, 1) set the working directory with Pushd 2) put your filename inside quote ""

See here for a working example

0

I'm using ffmpeg in Linux and I need it to soft-sub videos with shell script I created , the original code looks like this

ffmpeg -y -i 'file:movie.mkv' -i 'file:sub.ass' -map 0 -c copy -map '-0:s' -map '1:0' '-metadata:s:s:0' 'language=eng' 'file:movie.mkv'

after replacing movi.mkv with $1 and sub.ass with $2 the code didn't work, I got same error message, and because it's hard to combine variable with qutes in shell script , I create extra variable to cleanup the mess

F1=\'file:$1\'
F2=\'file:$2\'

The code didn't works either so I remove the single quote and it solve the issue

Here is how my script looks like now :-

#!/bin/sh
F1=file:$1
F2=file:$2
/usr/bin/ffmpeg -y -hide_banner -i $F1 -i $F2 -map 0 -c copy -map '-0:s' -map '1:0' '-metadata:s:s:0' 'language=eng' 'file:movie.mkv'
2
  • 1
    No need for file:. You could just use /usr/bin/ffmpeg -y -hide_banner -i "$1" -i "$2" -map 0 -c copy -map '-0:s' -map '1:0' '-metadata:s:s:0' 'language=eng' 'movie.mkv'. Then you won't need the F1 and F2 variables assuming you're executing the script like ./salemsub movi.mkv sub.ass
    – llogan
    Jan 2, 2021 at 18:45
  • Thy's code works too, I don't know it's failed with me, If I member it right I think the video were mp4 container with mkv file extension, it could make ffmpeg not recognize it .
    – Salem F
    Jan 3, 2021 at 1:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .