Jump to content
php.lv forumi

Augšupielādējot mp3 convertēt uz flv


ziedinjsh

Recommended Posts

Svaiki!

 

šāds ir upload scripts

 

if(isset($_POST['addmp3'])){

$result = 0;
$folder = "../mp3/";
$artist = mysql_real_escape_string($_POST['artist']);
$title = mysql_real_escape_string($_POST['title']);
$lyricartist = mysql_real_escape_string($_POST['lyricartist']);
$type = $_POST['type'];

$beat = $_FILES['mp3']['name'];
$tmp = $_FILES['mp3']['tmp_name'];
$date = date('y.m.d');
$ip = $_POST['ip'];


$mp3 = $folder.basename($_FILES['mp3']['name']); 


 if($type == "audio/mpeg") {
 die("this format is not allowed or file is to big");
 }
 else
 {

$query = mysql_query("INSERT INTO beats (beat, title, artist, lyricartist, type, date, ip) VALUES ('$beat', '$title', '$artist', '$lyricartist', '$type', '$date', '$ip') ");
 if(move_uploaded_file($_FILES['mp3']['tmp_name'], $mp3)) {
     $result = 1;

  }
  sleep(1);
?>
<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result;  ?>);</script>
<?php  

  }

}

 

hostings piedāvā šo:

ffmpeg -y -i fails.mp3 -f flv -acodec libmp3lame -ab 64 -ac 1 uploads/fails.flv

 

kur un kā man jāievieto šis ffmpeg kods lai augšupielādējot mp3 viņš enkodējas uz flv formātu?

 

Paldies jau iepriekš

Link to comment
Share on other sites

Daudz vērtīgu padomu, bet neviens neatbild uz autora pamatjautājumu. :)

 

Pats neko tādu neesmu taisījis, bet šķiet ka tā lieta strādā tikai no komandrindas, tāpēc jāizpilda kā ārēja programma. Tad, kad fails tiks augšupielādēts, izpildi ffmpeg kā ārējo programmu uz atbilstošo, tikko augšupielādēto, failu. Izsaukt ārējo programmu varētu ar exec un system, papēti šīs funkcijas. Jā un ņem vērā arī ieteikumus par drošības uzlabošanu, ka jau šeit minēja.

Link to comment
Share on other sites

Parasti video/audio failu ielādi veic aptuveni šādi:

 

1. pie augšupielādes ieliec konkrēto failu kādā mysql tabulā, kurā tu glabāsi apstrādājamos failus

2. uztaisi skriptu, kas fonā ik pēc mirkļa pārbauda vai šajā tabulā nav iekritis kāds fails. Sliktākajā gadījumā ar crontab skriptu, kas darbojas reizi minūtē. Labākajā gadījumā, ja tev ir pieeja pie shella, tad vienkārši palaid no konsoles skriptu

while(1){
   // pārbaudam vai nav kāds konvertējams fails, ja ir tad nokonvertējam
   sleep(10)
}

3. Fona procesā failam, kuru tu esi paņēmis uz apstrādi uzseto kaut kādu statusu, ka tas tiek apstrādāts

4. Publiskajā pusē zinot faila ID tu vari parādīt lietotājam, ka fails šobrīd tiek apstrādāts / failam priekšā vēl ir N citi faili.

 

 

Ja tu liksi šo ffmpeg konvertēšanu pa taisno upload skriptā, tad vari jau sākt raut matus nost no galvas un skaidrot cilvēkiem, ka viss notiek, ka viss strādā, tikai viss ir ļoti lēni. Tb konvertēšana manuprāt ir OBLIGĀTI jānodala no augšupielādes.

Link to comment
Share on other sites

Kaklz, tieši tā, ja pieejams crontab, tad labāk izmantot pieeju, ko Tu piedāvā, bet ja nav tad gan jādomā citi varianti. Šķiet bij arī kaut kādas metodes kā fonā palaist php skriptu, bez crontab, sanāk pa mūžīgo ciklu, bet iespējams es to rakstu nepareizi sapratu un arī īpaši neapskatīju uzmanīgi, nebija vajadzība, tā ka iespējams kļūdos. Pašam gan ir nācies taisīt sistēmas kur faila pēcapstrāde, pēc augšupielādēšanas, aizņem kādu laiciņu un jā, tieši tā arī darīju, rakstīju paziņojumu: "Fails tiek apstrādāts, lūdzu uzgaidiet".

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...