ユーザーが動画をアップロードするだけで、この動画をユーザー定義のセグメントに分割するコードを記述し、それらのセグメントを動画に変換.flv
し.mp4
ます。
それを行う方法はありますか?
3 に答える
PHP内でこれを直接行う方法はないと思います。あったとしても、それは最も賢明なことではないでしょう。
最善の策は、Webアプリケーションをffmpegなどのコマンドラインプログラムに接続し、PHPスクリプトからシステムコマンドを呼び出すことです。
これにアプローチするには、Webアプリケーションを使用してジョブキューを作成し、キューにジョブを追加し、専用のワーカープロセスがキューからプルして、タスクを実行し、タスクの完了を別の場所に記録します。
これは、ユーザーがビデオがリアルタイムで再エンコードされるのを待つ必要がないことを意味します。
ビデオをセグメントに分割する方法はありません。ビデオの変換については、こちらの例をご覧ください-http://www.ffmpeg.org/ffmpeg-doc.html#SEC18。
実際には、FFMPEG-PHP$movie->getFrame()
をチェックインして、オブジェクトのメソッドを使用して定義された時間にビデオから静止ショットを取得ffmpeg_movie
することができ、ユーザーが時間を調整できるようにすることもできます。
動画を分割するキーフレームがわかったら、PHP アプリケーションからffmpeg コマンドを実行できます。
PHP Resque (私が頻繁に使用する Ruby の Resque に基づく) を統合して、ffmpeg コマンドの実際の実行をキューに入れることをお勧めします。そうしないと、アプリケーションが停止してしまうからです。perform()
実行するメソッドを含むクラスを設定するだけで、ffmpeg
PHP Resque を使用してジョブのステータスを監視できます。