ffmpegを使ってビデオトランスコーダーを作成しました。ユーザーはRAWビデオをFTP経由でアップロードします - 非常に大きく、約20GB -ファイルのアップロードが完了したときに通知する最も良い方法
現在、PHPスクリプトは、以下の戦略で5秒ごとにローカルパスを監視しています。
- ローカルファイルシステムをルックアップします。
- 「新しい」ファイルが表示された場合は、変更された時間とサイズのデータベースに追加します。
- 5秒後に、再び変更時間とサイズを確認し、
- 変更されていない:[DONE]として設定する状態を、そして「./output」ディレクトリにビデオをエンコードします。 ( '出力'は明示的に監視から除外されています)
- 変更:さらに5秒待ってください。
それは非常にうまく動作しますが、それは新しいファイル」を見つけるためにいくつかのCPUパワーを燃やします。ファイルのアップロードが完了しているときに「正確なタイミング」を得る方法はありますか?
、それはPHPで行われなければならない:PHPがでinotifyをサポートしていますか?また、「./output 'ディレクトリにビデオをエンコードする」と言うと、それを出力ディレクトリにコピーするという意味ですか? – Abbas
可能であれば、inotifyをインストールし、bashスクリプトを使って簡単にインストールすることができます。さもなければ、bashスクリプトは依然としてより効率的です。 –
@AbbasそれはLinux上で動作し、私はPHPまたはPythonでそれをやりたいと思います。 'encode'はビデオがffmpegでエンコードされ、その結果が './output'ディレクトリに保存されることを意味します。 – lqez