8

Я пытаюсь использовать FFmpeg для извлечения аудио из mp4, и я продолжаю сталкиваться с этой ошибкой:

CFileffmpegvideo.mp4: No such file or directory exist. 

Я нахожусь в командной строке (в Windows 7) и имею путь как C:\Files\ffmpeg (где ffmpeg).

Я запускаю эту командную строку

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

Файл находится в той же папке, что и ffmpeg. Я знаю, что мне здесь не хватает чего-то простого, но что это?

Вот короткое видео, показывающее точный процесс.

Снимок экрана с ошибкой

9 ответов9

12

У вас может быть двойное расширение файла, ваш «video.mp4» на самом деле «video.mp4.mp4» (посмотрите на скриншот вашей папки Windows, README.txt имеет скрытое расширение)

3

Я воссоздал вашу ситуацию (насколько мог) на этом компьютере после того, как посмотрел ваше видео. Я скачал ту же версию ffmpeg (не знаю о сборке, поскольку я ограничен использованием 32-битной версии), скопировал исполняемый файл из папки bin в основную, поместил файл mp4 с именем "video.mp4" в там, и использовал ваши точные параметры командной строки, минус абсолютный путь ...

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

..и это отлично сработало для меня. Я сделал это не из той структуры каталогов, которую вы настроили (c:\files\ffmpeg). У вас есть установленный ffmpeg где-нибудь еще на компьютере? Рассматривали ли вы попробовать предыдущую сборку / версию? А как насчет 32 бит против 64 бит ... или наоборот? Вы впервые используете эту версию ffmpeg? Или ... до сих пор это работало отлично? Вы пытались переименовать входной файл (глупо, я знаю)?

2

разобрался с вопросом.

если вы введете dir в окне приглашения ff, проверьте, на какую FOLDER он ссылается.

Для меня это была ссылка на папку bin, а не на папку, в которой находится пакетный файл ffmpeg.

Я поместил видеофайл в папку "bin", и он нашел его без проблем.

0

У меня была эта ошибка, потому что в моем имени файла были пробелы. Чтобы решить это, 1) установите рабочий каталог с помощью Pushd 2) поместите ваше имя файла в кавычки ""

Смотрите здесь для рабочего примера

0

У меня была такая проблема с сборкой Win64 через Cygwin. Я думаю, что автоматическое преобразование пути является ошибкой, и мне бы хотелось, чтобы оно работало в других сценариях, например, с путями в стиле * NIX.

Это также происходит, когда я вручную вызываю cygpath при передаче данных о пути из буфера обмена.

Сначала я думал, что пути в стиле Windows были проблемой, но это потому, что когда я нажимаю + правый клик, чтобы скопировать их пути в проводнике, он добавляет кавычки вокруг них.

Я пытался использовать этот метод: ffmpeg -v error -i file.avi -f null - https://superuser.com/a/100290/175686

Таким образом, результат, который работает, - это не кавычки, пути в стиле Windows.

Еще одна интересная ссылка: https://unix.stackexchange.com/questions/77016/ffmpeg-pattern-type-glob-not-loading-files-in-correct-order

0

Похоже, у ffmpeg проблемы с вашим абсолютным именем файла. Я полагаю, поскольку он больше сконцентрирован на Unix-подобных средах, он использует \ как escape-символ. Попробуйте вместо этого использовать косую черту.

0

Выполните DIR-поиск в каталоге, чтобы узнать, не было ли имя файла изменено на «File.mp4.mp4» или подобное. Это была моя проблема с использованием Windows Vista и 7.

0

Я знаю, что это старый пост, но на тот случай, если кто-то еще наткнется на него и ему понадобится помощь; Вы можете добавить полный путь ко всем задействованным файлам, и вы можете запустить его из любого места!

Отредактируйте эту команду с соответствующими значениями и скопируйте / вставьте ее в командную строку:

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

0

Убедитесь, что в имени файла нет пробела. В моем случае после расширения .mp4 был пробел, что делало правильный синтаксис: «input.mp4»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .