Windows 将 m3u8 链接参数视为来自 ffmpeg 命令的 CMD 命令

Windows 将 m3u8 链接参数视为来自 ffmpeg 命令的 CMD 命令

我正在尝试使用 ffmpeg 下载 m3u8 文件,它一直运行正常,直到几天前,它开始出现异常。

首先让我写下命令的样子:

ffmpeg -i https://LINK.TO/FILE.m3u8?Policy=eyQ__&Signature=eFI5zA__&Key-Pair-Id=APKAJMWS -c copy -bsf:a aac_adtstoasc output.mp4
pause

可以看到,该链接是m3u8文件的,有三个参数,分别是Policy、Signature和Key-Pair-Id。

预期结果应该是一个名为 output.mp4 的 mp4 文件,但我看到的是一堆错误消息,然后 CMD 窗口关闭,这是错误消息:

'Signature' is not recognized as an internal or external command,
operable program or batch file.
'Key-Pair-Id' is not recognized as an internal or external command,
operable program or batch file.

为什么 Windows 将它们视为命令?

你可以清楚地看到它们只是参数!

答案1

为什么Windows将它们视为命令?您可以清楚地看到,它们只是参数!

但事实并非如此。在 cmd.exe 中&特殊字符- A命令分隔符,类似于;Bash。其目的是具体来说将您的输入拆分为三个单独的命令,一个接一个地运行。

为了避免这种情况,请将参数放在引号中:

ffmpeg -i "https://LINK.TO/FILE.m3u8?Policy=eyQ__&Signature=eFI5zA__&Key-Pair-Id=APKAJMWS" -c copy -bsf:a aac_adtstoasc output.mp4

相关内容