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...
video conversion si php...
Moderatori: Moderatori, Start Moderator
- doryy42
- Senior Member
- Mesaje: 362
- Membru din: Dum Feb 19, 2006 11:52 pm
- Localitate: Bucuresti
- Contact:
Se poate
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.
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.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 26 vizitatori
