我有一个命令行PHP脚本,当在执行脚本时将文件夹名称作为参数时,将找到所述文件夹中的所有图像并使用FFmpeg调整它们的大小。问题是,当FFmpeg尝试获取文件夹中的文件时,我总是会在FFmpeg中收到Permission Denied错误。这是在Windows 7上。
最大的问题是,当我搜索如何修复它时,我已经尝试了一些不断出现在互联网上的解决方案。我已经更改了Avast!中的设置,将attrib命令(正常和“以管理员身份运行”)取消标记为只读,通过命令行获取文件夹的所有权并使用该GUI获取上下文菜单不停地投掷(显然在我努力将所有内容标记为非只读之前),与权限混淆,所有内容。我一直在寻找和寻找解决方案,但所有的网站都不断地反复抛出相同的东西 - 我已经多次尝试过的东西。我在这里结束了。我想做的就是快速自动调整图像大小,这样我就可以将它们放到我的网站上,但这一直是一个令人头痛的问题...
请帮帮我! :(
更新(附加积分):
错误是通过FFmpeg,而不是PHP。 FFmpeg吐出了权限被拒绝的错误,脚本只是继续执行正常的操作(或者,至少,如果不是因为我的die语句在FFmpeg失败的情况下启动的话)。
< / LI>如果FFmpeg通过命令行而不是通过脚本正常运行,它将执行得很好。但是,这无助于我手动调整数百张照片的问题!
我只是使用CLI引擎在普通终端中运行此脚本。我知道PHP很奇怪,但是因为我已经知道如何在PHP中使用FFmpeg(但是在Linux中!)所以我想我也可以将代码用作普通的独立程序......
无论使用哪个PHP函数执行它,FFmpeg都会发出相同的错误。它适用于shell_exec,exec,passthru和system。
答案 0 :(得分:1)
我记得有同样的问题,我建议你从检查FFMpeg for Windows的其他编辑开始。我使用了以下之一,他们工作得很好!请转Zeranoe FFmpeg builds,然后告诉我们是否解决了您的问题。我使用64位Builds(静态)版本!并非FFMpeg for Windows的所有编辑都是一样的!如果仍然无法正常工作,请让我们看一下您正在使用的错误日志和命令行!虽然我认为一切都应该没问题!
另一方面,您可以简化所有内容并尝试使用Mogrify Utility,其工作方式非常简单:
mogrify -resize 640×480 *.jpg
我可以确认我也使用它而不是FFMpeg。只需安装该工具并更改脚本中的命令行即可!它最有可能使用比FFMpeg更少的资源,并为您提供相同的结果!
一切顺利,伊利亚。
答案 1 :(得分:0)
我通过以管理员身份打开命令提示符来解决此问题。这是通过突出显示命令提示符文件名并使用CTRL + SHIFT + ENTER打开来实现的。
答案 2 :(得分:-1)
请参阅此网址: -
http://forum.serviio.org/viewtopic.php?f=5&t=960
阅读本文
假设从Windows服务运行的ffmpeg需要访问网络服务器上的文件,您需要确保服务用户帐户具有足够的网络权限。
如果两台计算机位于同一个Windows域中,则可以在域帐户下运行这些服务,并添加从该帐户访问网络共享的权限。
或者,您可以允许Everyone访问网络共享并编辑本地安全策略以启用网络访问:让Everyone权限应用于匿名用户。