2016-10-21 15 views
0

phpとffmpegを使用して、ビデオフレームの1ミリ秒ごとにイメージと異なる位置を追加する必要があります。 たとえば、次のようになります。 最初の2番目に、X位置に画像を追加し、次の2番目に位置Xにある別の画像を追加します。 端末で直接コマンドを使用すると、変換は成功します。しかし、PHPで私は困難があります。 PHPでは は、次のコマンドを使用します。ffmpegとphpを使用してビデオをミリ秒ごとに追加します

<?php 
shell_exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\vid.mp4 -i C:\\ffmpeg\\bin\\1.png -filter_complex "[0:v][1:v] overlay=100:25:enable=\'between(t,1,1.5)\'" C:\\ffmpeg\\bin\\output1.mp4'); 
sleep(20); 
echo "1"; 
shell_exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\output1.mp4 -i C:\\ffmpeg\\bin\\2.png -filter_complex "[0:v][1:v] overlay=10:25:enable=\'between(t,1.5,2)\'" C:\\ffmpeg\\bin\\output2.mp4'); 
sleep(50); 
echo "2"; 
shell_exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\output2.mp4 -i C:\\ffmpeg\\bin\\3.png -filter_complex "[0:v][1:v] overlay=250:25:enable=\'between(t,2,2.5)\'" C:\\ffmpeg\\bin\\output1.mp4'); 
sleep(20); 
echo "3"; 
shell_exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\output1.mp4 -i C:\\ffmpeg\\bin\\4.png -filter_complex "[0:v][1:v] overlay=300:25:enable=\'between(t,3,3.5)\'" C:\\ffmpeg\\bin\\output2.mp4'); 
sleep(20); 
echo "4"; 
shell_exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\output2.mp4 -i C:\\ffmpeg\\bin\\5.png -filter_complex "[0:v][1:v] overlay=350:25:enable=\'between(t,4,4.5)\'" C:\\ffmpeg\\bin\\output1.mp4'); 
sleep(70000); 
shell_exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\output1.mp4 -i C:\\ffmpeg\\bin\\1.png -filter_complex "[0:v][1:v] overlay=400:25:enable=\'between(t,5,5.5)\'" C:\\ffmpeg\\bin\\output2.mp4'); 

私は、スリープ機能(PHP)を使用しますが、それはうまくいきませんでした。 私はffmpegとPHPで多くの経験がないので、私を助けることができますようにしてください。

ありがとうございました。

答えて

0

コマンドの出力を調べてトラブルシューティングを行います。それはあなたに答えを与えるはずです。

exec('C:\\ffmpeg\\bin\\ffmpeg.exe -i C:\\ffmpeg\\bin\\vid.mp4 -i C:\\ffmpeg\\bin\\1.png -filter_complex "[0:v][1:v] overlay=100:25:enable=\'between(t,1,1.5)\'" C:\\ffmpeg\\bin\\output1.mp4', $output); 
var_dump($output); 
+0

これは回答ですか、それともコメントですか? – IInspectable

+0

コメント。 verifiyコマンドの出力が必要です。 – Domenike

関連する問題