Supponiamo di voler creare su un server una applicazione che riceve file 3GP, lì converte al volo e visualizza il risultato immediatamente in formato flash, attraverso un player.
Questo esempio si prenseta come una applicazione web (un sito composto di una sola pagina) dovè possibile caricare il file 3GP. Una volta selezionato il file, il sistema lo copia in una cartella denominata appunto 3GP e invoca il convertitore per eccellenza ffmpeg .
La conversione avviene passando opportuni parametri al ffmpeg ottenendo nella cartella FLV il file 3GP convertito in Flash(FLV).
Conversione da 3GP a Flash
Quindi il bottone Visualizza Flash effettua, quindi, i seguenti passi:
* copia il file selezionato nella cartella 3GP
* crea un nuovo nome file da applicare al file flash
* converte il file 3GP in Flash (l’applicazione si ferma finchè non viene completata la conversione) la conversione utilizza ffmpeg passando alcuni parametri per la conversione. Tale ffmpeg è già presente nell’apllicazione nella cartella ffmpeg
* visualizza il filmato flash risultato dalla conversione (in questo caso è possibile scegliere se visualizzare in formato grande 800×600 o piccolo 300×250)
Motivi per cui potrebbe non funzionare:
1. il player utilizzato per visualizzare il flash e di tipo .swf (Shockwave Flash). Se sul PC non è presente tale componente, viene scaricato e automaticamente dal sito di ADOBE. Nel caso specifico, se sul PC non è presente ed inoltre il PC non è connesso alla rete, questo componente non riesce a girare e a visualizzare il flash
2. Verificare se nella cartella FLV è presente il flash convertito. Se non è presente allora il problema è della conversione. A questo punto devi verificare una cosa importante: ffmpeg è un eseguibile che prende in input alcuni parametri e soprattuto il PATH del file da convertire (3gp) e il path destinazione del file convertito (flv). Questi path non devono contenere spazi, per esempio: se il progetto “3gp_flv” che ti ho passato risiede in una cartella dal nome “c:\Cartella Progetti”, ovvero abbiamo
“c:\Cartella Progetti\3gp_flv”
supponiamo che il file caricato si chiamo “Video.3gp”; la procedura lo sposta nella cartella 3GP, ovvero
“c:\Cartella Progetti\3gp_flv\3GP\Video.3gp” questo rappresenta il file in input al ffmpeg
in automatico viene generato un valore univoco (in 28 alla data attuale) e concatenato al nome del file, così che il file di destinazione sarà
“c:\Cartella Progetti\3gp_flv\FLV\Video_20090225000000.flv”
Trascurando i parametri per la conversione e considerando solo i file di input e output, abbiamo:
ffmpeg c:\Cartella Progetti\3gp_flv\3GP\Video.3gp c:\Cartella Progetti\3gp_flv\FLV\Video_20090225000000.flv
poichè sono presenti dei spazi tra la parola Cartella e Progetti l’eseguibile ffmpeg considera questa separazione come parametri separati, ovvero considera i seguenti parametri passati in input all’eseguibile:
* c:\Cartella
* Progetti\3gp_flv\3GP\Video.3gp
* c:\Cartella
* Progetti\3gp_flv\FLV\Video_20090225000000.flv
questa cosa non permette la conversione perchè i path non sono corretti.
quindi devi verificare che PATH e nome file 3gp non contengono spazi; puoi sempre trasformarli in _Qui potete trovare il codice sorgente dell’applicazione
L’applicazione ASP.NET è sviluppata in C# in ambiente Visual Studio .NET