3

I have a command-line PHP script that, when given the folder name as an argument when executing the script, will find all images in said folder and resize them using FFmpeg. Problem is, I always get a Permission Denied error in FFmpeg when it attempts to get at the files within the folder. This is while being on Windows 7.

The big problem is that I've tried every solution that keeps popping up on the interwebs when I search for how to fix it. I've changed the settings in Avast!, did the attrib command (both as normal and "Run as Administrator") to unmark as read-only, took ownership of the folder both via command line and using that GUI takeown context menu thing everyone keeps throwing around (obviously before my efforts to mark everything as not-read-only), messed with permissions, everything. I keep searching and searching for a solution, but all of the sites keep throwing out the same things over and over again - things that I've already tried multiple times. I'm at the end of my rope here. All I want to do is resize images quickly and automatically so I can put them up on my website, yet this has been a massive headache...

Please help me! :(

Update (Additional Points):

  • The error is through FFmpeg, not PHP. FFmpeg spits out the permission denied error, the script just continues doing what it does normally (or, at least, it would if it weren't for my die statement that kicks in in the event of FFmpeg failing).

  • FFmpeg will execute just fine if it's run normally through the command line instead of through the script. However, this does not help the problem of me having to resize hundreds of photos by hand!

  • I'm just running this script in the normal terminal using the CLI engine. Weird use for PHP, I know, but since I already knew how to work with FFmpeg in PHP (but in Linux!) so I figured I might as well use the code as a normal, stand-alone program...

  • FFmpeg spits out the same error regardless of which PHP function is used to execute it. It happens for shell_exec, exec, passthru, and system.

4

3 に答える 3

1

同じ問題が発生したことを覚えているので、Windows 用の FFMpeg の他のコンパイルを確認することから始めることをお勧めします。次のいずれかを使用しましたが、完全に機能しました。Zeranoe FFmpeg ビルドに移動 して、問題が解決するかどうかをお知らせください。64 ビット Builds (Static) バージョンを使用しました。FFMpeg for Windows のすべてのコンパイルが同じというわけではありません! それでも問題が解決しない場合は、エラー ログと使用しているコマンド ラインを確認してください。私はすべてがうまくいくはずだと思いますが!

一方、すべてを簡素化し、それと同じくらい簡単に機能するMogrify Utilityを使用してみることができます。

 mogrify -resize 640×480 *.jpg

FFMpegの代わりに使ったことも確認できました。ツールをインストールして、スクリプトのコマンド ラインを変更するだけです。ほとんどの場合、FFMpeg よりも少ないリソースを使用し、同じ結果が得られます!

頑張れ、イリヤ。

于 2012-08-11T17:46:24.500 に答える
0

コマンドプロンプトを管理者として開くことで、この問題を解決しました。これは、コマンド プロンプト ファイル名を強調表示し、CTRL + SHIFT + ENTER で開くことによって実現されます。

于 2014-10-27T00:32:42.137 に答える
-1

この URL を参照してください:-

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

これを読む

Windows サービスから実行されている ffmpeg がネットワーク サーバー上のファイルにアクセスする必要があると仮定すると、サービス ユーザー アカウントに十分なネットワーク アクセス許可があることを確認する必要があります。

両方のコンピューターが同じ Windows ドメインにある場合は、ドメイン アカウントでサービスを実行し、このアカウントからネットワーク共有にアクセスするためのアクセス許可を追加できます。

または、Everyone にネットワーク共有へのアクセスを許可し、ローカル セキュリティ ポリシーを編集してネットワーク アクセスを有効にすることもできます。Everyone のアクセス許可を匿名ユーザーに適用します。

于 2012-08-11T18:12:04.667 に答える