Нет такого файла или каталога в FFmpeg


11

Я пытаюсь использовать 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. Я знаю, что здесь не хватает чего-то простого, но что это?

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

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


У вас действительно есть "file-name.mp4" в командной строке? Я не имею в виду кавычки, но я имею в виду то конкретное и точное имя файла? И ... у вас есть файл mp4 с именем "file-name.mp4" в каталоге C: \ Files \ ffmpeg?
Бон Гарт

@BonGart - Да, я делаю
L84

Да, оба? Это означает, что вы используете именно эту фразу И у вас есть файл mp4 с общим именем «file-name.mp4» в этом конкретном каталоге? Потому что именно это говорит нам ошибка ... что в этом каталоге нет файла с таким именем.
Бон Гарт

@BonGart - я опубликовал пару скриншотов, показывающих каталог и экран командной строки с ошибкой.
L84

Хорошо. так что тогда ответ был НЕТ .. вы НЕ использовали точную фразу "file-name.mp4" в командной строке, и у вас НЕ было файла с именем "file-name.mp4" в этом каталоге. Что вы должны сделать, это удалить «c: \ Files \ ffmpeg» из командной строки и повторить попытку. Поскольку конвертируемый файл находится в том же каталоге, что и ffmpeg, вам не нужен абсолютный путь.
Бон Гарт

Ответы:


4

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

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

введите описание изображения здесь

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


Спасибо за вашу помощь. Я снял небольшое видео, показывающее точный процесс. Не повезло. Вот ссылка: screencast.com/t/f50qR5eWq2B
L84

@Lynda Я немного отредактировал свой ответ, включил некоторые возможности внизу, обновил ffmpeg до той же версии, что и вы показываете ...
Bon Gart

Мне придется попробовать другую сборку, я думаю. Я попытался переименовать, переупорядочить файловую систему и т. Д. И все те же результаты. Это единственное место, где я его установил. И я попробовал ffmpeg на старом компьютере с теми же результатами и прекратил попытки, потому что у компьютера были проблемы. Это другой компьютер без проблем другого и еще и результатов. Я попробую другую сборку, я думаю.
L84

14

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


3

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

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

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

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


Это справедливо правильный ответ!
Папахо,

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»


0

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

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

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

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

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

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


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.