ini_set ( 'max_execution_time', 0 );
// dane konfiguracyjne
$dirName = 'PlikiWsadowe/';
$dirDone = 'FilesDone/';
$dirMovie = 'FilesMovie/';
$dirFFMPEG = 'xxxxxxx/ffmpeg ';
// koniec danych configuracyjnych
if ( $Handle = opendir( $dirName ) )
{
while ( false !== ( $file = readdir( $Handle ) ) )
{
$FullPath = $dirName . $file;
$PathParts = pathinfo( $FullPath );
if ( !is_dir( $FullPath ) && $file != 'CVS' && $file != '.' && $file != '..' )
{
$arrFiles[] = trim( $file );
}
}
closedir( $Handle );
}
print 'znalezione pliki';
?><pre>
<? print_r ( $arrFiles ); ?> </pre>
<?
// wykonujemy operacja dla wszystkich plikow z tablicy $arrFiles
if ( $arrFiles )
{
// ladowanie bibliotek
$extension = 'ffmpeg.so';
$extension_soname = $extension . '.' . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . '/' . $extension_soname;
//echo $extension_fullname;
{
dl( $extension ) or
die( 'lib niedostepny: $extension_fullname' ); }
foreach ( $arrFiles as $file )
{
//przenosimy plik
if ( is_file ( $dirName . $file ) ) {
$FileSource = $dirName . $file;
$strParameters = '-y -ar 22050 -acodec mp3 -ab 32 -f flv -s 330x220';
$FileOut = $dirMovie . $strDestinationName . '.flv';
$strKomenda = $dirFFMPEG . '-i ' . $FileSource . ' ' . $strParameters . ' ' . $FileOut . '' ;
}
$nameFile = $arrExt[0];
$objMovie = new ffmpeg_movie( $FileOut );
$Time = floor( $objMovie->getDuration() );
// czasy klatek do pobrania
$Frame2 = floor ( $Time / 3
); $Frame3 = floor ( $Frame2 * 2
); $arrFrames = array ( 0
, $Frame2, $Frame3 );
foreach ( $arrFrames as $key=>$val )
{
$imgName = $dirDone . $strDestinationName . '_' . $key . '.jpg';
$strKomenda = $dirFFMPEG . '-i ' . $dirMovie . $strDestinationName . '.flv -s 150x100 -vframes 1 -ss ' . $val . ' -f mjpeg ' . $imgName ;
print ( 'Dla pliku <b>' . $file . '</b>(' . $strDestinationName . '.flv) zostala utworzona miniatura o nazwie ' . $imgName . '<br /><br />' );
}
// dopisanie pliku do bazy i pobranie jego ID
// koniec dopisania pliku w db
print ( 'Plik <b>' . $file . '</b> zostal dodany pod nazwa ' . $strDestinationName . '.flv<br>' );
// czasy klatek do pobrania
$Frame2 = floor ( $Time / 3
); $Frame3 = floor ( $Frame2 * 2
); $arrFrames = array ( 0
, $Frame2, $Frame3 );
foreach ( $arrFrames as $key=>$val )
{
$imgName = $dirDone . $strDestinationName . '_' . $key . '.jpg';
$strKomenda = $dirFFMPEG . '-i ' . $dirMovie . $strDestinationName . '.flv -s 150x100 -vframes 1 -ss ' . $val . ' -f mjpeg ' . $imgName ;
print ( 'Dla pliku <b>' . $file . '</b>(' . $strDestinationName . '.flv) zostala utworzona miniatura o nazwie ' . $imgName . '<br /><br />' );
// dopisanie mini do bazy danych
}
}
}
dla przejrzystosci wyciolem ze skryptu dzialania sql'owe
plik konwertuje filmy (prezentacje w formie filmu avi) do formatu flasha flv.
na poczatku konwertowalem kilka plikow na raz (stad petla na poczatku) pozniej dzialania realizowalem juz tylko na jednym pliku.
dzialanie pliku
pobranie pliku(plikow) z katalogu pliki wsadowe
operacje: konwersja do formatu flv, skalowanie, itp.
zapisanie pliku
utworzenie trzech miniatur z trzech roznych czasow filmu
czesto zdarza sie ze skrypt nie wykonuje sie tylko chce zapisac go w formie pliku php o zerowej pojemnosci
ponizej podaje screenshot

sytuacja jest dla mnie bardzo dziwna
nie wiem jak sobie z tym poradzic
prosze o pomoc
naprawde nikt nie spotkał sie z podobnym problemem?