video conversion si php...

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Avatar utilizator
stergema
PHPRomania Supporter
Mesaje: 18
Membru din: Mar Mar 17, 2009 12:27 pm

video conversion si php...

Mesajde stergema » Vin Iun 19, 2009 2:02 pm

A facut cineva asa ceva ? Am citit ca singura modalitate e cu FFMPEG'ul... Ii adevarat ? Vreau sa fac un site, hai sa zicem gen youtube, in care oameni sa ridice video'uri in diferite formate, si ca un script php sa trimita cu ajutorul unor argumente (sau daca stiti voi alte modalitati, sunt foarte bine venite) video'urile pt a fi convertite... As incerca sa folosesc si FFMPEG'ul asta, dar site'ul vreau sa il ridic pe o platforma windows si am inteles ca FFMPEG'ul asta merge mult mai usor si mai bine pe Linux...
Multumesc...



Avatar utilizator
doryy42
Senior Member
Mesaje: 362
Membru din: Dum Feb 19, 2006 11:52 pm
Localitate: Bucuresti
Contact:

Se poate

Mesajde doryy42 » Sâm Iun 20, 2009 5:03 am

Am avut si eu problema asta cu conversia video pe windows si pe linux
dar pana la urma am reusit sa creez ceva si sa fac conversia video + audio si sub windows si sub linux cu aceiasi functie scrisa...
iti dau un inceput .. defapt un mare inceput .. este chiar functia care o folosesc.. nu vreau sa zic ca e foarte buna dar in cazul meu functioneaza pt ca nu se adauga multe articole video.

[php]
function convertToFLV($inputFile, $post_dets)
{
configo();
$cwd = isset($GLOBALS['config']['ffmpeg']) ? $GLOBALS['config']['ffmpeg'] : $_SESSION['config']['ffmpeg'];
$cwft = isset($GLOBALS['config']['flvtool2']) ? $GLOBALS['config']['flvtool2'] : $_SESSION['config']['flvtool2'];
$tmp_dir = isset($GLOBALS['config']['tmp_dir']) ? $GLOBALS['config']['tmp_dir'] : $_SESSION['config']['tmp_dir'];
$store_dir = isset($GLOBALS['config']['store_dir']) ? $GLOBALS['config']['store_dir'] : $_SESSION['config']['store_dir'];
$inputSizeX = isset($GLOBALS['config']['input_size_x']) ? $GLOBALS['config']['input_size_x'] : $_SESSION['config']['input_size_x'];
$inputSizeY = isset($GLOBALS['config']['input_size_y']) ? $GLOBALS['config']['input_size_y'] : $_SESSION['config']['input_size_y'];
$inputVideoQ = isset($GLOBALS['config']['video_quality']) ? $GLOBALS['config']['video_quality'] : $_SESSION['config']['video_quality'];
$inputAudioQ = isset($GLOBALS['config']['audio_quality']) ? $GLOBALS['config']['audio_quality'] : $_SESSION['config']['audio_quality'];
$inputAudioC = isset($GLOBALS['config']['audio_codec']) ? $GLOBALS['config']['audio_codec'] : $_SESSION['config']['audio_codec'];
$inputAudioCh = isset($GLOBALS['config']['audio_channels']) ? $GLOBALS['config']['audio_channels'] : $_SESSION['config']['audio_channels'];
$inputTHUMBX = isset($GLOBALS['config']['thumb_x']) ? $GLOBALS['config']['thumb_x'] : $_SESSION['config']['thumb_x'];
$inputTHUMBY = isset($GLOBALS['config']['thumb_y']) ? $GLOBALS['config']['thumb_y'] : $_SESSION['config']['thumb_y'];
$firstQuery = $cwd." -i " . $tmp_dir.$inputFile . " 2>&1";
$FirstOut = exec($firstQuery, $size_dump);
$ext = get_ext($inputFile);
$newFileName = uniqid();
mkdir($store_dir.$newFileName);
$fracti = get_duration($size_dump);
$size = get_size($size_dump, $inputSizeX, $inputSizeY);
for($i = 0; $i < 3; $i++)
{
$xyxy = resizeXY($size[1],$size[2], $inputTHUMBX, $inputTHUMBY);
$xyxyx = $xyxy[0].'x'.$xyxy[1];
$pics = $cwd . " -itsoffset -" . $fracti[$i] . " -i " . $tmp_dir . $inputFile . " -vcodec mjpeg -vframes 1 -an -f rawvideo -s ".$xyxyx." " . $store_dir . $newFileName . "/" . $i . ".jpg";

$line = exec($pics,$iout);
}
$secondQuery = $cwd . " -i " . $tmp_dir . $inputFile . " -f flv -ar " . $inputAudioQ . " -ac " . $inputAudioCh . " -acodec ". $inputAudioC . " -s " . $size[0] ." -b " . $inputVideoQ . "k " . $store_dir . $newFileName . "/default.flv";
$SecondOut = exec($secondQuery,$error);
$updateFlvQuery = $cwft . " -U " . $store_dir . $newFileName . "/default.flv -P";
$execUpdateFLV = exec($updateFlvQuery, $meta_dump);
$metaData = extractMeta($meta_dump);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

$insertDB = insertDB($newFileName, $metaData,$post_dets);

}
[/php]
in script mai sunt si alte functii precum ,
o functie care face extragerea de date provenite din dump-ul de la flvtool2
o functie resize pt imagini o functie pt stocare in baza de date
Functia din cate am observat pe windows in caz ca utilizatorul dupa ce se uploadeaza fisierul video si executata o parte din script .. scriptul este executat pana la ultima linie chiar daca acesta inchide fereastra ..

Mai mult de atat nu imi permit sa te ajut ,iti urez bafta se poate si pe windows dar recomand pe linux.

Avatar utilizator
stergema
PHPRomania Supporter
Mesaje: 18
Membru din: Mar Mar 17, 2009 12:27 pm

Mesajde stergema » Dum Iun 21, 2009 1:44 pm

Multumesc...


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 24 vizitatori