4

我使用 avisynth 从音频中解复用视频。当我使用

 x = "m.mkv"
 ffvideosource(x)

它可以正常工作,但是当我将视频文件名更改为 UTF-8 并且我的脚本为:

 x = "م.mkv"
 ffvideosource(x)

我收到以下错误:无法打开哈希 avisynth

我找到了一个链接(不支持 UTF-8 源文件),它告诉 UTF-8 文件名在 avisynth 中不起作用,为了纠正这个问题,它说:

调用ffvideosource时指定参数utf8=true,将脚本另存为不带BOM的UTF-8,然后看看是否有效。

但是,我无法解决问题。当我在记事本中打开脚本并将其保存为 utf-8 格式时,出现以下错误:

不支持 UTF-8 源文件,使用 ANSI 编码重新保存脚本

我该如何解决这个问题,如何使用 UTF-8 文件名运行我的脚本?

4

2 回答 2

3

“Withoutt BOM” is important. You need to save the file as raw UTF-8 without the Microsoft-style faux-BOM. Notepad can't do this, it always saves UTF-8 files with that generally-undesirable 0xEF 0xBB 0xBF header. Most other text editors (e.g. Notepad++) can do it properly.

AviSynth isn't really Unicode-aware so it doesn't want you using UTF-8 and will give that error message to try to stop you making mistakes. ffvideosource's workaround of hiding UTF-8 bytes in what AviSynth sees as ‘ANSI’ characters only works as long as AviSynth sees the file as ANSI. AviSynth doesn't have very sophisticated encoding-guessing, so removing the faux-BOM is enough to convince it is dealing with ANSI.

于 2014-08-18T17:11:57.937 回答
2

在 AviSynth 中使用 UTF-8 时非常常见的问题。

按着这些次序:

  1. 检查插件文件夹。应该存在这三个文件:ffms2.dllffmsindex.exeFFMS2.avsi. 如果您没有问题ANSI,我猜FFMS2.avsi您的插件文件夹中没有;在这种情况下,请在此处下载最新版本的表格。

  2. 之后AVS用 Notepad++ 创建一个文件。例如我这样做:

    x = "C:/Users/Nemat/Desktop/StackOverFlow/نعمت.mkv"
    ffmpegsource2(x,utf8=true)
    

    请注意,我在这里使用了ffmpegsource2().

  3. EncodingNotepadd++ 的菜单中选择Encode in UTF-8 without BOM.

  4. 保存您的文件。

  5. 检查视频文件是否存在于寻址目录中。

  6. 双击您的AVS文件。

  7. 好好享受!

于 2014-08-18T17:17:55.307 回答