2016-10-21 2 views
0

Мне нужно добавить изображение и другое положение для каждой миллисекунды видеофрагмента, используя php и ffmpeg. Например: В первую секунду я добавляю изображение в положение X, следующее второе другое изображение в позиции 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

Смежные вопросы