Guida verificata con Ubuntu: 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Il lettore multimediale per consolle Nintendo DS 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.
Pacchetti necessari
Questa guida contiene passo passo le operazioni necessarie per l'ottenimento di un file .dpg correttamente eseguibile utilizzando FFmpeg e le informazioni necessarie per ottenere lo stesso risultato con qualsiasi altro strumento di conversione.
Preparativi
Prima di cominciare è necessario creare uno script perl per la generazione automatica del file header.
Lo script può essere posizionato ed eseguito da qualsiasi posizione; tuttavia, per praticità, è consigliabile spostarlo nella cartella contenente i video da convertire.
Aprire un editor di testo e incollare il seguente contenuto:
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);Salvare il documento nominandolo headermaker e chiudere l'editor di testo.
Rendere lo script eseguibile digitando in un terminale il seguente comando:
chmod +x headermaker
avendo cura di sostituire headermaker con il nome scelto per lo script.
Estrarre la traccia audio
Il formato contenitore .dpg richiede obbligatoriamente che la traccia audio sia in formato MP2. L'inserimento di una traccia MP3 comporterebbe la corruzione del file finale, causando desincronizzazioni o il blocco del lettore MoonShell. L'MP2 richiede infatti minore potenza di calcolo, rendendo possibile la riproduzione fluida su hardware limitato come quello del Nintendo DS.
Per estrarre la traccia audio direttamente nel formato compatibile, digitare in un terminale il seguente comando:
ffmpeg -i input.avi -vn -c:a mp2 -b:a BITRATE -ar AUDIO_SAMPLING_RATE output.mp2
sostituire BITRATE con il valore di bitrate audio e AUDIO_SAMPLING_RATE con la frequenza di campionamento.
In caso di dubbi sui valori da utilizzare, è consigliato impostare il bitrate a 160k e il sampling rate a 32000.
Le dimensioni esatte in byte sono recuperabili cliccando con il tasto destro sui file e selezionando Proprietà, oppure digitando nel terminale il comando stat -c%s output.mp2.
Estrarre la traccia video
Esattamente come per l'audio, il formato .dpg richiede rigorosamente che la traccia video sia codificata in MPEG-1. L'uso di codec più moderni ed efficienti, come l'MPEG-4 (MP4, H.264, ecc.), non è supportato perché richiede capacità di calcolo superiori a quelle offerte dalla console.
Per estrarre la traccia video direttamente nel formato compatibile, digitare in un terminale il seguente comando:
ffmpeg -i input.avi -c:v mpeg1video -b:v BITRATE -aspect 16:9 -s 256x144 -an output.m1v
sostituire BITRATE con il valore di bitrate video.
Il valore massimo di bitrate supportato supera gli 800k, tuttavia 256k risulta sufficiente per mantenere una buona qualità riducendo il peso del file.
Le dimensioni esatte in byte sono recuperabili cliccando con il tasto destro sui file e selezionando Proprietà, oppure digitando nel terminale il comando stat -c%s output.m1v.
I frame totali e i frame al secondo possono essere ricavati digitando il comando ffprobe output.m1v.
Creazione headers
- Per creare l'header è necessario ricavare alcune informazioni sui file appena generati.
- Annotare le seguenti proprietà:
- Frame totali del file video.
- Frame al secondo (FPS) del file video.
- Dimensioni del file audio in byte.
- Dimensioni del file video in byte.
- Annotare le seguenti proprietà:
Creare il file di intestazione digitando nel terminale il seguente comando:
./headermaker FRAME_TOTALI FPS SAMPLERATE CANALI DIMENSIONI_AUDIO DIMENSIONI_VIDEO output.bin
sostituire i parametri seguendo le indicazioni della tabella sottostante:Parametri
Sigla
Valore
FRAME_TOTALI
Frame totali del file video.
FPS
Frame al secondo del file video.
SAMPLERATE
Il sampling rate 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 finale unendo le tracce, digitando nel terminale il seguente comando:
cat output.bin output.mp2 output.m1v > output.dpg
I file devono essere uniti rigorosamente nel seguente ordine .bin, .mp2, .m1v.
