こんばんは。
ffmpegという動画のエンコードを行うアプリケーションをサーバーに組み込んで
mov→mp4に動画をエンコーディングする処理を書いています。
その上で、以下の要件で、動画の変換を行い、サーバーに保存するイメージとなります。
<サーバーリレーション>
・動画を保存しているサーバーとffmpegがインストールされているサーバーが別々のサーバー
A→動画を保存するサーバー
B→ffmpegがインストールされている動画のエンコード処理をするサーバー
<処理フロー>
①ユーザーがmov形式の動画をアップロード
②PHPで構築したウェブアプリケーション上でPOSTされた動画をGETし、curl
コマンドで動画をBサーバーに送る。
③Bサーバー上で動画を受け取ったら、それをffmpegでエンコードし
エンコードが終了したら変換されたmp4動画ファイルをAサーバーに保存する
現在、上記フローの②までは処理が実装できているのですが、詰まっているのが③の処理になります。
具体的には、動画の変換処理をffmpegにより行うため、shell_exec()
を使用して変換処理を行っているのですが
その変換されたファイルデータの取得方法がわからず困っています。
PHP
1<?php 2//curlで送られてきた動画データと動画ファイル名を取得し、変数に格納する 3//$rawVideo = mov形式の動画、 $rawFileName = mov形式の動画のファイル名 4//以下がffmpegによるmov→mp4の動画エンコーディング処理です。この変換後のデータを取得したいです。 5shell_exec('ffmpeg -i '.$rawVideo.' -vcodec libx264 -vpre default '.$rawFileName.'.mp4'); 6 7//最後は、shell_execでmov→mp4に変換された動画ファイルをAサーバーに渡すため、このように出力させたいです 8echo $encodedVideo; 9 10?>
そもそものshell_exec()
の使い方自体あまりわかっておりませんが、リファレンスをみると
返り値が文字列とのことみたいで、このようにメディアデータは返り値として帰ってこないのではないかと思います。
どなたか上記解決する方法をご存じの方いましたら、ぜひご教授頂きたく思います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/15 15:20 編集
2017/02/15 15:38
2017/02/16 09:13