The natural way to run ffmpegfrom PHP scripts is something like:
<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -i input.avi output.avi &");
echo "Done.\n";
?>
, . , , , , ffmpeg ( "&" ), PHP ffmpeg . , PHP exec(), :
, , . PHP .
, shell_exec() exec(). PHP- .
, , - :
<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -i input.avi output.avi >/dev/null 2>/dev/null &");
echo "Done.\n";
?>
, " > /dev/null" , OUTDUT (stdout) ffmpeg /dev/null ( ) 2 > /dev/null " ERROR (stderr) /dev/null ( ). : " > /dev/null 2 > & 1". , -.
. ffmpeg stderr , stdout ( , ffmpeg, ). , ffmpeg , , , stderr , .
, , INPUT (stdin). ffmpeg , ( ) / . ffmpeg , ffmpeg, ( ) stdin. ffmpeg, / ** " ffmpeg :
<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -y -i input.avi output.avi </dev/null >/dev/null 2>/var/log/ffmpeg.log &");
echo "Done.\n";
?>
"- y" (output.avi) yes/no. , , , "- n" .
Wrapper
PHP ffmpeg PHP , . PHP-FFMpeg. , ffmpeg ffprobe, PHP. PHP- :
$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open('video.mpg');
$video
->filters()
->resize(new FFMpeg\Coordinate\Dimension(320, 240))
->synchronize();
$video
->save(new FFMpeg\Format\Video\X264(), 'export-x264.mp4')
, . , GearmanClient, .
: ffmpeg-php - , 2007 ( "ffmpeg-0.4.9_pre1 " ), , ffmpeg . / ffmpeg's, ffmpeg-php ffmpeg.
.