FFMPEG 批处理文件中的权限被拒绝 - Windows

FFMPEG 批处理文件中的权限被拒绝 - Windows

我正在尝试使用 FFMPEG 调整视频大小。我想轻松地重复执行此操作,因此我尝试创建一个批处理文件(我使用 Windows 命令行),类似于我之前成功创建的批处理文件。这是设置。

我有一个文件,名字是z.mov。我想将其调整为某个通用大小。以下命令完美运行: ffmpeg -i z.mov -c:v libx264 -s:v 1920x1080 -c:a copy zz.mov

现在我想创建一个批处理文件,所以写了这个。

set filename = %1
set filetype = %2
set size = %3
ffmpeg -i %filename%.%filetype% -c:v libx264 -s:v %size% -c:a copy zz.mov
exit /b

当然,理想情况下,输出也应该是一个变量。我希望如此 output = %filename%_%size%.%filetype%。但是,我无法让上面的简单版本工作,因此我给出了上面的简单示例。

但是,我收到“权限被拒绝错误”——见下图。我尝试将其更改%filename%%1;没有改变任何东西。同样,我删除了变量,只写了set filename = z,等等;没有改变任何东西。如果我将上面列出的第一个代码放入批处理文件中,那么该部分将成功运行。

无论我是否在管理员提升的 CMD 窗口中运行,都会发生这种情况。

任何帮助都将不胜感激!

错误信息

答案1

我也遇到了同样的问题。原来是杀毒软件阻止了 WinFF/ffmpeg。一旦我停用杀毒软件(Avast!),WinFF 就可以正常工作了。

答案2

Windows 10 64 位。ffmpeg v.3.4

它没有任何意义,但它解决了我的“权限被拒绝”和“文件不存在”错误:对 infile 和 outfile 使用完整路径。我唯一没有做的就是在与我想要处理的文件相同的目录中运行批处理。我使用的是 pushd 和相对路径,批处理将无法工作,直到我将相对路径更改为绝对路径。我使用下面的 pushd / %cd% 示例。我留给你去发现在与你正在处理的文件相同的目录中运行批处理,而不使用 infile/outfile 完整路径是否可以解决你的问题。在具有管理员权限的窗口中运行批处理。

START "" /min "%windir%\ffmpeg.exe.lnk" -y -i "%zdoc1%\_RadioRecordings\bbc13.mp3" -metadata title="BBC RADIO 1" -metadata artist="HITS. NEW MUSIC." -metadata album="bbc.co.uk/sounds" -metadata album_artist="HITS. NEW MUSIC." -ss 00:01:15 -c copy "%zdoc1%\_RadioRecordings\bbc1.mp3"

或者使用 pushd 和 %cd%:

pushd "%zdoc1%\_RadioRecordings"
START "" /min "%windir%\ffmpeg.exe.lnk" -y -i "%cd%\bbc13.mp3" -metadata title="BBC RADIO 1" -metadata artist="HITS. NEW MUSIC." -metadata album="bbc.co.uk/sounds" -metadata album_artist="HITS. NEW MUSIC." -ss 00:01:15 -c copy "%cd%\bbc1.mp3"

如果您将批处理作为计划任务运行,请在批处理之前运行以下命令:

 taskkill /f /im conhost.exe

如果批处理文件没有正确完成,则 conhost.exe 的一个实例可能会继续运行。如果在终止 conhost.exe 之前运行该批处理,则该批处理将失败。

如果您重定向批处理的输出,则不会造成问题。

相关内容