Исходные файлы UTF-8 не поддерживаются в avisynth
Я использую Avisynth для демультиплексирования видео из аудио. Когда я использую
x = "m.mkv"
ffvideosource(x)
Он работает правильно, но когда я меняю имя файла с видео на UTF-8, а мой сценарий выглядит так:
x = "م.mkv"
ffvideosource(x)
Я получил следующую ошибку: не удалось открыть для хеширования avisynth
Я нашел ссылку ( исходные файлы UTF-8 не поддерживаются), которая сообщает, что имя файла UTF-8 не работает в avisynth, и для устранения проблемы было сказано:
укажите параметр utf8=true при вызове ffvideosource, сохраните сценарий как UTF-8 без спецификации и посмотрите, работает ли он.
Но я не мог решить проблему. Открыв скрипт в блокноте и сохранив его в формате utf-8, я получил следующую ошибку:
UTF-8 Исходные файлы не поддерживаются, заново сохраните скрипт с кодировкой ANSI
Как я могу решить проблему, Как я могу запустить свой скрипт с именем файла UTF-8?
2 ответа
Очень распространенная проблема при использовании UTF-8 в AviSynth.
Следуй этим шагам:
1) Проверьте папку плагинов. Должны существовать эти три файла: ffms2.dll
, ffmsindex.exe
, а также FFMS2.avsi
, Если у вас не было проблем с ANSI
Я думаю, что у вас нет FFMS2.avsi
в вашей папке плагинов; В этой ситуации загрузите последнюю версию формы здесь.
2) После этого сделайте AVS
файл с помощью Блокнота ++. Например я делаю это:
x = "C:/Users/Nemat/Desktop/StackOverFlow/نعمت.mkv"
ffmpegsource2(x,utf8=true)
Обратите внимание, что здесь я использовал ffmpegsource2()
,
3) В Encoding
меню из Notepadd++ выберите Encode in UTF-8 without BOM
,
4) Сохраните ваш файл.
5) Убедитесь, что видеофайл существует в указанном каталоге.
6) Двойной клик на вашем AVS
файл.
7) Наслаждайся этим!
"Withou BOM" важен. Вам нужно сохранить файл как необработанный UTF-8 без искусственной спецификации в стиле Microsoft. Блокнот не может этого сделать, он всегда сохраняет файлы UTF-8 с нежелательным заголовком 0xEF 0xBB 0xBF. Большинство других текстовых редакторов (например, Notepad++) могут делать это правильно.
Avisynth на самом деле не поддерживает Unicode, поэтому он не хочет, чтобы вы использовали UTF-8, и выдаст это сообщение об ошибке, чтобы попытаться остановить вас от ошибок. Обходной путь ffvideosource для сокрытия байтов UTF-8 в том, что Avisynth видит как символы "ANSI", работает только до тех пор, пока Avisynth видит файл как ANSI. Avisynth не имеет очень сложного кодирования-угадывания, поэтому достаточно удалить поддельную спецификацию, чтобы убедить ее в том, что она имеет дело с ANSI.