2016-04-29 14 views
1

私は、配置されたイメージの位置が移動するサーバー側のPHPによってmp4シーケンスに静止画像を挿入したいと思います。クロマキーの色(または指定された座標)を部屋に入れると、このフォトフレームの位置がビデオ内で移動します(可能な場合)。 Facebookの「Friends Day」ビデオに似ています。これを参照してくださいexample linkイメージをMP4ビデオにPHPで挿入

私にそうすることができるクラスまたは機能はありますか?

この前の質問をチェックアウトしても結論が出ないと思われますか? Inserting an image inside a video at particular position via PHP and a video extension

ご協力いただきありがとうございます。

+0

PHPだけでこれを行う方法についての答えはありませんが、うまくいけば私の答えはいくつかのアドバイスで有用でした。 –

+0

サンプルツールへのリンクだけでなく詳細な返信にも感謝します。あなたのステップごとにFFmpegを使用して見てみましょう。また、私のクライアントが挿入されたイメージを使ってスティルフレームを解決するなら、私たちはwound/tをperspective/distortsを適用する必要があります。 – Hofuzz

+0

PS: TV Newsreader +サムネイルのように)** [リンクされた回答](http://video.stackexchange.com/a/12111)**を使用して、xの時間だけ1つの位置に画像を配置することができます。ロゴ付きの車のような動きがある場合は、静止画(グラブ)が必要で、画像を配置する場所を各フレームで確認します。これは、PHPがうまく機能するようになっています(ただし、準備されたビデオ入力では機能しません)。これにはC++/C#やJavaやAS3のようなものが必要です。 –

答えて

1

あなたは、PHP以上の必要があります。ピクセルプログラミングとそのサブカテゴリに関するいくつかのことを理解する必要があります:コンピュータビジョン。

リアリティチェックを表示する前に、タスクが実際にはちょうど"...Insert still images into a mp4 sequence by PHP"のように単純であるとしましょう。何が必要ですか?

するTry PHP:
あなたがイメージが、あなたは、ユーザーの写真と緑のピクセルを置き換えるために、このPHP methodを考慮することができる挿入されるべき緑のカラーボックスのようなものを持っているあなたの入力映像を準備している場合。

1フレームごとにこれを行う必要があります。 ...

をFFmpegのようなツールを試す単一フレームPNG画像に分解映像を取得するにはFFmpegをお試しください:
まず、サーバーにインストールされているにFFmpegを持っている(でもFFmpegのは、PHP接続にあります、すなわち:コマンドを送信し、受信します結果)。これは、ソース、オーバーレイ画像から抽出し、後で新しい出力ビデオをエンコードするために使用されます。特定の位置に画像を重ねる場合、this answerが表示されます。

以下のスニペットでは、2つの入力画像が指定されています(vid_frame1.pngは挿入する画像が必要なビデオグラブ、over_image1.pngはオーバーレイされる画像です)。 overlay=75:200は、(x)横方向に75ピクセル、下方向に200ピクセルの位置オーバーレイ画像を意味します(y)。

ffmpeg -i vid_frame1.png -i over_image1.png -filter_complex "[0:v][1:v] overlay=75:200" new_frame1.png 

あなたが見ることができるように、あなたは(配置位置は、時間の経過とともに変化します)動く映像では、各フレーム内の予想画像位置を追跡する必要があるので、位置を指定する必要があります。 24 FPSビデオでは、毎秒24の固有のポジションがあり、面倒なことがあります。上記のコマンドを24回実行し、毎回overlayの位置を変更します。

注:あなたはFFmpegのをインストールし、PHPでそれを使うなら、あなたはまた、stdinput/stdoutputプロセスを行うことができます。これは、「編集済みのフレーム」PNGを出力するのではなく、ビデオファイルに直接出力できることを意味します。あなたのプログラムが実行されるとビデオが生成され、終了すると完全なビデオファイルが作成されます。これは説明するには時間がかかりますが、あなたはその情報を知ることができます。

リアリティチェック...
あなたが話していることは、「ダイナミックビデオ」と呼ばれています。ピクセルトラッキング、パースペクティブディストーション、モーションブラーなどのタスクを処理するシステムが必要です。このシステムはサーバーベースのアプリケーション(Java?またはC#?を使用して作成)です。ここにはdynamic editing toolの1つの例があります。各コーナーへのポイントを歪め、あなたがpersectiveを持っている。また、このdistortion toolhereを発見した)のようなものをコード化してみてくださいので、我々はその緑のブロックのアイデアを取る場合は、今、あなたは、単にソースビデオフレームと位置、それらの中に緑のブロックの四隅を見つけます歪みなどPHP(私はそれを試みたことはありませんが)を介してモーションブラーのために...

関連する問題