youtube-dl、ffmpeg 和 cmd 之间的字符消失

youtube-dl、ffmpeg 和 cmd 之间的字符消失

所以如果视频标题中有当前语言环境不支持的符号,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

相关内容