所以发生的情况是,如果视频标题有一个您当前语言环境不支持的符号,那么 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