Uno script in php che usa ffmpeg per convertire files audio wma in mp3
Un semplice script php da lanciarsi da shell che, data una cartella, cerca i files wma e li converte in mp3 in un’altra cartella, mantenendo intatta l’alberatura e il naming della directory sorgente.
Prerequisiti:
ffmpeg e php5-cli installabili con il comando
sudo apt-get install ffmpeg php5-cli
Ecco il codice php
<?php $outDir = "out"; $baseDir= "Music"; $lbaseDir = strlen ($baseDir); function doDir ($dirname){ global $outDir,$baseDir,$lbaseDir; $cleandir= substr($dirname,$lbaseDir); $cleandirout = $outDir.$cleandir; if ($dirname==$outDir) return; echo "Processing dir [$dirname] ($cleandir ==> $cleandirout)\n"; $filez = scandir ($dirname); foreach ($filez as $file) { if ( ($file == ".") || ($file=="..")) continue; //echo $file; $filePath = "${dirname}/${file}"; if (preg_match ("/(.*?)\.wma$/",$file,$arr)) { $wmain = $filePath; $fwe = $arr[1]; $mp3out= "${cleandirout}/${fwe}.mp3"; echo "Processing wma [${wmain}]\n"; if (!file_exists ($cleandirout)){ mkdir ($cleandirout,0777,true); } if (file_exists ($mp3out)) continue; system ("ffmpeg -i \"${wmain}\" -ar 44100 -ab 128k \"${mp3out}\"\n"); } if (is_dir ($filePath)){ doDir ($dirname."/".$file); } } } doDir ($baseDir); ?>
Nell’esempio lo script esamina la cartella “Music” e deposita i files convertiti nella cartella “out”, ricreando in quest’ultima l’alberatura che trova in “Music”.
Le istruzioni
$outDir = “out”;
$baseDir= “Music”;
si possono cambiare per far lavorare lo script su qualsivoglia cartella.
E’ possibile ovviamente cambiare anche i parametri di bitrate e sample rate di ffmpeg, settati rispettivamente a 128Kbit e 44100Hz.
E’ consigliabile scaricare lo script da qui piuttosto che fare copia e incolla da quello riportato nel post.
#per scaricare wget http://fabrizio.zellini.org/wma2mp3/converter.php.txt -O converter.php # per editare i parametri gedit converter.php # per lanciare php converter.php
Nessun commento
commenta | feed commenti [?] | trackback uri [?]