3

我有一个命令行 PHP 脚本,当在执行脚本时将文件夹名称作为参数给出时,它将找到所述文件夹中的所有图像并使用 FFmpeg 调整它们的大小。问题是,当 FFmpeg 尝试获取文件夹中的文件时,我总是收到 Permission Denied 错误。这是在 Windows 7 上时。

最大的问题是,当我搜索如何修复它时,我已经尝试了所有不断出现在互联网上的解决方案。我已经更改了 Avast! 中的设置,将 attrib 命令(正常和“以管理员身份运行”)取消标记为只读,通过命令行和使用 GUI 获取文件夹的所有权并使用每个人的上下文菜单一直到处乱扔(显然在我努力将所有内容标记为非只读之前),弄乱了权限,一切。我一直在寻找解决方案,但所有网站都一遍又一遍地抛出相同的东西——我已经尝试过多次的东西。我已经走到了尽头。我想做的就是快速自动调整图像大小,以便将它们放在我的网站上,

请帮我!:(

更新(附加点):

  • 错误是通过 FFmpeg,而不是 PHP。FFmpeg 吐出权限被拒绝错误,脚本只是继续做它通常做的事情(或者,至少,如果不是我的 die 语句在 FFmpeg 失败的情况下启动)。

  • 如果 FFmpeg 通过命令行而不是脚本正常运行,它将执行得很好。但是,这无助于我不得不手动调整数百张照片的大小!

  • 我只是使用 CLI 引擎在普通终端中运行此脚本。我知道 PHP 的奇怪用途,但因为我已经知道如何在 PHP 中使用 FFmpeg(但在 Linux 中!)所以我想我不妨将代码用作普通的独立程序......

  • 无论使用哪个 PHP 函数执行,FFmpeg 都会吐出相同的错误。它发生在 shell_exec、exec、passthru 和 system 上。

4

3 回答 3

1

我记得有同样的问题,我建议你从检查 Windows 的 FFMpeg 的其他编译开始。我使用了以下之一,它们工作得很好!请转到Zeranoe FFmpeg 构建 ,然后让我们知道它是否解决了您的问题。我使用的是 64 位构建(静态)版本!并非所有适用于 Windows 的 FFMpeg 编译都是相同的!如果它仍然无法正常工作,请让我们查看错误日志和您正在使用的命令行!虽然我认为一切都应该没问题!

另一方面,您可以简化一切并尝试使用Mogrify 实用程序,它的工作方式非常简单:

 mogrify -resize 640×480 *.jpg

我可以确认我也使用了它而不是 FFMpeg。只需安装该工具并更改脚本中的命令行即可!它最有可能比 FFMpeg 使用更少的资源,并为您提供相同的结果!

一切顺利,伊利亚。

于 2012-08-11T17:46:24.500 回答
0

我通过以管理员身份打开命令提示符解决了这个问题。这是通过突出显示命令提示文件名并使用 CTRL+SHIFT+ENTER 打开来实现的。

于 2014-10-27T00:32:42.137 回答
-1

请参阅此网址:-

http://forum.serviio.org/viewtopic.php?f=5&t=960

读这个

假设从 Windows 服务运行的 ffmpeg 需要访问网络服务器上的文件,则需要确保服务用户帐户具有足够的网络权限。

如果两台计算机都在同一个 Windows 域中,那么您可以在域帐户下运行服务并添加从该帐户访问网络共享的权限。

或者,您可以允许所有人访问网络共享并编辑本地安全策略以启用网络访问:让所有人权限适用于匿名用户。

于 2012-08-11T18:12:04.667 回答