## page was renamed from CristianBattistel/Prova3
#format wiki
#language it
<<Indice(depth=2 align=right)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=346297"; rilasci="12.04 11.10")>>

= Introduzione =

Il lettore multimediale per consolle Nintendo DS [[http://it.wikipedia.org/wiki/MoonShell|MoonShell]] è in grado di riprodurre esclusivamente video in formato `.dpg`. Tale formato non è altro che la fusione di una traccia video `mpeg1`, una traccia audio `mpeg2` ed un file header con le informazioni per la corretta riproduzione dello streaming. Date queste peculiarità risulta impossibile convertire in maniera diretta e automatica un filmato tramite i principali strumenti di conversione audio/video.
Questa guida contiene passo passo le operazioni necessarie per l'ottenimento di un file `.dpg` correttamente eseguibile utilizzando [[Multimedia/Audio/FFmpeg|FFmpeg]] e le informazioni necessarie per ottenere lo stesso risultato con qualsiasi altro strumento di conversione.

= Pacchetti necessari =

 * [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://ffmpeg | ffmpeg]] presente nel [[Repository/Componenti|componente]] '''universe''' dei [[Repository|repository]]

= Preparativi =
Prima di cominciare è necessario creare uno script `perl` per la creazione automatica del file header. Questo file potrà essere posizionato ed eseguito da qualsiasi posizione, tuttavia per motivi di semplicità si consiglia di spostarlo nella cartella contente i video da convertire.

 0. Aprire un [[Ufficio/EditorDiTesto|editor di testo]] ed incollare il seguente contenuto:

 {{{
#!/usr/bin/perl

if($#ARGV!=6){
   print "usage: mkheader.pl <totalframes> <fps> <samplerate> <channels> <audiosize> <videosize> <filename>\n";
   exit;
}

open(f,">@ARGV[6]");
binmode(f);
print f pack(a4ixCxxiiiiii,
            'DPG0',        # magic
            @ARGV[0],      # frames
            @ARGV[1],      # fps
            @ARGV[2],      # samplerate
            @ARGV[3],      # channels (0x00 for mp2, 0x0n for n-channel wave)
            36,            # audio pos (starts right after header)
            @ARGV[4],      # length of audio data
            36+@ARGV[4],   # video pos (starts after audio data)
            @ARGV[5]       # length of video data
           );
close(f);
 }}}

 0. Salvare il documento con il nome desiderato, ad esempio `headermaker` e chiudere l'editor di testo.

 0. Rendere lo script eseguibile digitando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando: 

 {{{
chmod +x headermaker
 }}}
 avendo cura di sostituire `headermaker` con il nome scelto per lo script.

= Estrarre la traccia audio =

 * Per estrarre la traccia audio direttamente nel formato compatibile, digitare il seguente comando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]: {{{

ffmpeg -i input.avi -vn -ab BITRATE -ar AUDIO_SAMPLING_RATE output.mp2
}}}

avendo cura di sostituire a `BITRATE` il corretto valore di audio bitrate e a `AUDIO_SAMPLING_RATE` il corretto valore di sample rate. 

{{{#!wiki tip
Se non si è sicuri dei valori da utilizzare è possibile utilizzare questi: bitrate=160k samplig rate=32000}}}

= Estrarre la traccia video =

 * Per estrarre la traccia video direttamente nel formato compatibile, digitare il seguente comando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]: {{{

ffmpeg -i input.avi -vcodec mpeg1video -vb BITRATE -aspect 16:9 -s 256x144 -an output.m1v
}}}

avendo cura di sostituire a `BITRATE` il corretto valore di bitrate video.

{{{#!wiki tip
Il valore massimo di bitrate supportato è di oltre `800k`, tuttavia `256k` è sufficiente per video di buona qualità meno pesanti.}}}

= Creazione headers =

 0. Ricavare tramite gli strumenti del proprio file manager (click destro sul file → '''Proprietà''') e annotare le seguenti proprietà dei file audio e video appena creati:

  * frames totali del file video

  * frames al secondo del file video

  * dimensioni file audio in byte

  * dimensioni file video in byte

 in alternativa è possibile ottenere i dettagli del file video digitando il seguente comando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]:

 {{{
ffprobe input.m1v
 }}}

 0. Creare il file digitando il seguente comando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]:

 {{{
./headermaker FRAME_TOTALI FPS SAMPLERATE CANALI DIMENSIONI_AUDIO DIMENSIONI_VIDEO output.bin
 }}}

avendo cura di sostituire i parametri:

 ||||||<tablestyle="width80%;" :>'''Corrispettivi'''||
 ||'''Sigla'''||'''Valore'''||
 ||FRAME_TOTALI|| frames totali del file video||
 ||FPS|| frames al secondo del file video||
 ||SAMPLERATE|| il samplerate scelto in precedenza per il file audio||
 ||CANALI|| il numero dei canali audio, per una traccia stereo inserire `0x00`||
 ||DIMENSIONI_AUDIO|| le dimensioni del file audio in byte||
 ||DIMENSIONI_VIDEO|| le dimensioni del file video in byte||

= Creazione file .dpg =

 * Creare il file video risultante digintando il seguente comando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]:

 {{{
cat input.bin input.mp2 input.m1v > output.dpg
 }}}

 {{{#!wiki important
I file devono essere uniti rigorosamente nell'ordine `.bin` `.mp2` `.m1v`.}}}

= Ulteriori risorse =

 * [[http://dpg.software.informer.com/wiki/|Wiki dpg in lingua inglese]]
 * [[http://mdxonline.dyndns.org/|Pagina ufficiale di Moonshell in cinese/inglese]]

----
CategoryMultimedia CategoryDaRevisionare