## page was renamed from CristianBattistel/Prova3 #format wiki #language it <> <> = 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. = Pacchetti necessari = 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. = Preparativi = Prima di cominciare è necessario creare uno script `perl` per la generazione automatica del file header. {{{#!wiki note Lo script può essere posizionato ed eseguito da qualsiasi posizione; tuttavia, per praticità, è consigliabile spostarlo nella cartella contenente i video da convertire. }}} 0. Aprire un [[Ufficio/EditorDiTesto|editor di testo]] e incollare il seguente contenuto:{{{ #!/usr/bin/perl if($#ARGV!=6){ print "usage: mkheader.pl \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. 0. Rendere lo [[Programmazione/Script|script eseguibile]] digitando in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ chmod +x headermaker }}} avendo cura di sostituire `headermaker` con il nome scelto per lo script. = Estrarre la traccia audio = {{{#!wiki important 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 [[http://it.wikipedia.org/wiki/MoonShell|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 [[AmministrazioneSistema/Terminale|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. {{{#!wiki tip In caso di dubbi sui valori da utilizzare, è consigliato impostare il bitrate a `160k` e il sampling rate a `32000`. }}} {{{#!wiki tip Le dimensioni esatte in byte sono recuperabili cliccando con il tasto destro sui file e selezionando '''Proprietà''', oppure digitando nel [[AmministrazioneSistema/Terminale|terminale]] il comando `stat -c%s output.mp2`. }}} = Estrarre la traccia video = {{{#!wiki important 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 [[AmministrazioneSistema/Terminale|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. {{{#!wiki tip Il valore massimo di bitrate supportato supera gli `800k`, tuttavia `256k` risulta sufficiente per mantenere una buona qualità riducendo il peso del file. }}} {{{#!wiki tip Le dimensioni esatte in byte sono recuperabili cliccando con il tasto destro sui file e selezionando '''Proprietà''', oppure digitando nel [[AmministrazioneSistema/Terminale|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 = 0. 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. 0. Creare il file di intestazione digitando nel [[AmministrazioneSistema/Terminale|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 [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ cat output.bin output.mp2 output.m1v > output.dpg }}} {{{#!wiki important I file devono essere uniti rigorosamente nel seguente 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