所以如果视频标题中有当前语言环境不支持的符号,ffmpeg 将无法正确获取该文件。
以下是一个例子
►2 HOURS BEST MELODIC DUBSTEP MIX APRIL 2013◄ ヽ( ≧ω≦)ノ
您可能看到也可能看不到,有很多来自unicode的符号。
问题是在cmd和ffmpeg中,虽然cmd可以看到
►2 HOURS BEST MELODIC DUBSTEP MIX APRIL 2013◄ ヽ( ≧ω≦)ノ
ffmpeg 只看到
2 HOURS DUBSTEP_DRUMSTEP MIX AUGUST 2013 ヽ(≧ω≦)ノ
这是确切的错误信息(我正在使用 youtube-dl)
[ffmpeg] Adding metadata to 'C:\Music\ToBeDone\2014-06-01\►2 HOURS DUBSTEP_DRUMSTEP MIX AUGUST 2013◄ ヽ( ≧ω≦)ノ.mp4'
ERROR: C:\Music\ToBeDone\2014-06-01\2 HOURS DUBSTEP_DRUMSTEP MIX AUGUST 2013 ヽ(≧ω≦)ノ.mp4: No such file or directory
ERROR: WARNING: unable to obtain file audio codec with ffprobe
经过一番研究,我确定通过更改系统区域设置,您可以更改 cmd 可以支持的符号。
然而
ヽ
在美国语言环境中,它显示为问号中的方框。在日语语言环境中,它显示的内容与现在屏幕上显示的一样。
问题
◄
即使它没有以问号的形式出现在框中(它以应有的形式出现),ffmpeg(或 cmd)也无法正确检测到它。
(请参考错误信息,我将在下面重新发布它。)
[ffmpeg] Adding metadata to 'C:\Music\ToBeDone\2014-06-01\►2 HOURS DUBSTEP_DRUMSTEP MIX AUGUST 2013◄ ヽ( ≧ω≦)ノ.mp4'
ERROR: C:\Music\ToBeDone\2014-06-01\2 HOURS DUBSTEP_DRUMSTEP MIX AUGUST 2013 ヽ(≧ω≦)ノ.mp4: No such file or directory
ERROR: WARNING: unable to obtain file audio codec with ffprobe
正如你所看到的,我认为 cmd 从添加元数据行来看正确地将符号传递给了 ffmpeg,但是当它实际执行操作时,ffmpeg 丢失了
► and ◄
这可能是 ffmpeg 的一个错误吗?到目前为止,我解决不兼容符号的方法是更改系统语言环境,但我认为我无法使用这两个符号来做到这一点……
这些是我需要具有支持的区域设置的独特字符
Ö
◄ ヽ( ≧ω≦)ノ
( ͡° ͜ʖ ͡°)
(_≧∇≦)
†
【
有关问题的更多信息
https://github.com/rg3/youtube-dl/issues/2999
这就是正在发生的事情(批处理脚本)
@echo off
setlocal
cd C:\youtube-dl
set /p "var1=Enter URL: " %=% pause
if defined var1 set "var1=%var1:"=%"
set "var2=%date:/=-%"
set "var3=%%(title)s.%%(ext)s"
youtube-dl "%var1%" -ci -o "C:\Music\ToBeDone\%var2%\%var3%" -f best -x --no-mtime -- add-metadata
youtube-dl "%var1%" --skip-download -ci -o "C:\Music\ToBeDone\%var2%\Thumbnail\%var3%" --write-thumbnail
youtube-dl "%var1%" --skip-download -ci -o "C:\Music\ToBeDone\%var2%\Description\%var3%" --write-description