ffmpeg неизвестное ключевое слово недопустимые данные, обнаруженные при обработке ввода

#ffmpeg

#Windows #powershell #ffmpeg

Вопрос:

У меня есть файл ffmpeg_list_of_files.txt с содержимым

 file '.Output_0forces_vs_radii.pdf'
file '.Output_1forces_vs_radii.pdf'
file '.Output_2forces_vs_radii.pdf'
file '.Output_3forces_vs_radii.pdf'
file '.Output_4forces_vs_radii.pdf'
and so on...
  

и затем запустите ffmpeg -f concat -i ffmpeg_list_of_files.txt -c copy output.mkv , как указано в

http://trac.ffmpeg.org/wiki/Concatenate

Я, к сожалению, получаю ошибку

 Line 1: unknown keyword ' ■f'
.ffmpeg_list_of_files.txt: Invalid data found when processing input
  

в Windows PowerShell в Windows 10.

Что я делаю не так?

Комментарии:

1. Ваш входной файл имеет неправильную кодировку (предположительно ФАЙЛ UTF-16). Запустите (Get-Content 'ffmpeg_list_of_files.txt') | Set-Content 'ffmpeg_list_of_files.txt' -Encoding Ascii , чтобы исправить это.

2. @AnsgarWiechers Я понятия не имею, как вы видите / догадались, что у меня неправильная кодировка, но ваше предложение, похоже, помогает. Теперь я должен исправить частоту кадров, потому .ffmpeg -f concat -safe 0 -i .ffmpeg_list_of_files.txt -c copy output.mkv -framerate 5 что, похоже, не работает. Спасибо!

3. Сообщение об ' ■f' ошибке в значительной степени является мертвой раздачей.

4. Вы пытаетесь превратить PDF-файл в изображение или видео? В FFmpeg нет демультипликатора PDF. Во-вторых, размещение параметров имеет значение, и конечные параметры часто игнорируются : ffmpeg [global options] [input options] -i [output options] output . В-третьих, -framerate это опция ввода для определенных демультиплексоров: вместо этого используйте для вывода -r .

Ответ №1:

Я также столкнулся с проблемой кодирования, которую я решил, изменив кодировку файла. Шаги по ее решению:

  1. Откройте ffmpeg_list_of_files.txt с помощью notepad, notepad или аналогичного
  2. Измените кодировку на UTF-8 без спецификации. Для этого выполните одно из следующих действий:
  • в блокноте Windows это делается с помощью опции «сохранить как …» и внизу меняем кодировку на «UTF-8» и нажимаем «сохранить»
  • с помощью notepad выберите «encoding» в главном меню и выберите «encoding with UTF-8 without BOM» и сохраните файл после этого

Имена могут немного меняться в зависимости от версии, но, следуя инструкциям, это довольно просто.

Примечание: В моем случае при перенаправлении ls или dir на файл в powershell кодировкой файла по умолчанию является USC-2