XmX

Visualizzatore filmati in Basic, Con tanto di nuovo formato!

« Older   Newer »
  Share  
view post Posted on 2/8/2010, 14:12
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Rieccomi qua cari forumanti!
Sono sempre il solito pazzoide in cerca di commenti ad uno dei suoi tentativi più strampalati, ovvero la scrittura di un programma Basic che riesca a riprodurre filmati partendo da immagini bitmap, ciascuna delle quali rappresenta un singolo fotogramma del filmato. Per iniziare mi serviva un software che prendesse un filmato di qualunque formato e lo scomponesse in tutti i fotogrammi che lo formano, così dopo una tutto sommato breve ricerca ho trovato questo, che oltre alla semplicità di utilizzo unisce anche la possibilità caricare video di molti formati diversi e di salvare i fotogrammi in altrettanti formati immagine, tra cui appunto il bitmap che era quello che mi interessava. L'unico problema era che nella versione free imponeva una fastidiosa scritta in sovrimpressione che rovinava di fatto i fotogrammi. Non essendoci altra via dunque ho deciso di acquistare la licenza (abbastanza caruccia oltretutto, 35 € comprese spese e tasse) ma almeno ho avuto quello di cui avevo bisogno.
Non sapendo con quale filmato iniziare la sperimentazione ho scelto un video scaricato da youtube che è la sigla iniziale del telefilm "Medium" del quale sono appassionato.
Detto fatto, ho convertito il video in formato quicktime (estensione .mov) e l'ho caricato nel programma, che lo ha suddiviso in 1080 fotogrammi bitmap da 100x75 pixel ciascuno. Le piccole dimensioni sono state necessarie in quanto il Basic non è molto veloce e la riproduzione di video a dimensioni maggiori, una volta terminato il programma, sarebbe stata decisamente troppo lenta.
Il problema successivo consisteva nel fatto che le immagini-fotogramma venivano salvate col nome "medium" seguito dal numero progressivo dell'immagine e ovviamente dall'estensione .bmp. Per l'estensione non c'era problema ma per la parola "medium" sorgevano alcune difficoltà, legate soprattutto alla parte del programma adibita alla ricerca e rilevamento del numero del file, così dopo un'altra attenta ricerca ho trovato quest'altro programma, specializzato nella rinomina seriale di migliaia di file in breve tempo, così una volta impostate correttamente le opzioni ho tolto da tutti i files la parola "medium" facendo in modo di lasciare solo il numero progressivo.
Successivamente ho estrapolato un pezzo di codice che avevo già trattato nel thread "Visualizzazione bitmap tramite Basic", l'ho adattato allo scopo e ho aggiunto le righe necessarie all'apertura delle immagini-fotogramma in sequenza. Purtroppo ancora non ho imparato a gestire la memoria con sufficiente sicurezza e non sono riuscito a creare una sezione che aprisse più di un'immagine alla volta (benchè in teoria sarebbe benissimo possibile aprire e tenere aperti molti file allo stesso tempo) così il programma si limita ad aprire un file alla volta, visualizzarlo sullo schermo, poi chiuderlo ed aprire quello successivo. Questa operazione di continua apertura e chiusura ovviamente rallenta molto la riproduzione, ma il piccolo formato del video riesce a compensare il difetto e la riproduzione è abbastanza veloce.
A questo punto però sorge un altro problema. Le immagini bitmap salvate dal programma di scomposizione in fotogrammi sono a 24 bit (true-color), quindi i colori riproducibili sono 16 milioni e rotti, mentre invece il Basic può riprodurne solo 16 nello stesso tempo, in realtà sarebbe possibile arrivare fino a 256 modificando i livelli di intensità tramite la porta 3C8 (&H3C8 nel Basic) ma non farebbe altro che modificare sempre e comunque solo i 16 colori già prima disponibili.
Il vero intento comunque al momento era verificare se il Basic e, per esteso, la sua velocità di elaborazione erano sufficienti ad ottenere una riproduzione del filmato accettabile, quindi anche se i colori e l'immagine non erano fedeli all'originale non importava. Quindi ho lasciato il listato com'era e l'ho fatto girare, ebbene, funzionava!
Sono riuscito ad abbozzare un programma in grado di visualizzare filmati partendo da fotogrammi raster, esattamente come farebbe un proiettore con una pellicola, una specie di "proiettore per pc" insomma! ^_^

Questo è il listato sperimentale originale che ho scritto come inizio delle prove:

CODICE
TYPE BmpHeader

id AS STRING*2                'Mostra la dicitura BM
size AS LONG                'Dimensioni del file
rr1 AS INTEGER
rr2 AS INTEGER
offset AS LONG                'Posizione di inizio dati
horz AS LONG
wid AS LONG                'Larghezza dell'immagine
hei AS LONG                'Altezza dell'immagine
planes AS INTEGER
bpp AS INTEGER                'Rileva 8 per un immagine a 256 colori
pakbyte AS LONG
imagebytes AS LONG        'Risultato di larghezza per altezza
xres AS LONG
yres AS LONG
colch AS LONG
ic AS LONG

END TYPE


DIM BMPHeader AS BmpHeader
DIM colori AS DWORD
DIM c AS DWORD
DIM I AS INTEGER
DIM b AS BYTE
DIM g AS BYTE
DIM r AS BYTE
DIM x AS WORD
DIM y AS INTEGER
DIM alignx AS WORD
DIM aligny AS WORD
DIM Altezza AS WORD
DIM Larghezza AS WORD
DIM count AS SHARED DWORD

alignx=200
aligny=100
count=1
Altezza=BMPHeader.hei-1
Larghezza=BMPHeader.wid-1

PercorsoIniziale$="C:\WINDOWS\DESKTOP\"
NuovoPercorso$="C:\WINDOWS\DESKTOP\MEDIUM\"

CHDIR NuovoPercorso$


CLS
SCREEN 12
File$=DIR$("*.bmp")

WHILE NOT count=1080

estensione$=RIGHT$(File$,4)
numerofile$=EXTRACT$(File$,estensione$)
numerofile=VAL (numerofile$)

GOSUB RIPRODUCI
File$=DIR$
WEND

END



RIPRODUCI:

IF numerofile=count THEN
OPEN File$ FOR BINARY AS #1
SEEK #1,54                                'Posiziona il puntatore nel punto
                                       'di inizio dati dell'immagine

FOR y=(74+aligny) TO aligny STEP -1        'Conta all'indietro essendo l'immagine rovesciata
FOR x=alignx TO 99+alignx

GET #1,,b                        'Blue
GET #1,,g                        'Verde
GET #1,,r                        'Rosso

'PSET(x,y),b
PSET(x,y),INT(g/16)
'PSET(x,y),r

NEXT x
NEXT y

CLOSE #1

INCR count
File$=DIR$("*.bmp")
END IF
RETURN


Se qualcuno ha delle domande risponderò con piacere. Ci tengo comunque a sottolineare che è ancora in fase embrionale, quindi non stupitevi se sembra troppo breve (e lo è, in effetti), come dicevo è solo un inizio.
Ora però viene il bello. Per ottenere la visualizzazione ad alta risoluzione e di tipo true-color come richiede un riproduttore per filmati che si rispetti i comandi tradizionali del Basic non sono sufficienti, bisognava esplorare altre strade, magari creare una funzione ad hoc per manipolare la grafica a livello della scheda grafica, ovvero programmandola in modo da ottenere una modalità video come si deve. Per farlo ho dovuto imparare da capo tutto il know-how e ho trovato un interessante e completo tutorial che insegna come utilizzare le specifiche SVGA in standard VESA, che tramite il corretto uso di interrupt specifici può gestire risoluzioni grafiche che possono arrivare fino a 1600x1200 pixel a 32 bit per pixel!!! :D
L'apprendimento non è facile, anche perchè la programmazione VESA è decisamente ostica per i principianti (come lo sono io, del resto) così come difficile sarà scrivere una sezione che sia in grado sia di rilevare quali modalità grafiche sono disponibili nel pc sia farle funzionare e infine ottenere una velocità sufficiente, ma conto di riuscirci entro qualche mese. Vi terrò aggiornati sugli ulteriori sviluppi! ^_^



P.S.
Se qualcuno poi non ha niente da fare e vuole provare a farlo girare può scaricare questa cartella, che contiene sia tutte le immagini del filmato, sia il programma che ho postato sopra (occhio però che sono 15 MB circa). Vorrei precisare inoltre che il programma è scritto in Power Basic, quindi alcuni comandi e istruzioni potrebbero apparirvi o diversi o del tutto nuovi.
Se poi nessuno ha mai visto quel telefilm potete scaricare il filmato originale della sigla iniziale del telefilm (circa 2 MB).

Edited by yareol - 4/8/2010, 18:45
 
Web Contacts  Top
view post Posted on 2/8/2010, 22:49
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Dimenticavo, sto progettando un formato di salvataggio su file su misura per questo tipo di player, è un formato lossless per impieghi professionali, ovvero senza perdita di informazioni. E' un formato creato apposta per garantire la sincronizzazione dell'audio col video.
Non appena sarà pronto vi fornirò tutte le specifiche, nel frattempo, come si dice, stay tuned! ^^
 
Web Contacts  Top
view post Posted on 3/8/2010, 15:03
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Piccolo aggiornamento.
Siccome trovavo fastidioso studiare un testo in inglese, soprattutto quando tratta un argomento complicato come la programmazione VESA, ho deciso di tradurmelo tutto in italiano, pertanto se anche qualcun'altro dovesse averne bisogno può scaricarlo da QUI
Ciao e a presto! ^_^
 
Web Contacts  Top
view post Posted on 6/8/2010, 21:26
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Oggi ho finalmente terminato una delle tante fasi di perfezionamento del programma succitato per l'assemblaggio di un video pertendo dai fotogrammi che lo compongono.
Come dicevo qualche post fa, ho anche creato un formato apposito per il salvataggio di filmati, un formato lossless, quindi molto ingombrante ma anche molto affidabile. Non so se esiste già, ma non credo considerato il singolare modo in cui organizza i dati audio e video.
L'ho chiamato AVM e siccome comincio a nutrire una certa avversione per l'inglese, considerato anche come ha rovinato la nostra beneamata lingua, AVM sta per "Audio e Video Miscelati". Come dice la parola stessa in ogni file sono racchiusi, unendo i formati di salvataggio bitmap per l'immagine e wave per l'audio, sia i dati video che audio.
Potete immaginare l'AVM come un cocomero, dove i semi neri sono i byte del campionamento audio e sono immersi nella rossa polpa dei dati video.

La struttura dell'AVM può essere schematizzata circa così:

VVVVVVVVVVVVVVVVVVVVVVAAAAVVVVVVVVVVVVVVVVVAAAAVVVVVVVVVVVVVVVVVVVVAAAA...
...e così via, dove le "V" corrispondono ai byte video, mentre le "A". appunto, a quelli audio.

Il programma calcola da solo qual'è la densità dei dati audio immersi nel flusso video a seconda della dimensione in byte dei fotogrammi (size), della loro frequenza di aggiornamento (fps) e della frequenza di campionamento con cui è stato realizzato l'audio originale (srate).
Ho cercato di commentare il più possibile sia l'header del file che ogni fase della realizzazione dei file video, spero vi piaccia.
Lo scopo fondamentale di questo formato è si quello di essere affidabile, accessibile e semplice da decodificare, ma soprattutto quello di garantire la sincronia del video con l'audio, che non sempre era garantita dai formati a doppia traccia.
Devo ancora rifinire il programma principale ma ormai mancano solo pochi dettagli. Tra breve lo posterò qui nella sua completezza.
A presto! ^_^
 
Web Contacts  Top
view post Posted on 14/8/2010, 07:25
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Ragazziii, che bello bellissimooo!! Finalmente ho finito il programma AVMMaker!!! Yeeeeeeeeee!!!! :D :D :D

Proprio ieri notte alla 1:00 ho terminato di aggiungere le righe per inserire anche l'audio nel file nonchè la formula corretta per disporlo nella giusta proporzione coi bytes video. Adesso è pronto, il formato AVM (Audio Video Miscelati) è finalmente nato!!! ^_^

Ho ancora solo un piccolo cruccio riguardo al programma, ovvero che tutto funziona alla perfezione, tranne nella sezione di aggiunta dei fotogrammi. La creazione del filmato va a meraviglia ma quando raggiunge il 999° fotogramma, per un motivo assai misterioso che non sono riuscito a individuare, il programma gira a vuoto fino a quando non lo fermo io col ctrl^c!
Qualcuno di voi saprebbe per favore esaminare il listato per capire finalmente dove caspita si annida quel dannatissimo bug?! :(

In ogni caso questo è il listato finale! :D

CODICE
'========================================================================
'=                                                                        =
'=                        A V M - M A K E R                                =
'=                                                                        =
'=        Programma di creazione video AVM (Audio Video Miscelati)        =
'=                                                                        =
'========================================================================


$INCLUDE "HEADERS.INC"                                'Questo file contiene le
                                               'definizioni e il dimensionamento
                                               'delle variabili complesse
                                               'degli header dei file usati
                                               'nel programma.

$INCLUDE "C:\WINDOWS\DESKTOP\MEDIUM\RATES.DAT"        'Ricava i dati del video da
                                               'cui sono stati estratti i
                                               'fotogrammi.

OPTION BINARY BASE 1


'Dimensionamento delle variabili interne usate dal programma

DIM TOT AS DWORD
DIM count AS DWORD
DIM count2 as DWORD
DIM filecount AS DWORD
DIM Larghezza AS WORD
DIM AreaRiquadro AS WORD
DIM Altezza AS WORD
DIM count3 AS WORD
DIM x AS WORD
DIM b AS BYTE
DIM ciclo AS BYTE
DIM LUNGHEZZA AS BYTE
DIM POSIZIONEX AS BYTE
DIM AudioDataOffset AS BYTE
DIM POSIZIONEY AS BYTE
DIM Limite AS BYTE
DIM y AS INTEGER
DIM FLAG AS BYTE
DIM g AS BYTE
DIM r AS BYTE



CLS
PRINT "Inserisci solo il PERCORSO ove si trovano i fotogrammi:"
PRINT
INPUT " -> ",Frames$
PRINT
PRINT "Inserisci il PERCORSO e il NOME del file audio:"
PRINT
INPUT " -> ",Audio$

NomeFileVideo$="medium.avm"

PercorsoIniziale$=CURDIR$

CHDIR Frames$

OPEN "1.bmp" FOR BINARY AS #1                'Ricava i dati dei file immagine.
                                       'Essendo i fotogrammi tutti uguali
                                       'hanno anche le stesse caratteristiche
                                       'quindi basta esaminarne uno e li si
                                       'conosce tutti.
GET #1,1,BMPHeader
CLOSE #1

OPEN Audio$ FOR BINARY AS #1                'Ricava i dati del file audio
GET #1,1,WAVHeader
AudioDataOffset=(INSTR(WAVHeader,"data"))+4
CLOSE #1



'Parziale compilazione dell'header del file AVM

AVMHeader.id="AVM"
AVMHeader.offset=38
AVMHeader.wid=BMPHeader.wid
AVMHeader.hei=BMPHeader.hei
AVMHeader.bpp=BMPheader.bpp
AVMHeader.ch=WAVHeader.ch
AVMHeader.srate=WAVHeader.srate
AVMHeader.bps=WAVHeader.bps
AVMHeader.start="DATA"
AVMHeader.fps=fps                        'Il valore di fotogrammi al secondo
                                       'Š ricavato dal file rates.dat nella
                                       'cartella contenente i fotogrammi.




'===========================================================================
'
'                                Formule


AreaRiquadro = BMPHeader.wid * BMPHeader.hei        'Area di schermo occupata dal
                                               'video espressa in pixel.


BytesTotaliFotogramma = AreaRiquadro * (BMPHeader.bpp / 8)

'        ^        ^        ^        ^
'        |        |        |        |

'Dimensione in byte di un singolo fotogramma.



BytesVideoAlSecondo = BytesTotaliFotogramma * AVMHeader.fps

'        ^        ^        ^        ^
'        |        |        |        |

'Byte video totali trasferiti in un secondo di filmato.



BytesPerCampione = (WAVHeader.msbpersample / 8) * WAVHeader.ch

'        ^        ^        ^        ^
'        |        |        |        |

'Numero di bytes di un campione audio.



BytesAudioAlSecondo = WAVHeader.srate * BytesPerCampione

'        ^        ^        ^        ^
'        |        |        |        |

'Numero di bytes audio trasferiti al secondo.



AVMHeader.spf = WAVHeader.srate / AVMHeader.fps

'        ^        ^        ^        ^
'        |        |        |        |

'Quanti campioni audio sono contenuti in un singolo fotogramma.



AVMHeader.Btps = BytesVideoAlSecondo + BytesAudioAlSecondo

'        ^        ^        ^        ^
'        |        |        |        |

'Byte totali trasferiti in un secondo di video e audio.



AVMHeader.pps = AreaRiquadro / AVMHeader.spf

'        ^        ^        ^        ^
'        |        |        |        |

'Questa singolare formula permette di conoscere il numero di pixel che si
'alternano ai campioni audio, il programma poi trasformer… questa informazione
'in numero di bytes video e audio nella compilazione finale del file.
'Notare che nell'espressione non si cerca di definire il numero di bytes
'video o audio, ma si definiscono solo i pixel e i campioni audio, poichŠ
'al programma interessa solo scoprire qual'Š la proporzione tra audio e video
'nel file che dovr… compilare alla fine.
'I pixel possono essere lunghi da 1 a 3 byte a seconda del numero di colori
'presente nel video originale, mentre la lunghezza dei campioni audio dipende
'dal numero di canali e dalla definizione del suono campionato in origine.





'                                Fine formule
'
'===========================================================================



AVMHeader.pps = FIX (AVMHeader.pps)        'Preleva solo la parte intera
                                               'del risultato.


IF AVMHeader.pps<1 THEN        'Se il numero di pixel nel fotogramma Š troppo
Limite=1                        'piccolo per garantire il sample rate audio
GOSUB ERRORE                        'il programma restituisce un messaggio di
END IF                                'errore e si ferma.


Altezza=BMPHeader.hei-1
Larghezza=BMPHeader.wid-1
POSIZIONEX = 15
POSIZIONEY = 5
LUNGHEZZA = 30
count=1
FLAG=1

PRINT
PRINT "Premi INVIO per comporre il filmato..."
WHILE NOT INKEY$=CHR$(13):WEND                        'Attende conferma col
                                               'tasto INVIO


'Fase di conteggio del numero di file-fotogramma nella cartella

CLS
LOCATE 2,1
PRINT "Conteggio dei fotogrammi in corso..."

File$=DIR$("*.bmp")

WHILE NOT ciclo=1        'Conta quanti file-fotogrammi ci sono nella cartella
       INCR count2
       estensione$=RIGHT$(File$,4)
       numerofile$=EXTRACT$(File$,estensione$)
       filecount=VAL (numerofile$)
       GOSUB CONTAFILE
       File$=DIR$
WEND

DELAY .5

CONTROLLO:
CLS
LOCATE 4,1
PRINT "Conteggio completato, sono stati trovati";count2;"fotogrammi."
LOCATE 8
PRINT "Se il numero Š corretto premi   altrimenti premi"
LOCATE 8,31
COLOR 2
PRINT "S"
LOCATE 8,50
PRINT "N"
COLOR 7
Risposta$=UCASE$(INPUT$(1))
IF Risposta$="S" THEN
GOTO CONTINUA
ELSEIF Risposta$="N" THEN
LOCATE 22,1
COLOR 7
PRINT "Uscita dal programma"
END
ELSE
SOUND 500,1
SOUND 200,1
GOTO CONTROLLO
END IF


CONTINUA:

OPEN "C:\WINDOWS\DESKTOP\MEDIUM.AVM" FOR BINARY AS #3
PUT #3,1,AVMHeader

OPEN Audio$ FOR BINARY AS #2
SEEK #2,AudioDataOffset

CLS
TOT=count2
File$=DIR$("*.bmp")

WHILE NOT completamento=1                        'Ciclo di individuazione
       IF INKEY$=CHR$(42) THEN EXIT LOOP        'e aggiunta fotogrammi
       estensione$=RIGHT$(File$,4)
       numerofile$=EXTRACT$(File$,estensione$)
       filecount=VAL (numerofile$)
       GOSUB MakeAVM
       File$=DIR$
WEND


size=SEEK(2)-1                'Rileva la dimensione del file
AVMHeader.size=size
PUT #3,4,AVMHeader.size        'Scrive la dimensione del filmato in Byte
CLOSE #3
CLOSE #2

CHDIR PercorsoIniziale$        'Ritorna al percorso iniziale

LOCATE 23,1
PRINT "Area riquadro: "
PRINT AreaRiquadro;"Pixel"

PRINT "Dimensione di un singolo fotogramma: "
PRINT BytesTotaliFotogramma;"Bytes al secondo"

PRINT "Bytes video trasferiti al secondo:"
PRINT BytesVideoAlSecondo

PRINT "Numero campioni audio contenuti in un singolo fotogramma: "
PRINT AVMHeader.spf"

PRINT "Velocit… di trasferimento dati audio e video"
PRINT AVMHeader.Btps;"Bytes al secondo."

PRINT "Numero pixel per campione audio; "
PRINT AVMHeader.pps


END


'===========================================================================
'
'                        Sezione assemblaggio video

MakeAVM:

IF filecount=count THEN

       OPEN File$ FOR BINARY AS #1
       SEEK #1,55

       FOR y=Larghezza TO 0 STEP -1        'Conta all'indietro
                                       'essendo l'immagine rovesciata
       FOR x=0 TO Altezza


               GET #1,,b                'Legge la componente blu
               GET #1,,g                'Legge la componente verde
               GET #1,,r                'Legge la componente rossa

               PUT #3,,b                'Scrive le tre componenti nel file
               PUT #3,,g
               PUT #3,,r

               INCR count3

               IF count3=AVMHeader.pps THEN                          'Se il numero di pixel per campione audio
                                                                                            'viene raggiunto...
                       GET$ #2,BytesPerCampione,Sample$          '...piglia un campione audio
                                                                                            dal file wav...

                       PUT$ #3,Sample$                                         '...e lo inserisce nel video.

                       count3=0
               END IF


       NEXT x
       NEXT y


       CLOSE #1

       GOSUB PROGBAR

       File$=DIR$("*.bmp")

END IF
RETURN

'                        Fine sezione assemblaggio video
'
'===========================================================================
'
'        Barra di avanzamento elaborazione assemblaggio video


PROGBAR:

IF count>1 THEN
       GOTO BARRA
       ELSE

       blocchi=LUNGHEZZA-1
       DOPPIALINEA$=REPEAT$(LUNGHEZZA-1,CHR$(205))

       LOCATE POSIZIONEY-1,POSIZIONEX
       PRINT CHR$(201)+DOPPIALINEA$+CHR$(187)
       LOCATE POSIZIONEY,POSIZIONEX
       PRINT CHR$(186);TAB(POSIZIONEX+LUNGHEZZA);CHR$(186)
       LOCATE POSIZIONEY+1,POSIZIONEX
       PRINT CHR$(200)+DOPPIALINEA$+CHR$(188)
       LOCATE POSIZIONEY-3,POSIZIONEX
       PRINT "Fotogramma numero:"
END IF

BARRA:
       percentuale=FIX((count/TOT)*100)
       avanzamento=FIX(percentuale*(blocchi-1)/100)
       LOCATE POSIZIONEY,POSIZIONEX+1+avanzamento
       PRINT CHR$(219)

       percentuale$=STR$(percentuale)+CHR$(37)
       LOCATE POSIZIONEY-3,(POSIZIONEX+INT(LUNGHEZZA/2))+3
       PRINT filecount
       LOCATE POSIZIONEY+3,(POSIZIONEX+INT(LUNGHEZZA/2))-2
       PRINT percentuale$

       IF count=TOT THEN
               LOCATE POSIZIONEY+3,(POSIZIONEX+INT(LUNGHEZZA/2))-2
               COLOR 2
               PRINT percentuale$
               completamento=1
       END IF
       INCR count
RETURN


'                Fine barra di avanzamento assemblaggio video
'
'===========================================================================



CONTAFILE:

IF filecount=FLAG THEN ciclo=1 ELSE ciclo=0
RETURN


ERRORE:
IF Limite=0 THEN
SOUND 300,1
SOUND 100,1
CLS
COLOR 4
PRINT "Il formato video è troppo piccolo e non può contenere l'audio."
PRINT
COLOR 7
PRINT "Formato minimo: 320x200"
RETURN
END IF


Se volete testarlo, nel link precedente potete scaricare la cartella contenente i fotogrammi da unire e il file wav.
Potete inoltre scaricare il file con le specifiche degli headers bitmap, wave e avm al seguente link

Adesso comincerò la modifica del player per riprodurre i filmati AVM, cosicchè potrete testare da voi anche la visualizzazione dei video salvati in questo formato.
A presto, ciaoooo!!! :D :D :D




P.S.
Ahem... a quanto pare ci sono problemi con la visualizzazione del codice nel forum... <_< le tabulazioni sono sbagliate e anche alcuni caratteri accentati non vengono riconosciuti. Uff...!
Beh dai, in ogni caso potete scaricare il listato a questo link ^_^
 
Web Contacts  Top
view post Posted on 14/8/2010, 07:40
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


A proposito, non sono sicuro se ho inserito anche il file wav all'interno della cartella compressa dei fotogrammi... uhmm... ....mumble, mumble....
Vabbè ho caricato anche quello, se non lo trovate nella cartella potete scaricarlo da QUI ;)
 
Web Contacts  Top
view post Posted on 14/8/2010, 07:55
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


Medium.wav!!!! :huh:
 
Top
view post Posted on 14/8/2010, 12:45
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Eh si, formato non compresso, non vorrai che salvi un formato lossy sopra un supporto lossless?!
 
Web Contacts  Top
view post Posted on 14/8/2010, 14:30
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


CITAZIONE (yareol @ 14/8/2010, 13:45)
Eh si, formato non compresso, non vorrai che salvi un formato lossy sopra un supporto lossless?!

E' sempre meglio il lossless, io uso il formato tiff anche se le foto diventano di vari mega a discapito della quantita di foto a disposizione, poi a casa le comprimo con winzip o winrar, che come sai sono lossless, a differenza del jpeg, che per quanto grandi hanno sempre una perdita in definizione :B):
 
Top
view post Posted on 14/8/2010, 15:52
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Gigio, sapresti mica trovare quel caspita di bug? Io ci ho provato ma non lo trovo... :(
 
Web Contacts  Top
view post Posted on 14/8/2010, 16:00
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


Ma quanto costa il pb. e poi va su win 7, perchè ora ho solo un pc con win 7 gli altri hanno ubuntu 10.04, pureil portatile :B):
 
Top
view post Posted on 14/8/2010, 16:11
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Su win 7 non so, sul Vista sicuramente. Il PB puoi scaricarlo gratuitamente da qui.
Non serve installazione, basta copiare i file nella root ( c:\ ) e cliccare su PB.EXE
 
Web Contacts  Top
view post Posted on 14/8/2010, 16:27
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


Scaricato grazie. Aspetta ho trovato il vecchio DOS su ubuntu, non l'ha cancellato se riuscissi a farlo partire senza avviare ubuntu! mah ora provo su win 7. se va bene. Pero su dos puro è meglio.

Non va su win 7 64 bit mi da errore. vedo se riesco a riattivare il dos su questo con un dualboot ma la vedo dura. Perù :lol: no però!!!
 
Top
view post Posted on 14/8/2010, 21:44
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Ah scusa è vero, mi confondevo col Basic per Windows...

Ma non hai un pc vecchio che non usi su cui installare il DOS? Magari il 6.0?
 
Web Contacts  Top
view post Posted on 15/8/2010, 07:45
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


CITAZIONE (yareol @ 14/8/2010, 22:44)
Ah scusa è vero, mi confondevo col Basic per Windows...

Ma non hai un pc vecchio che non usi su cui installare il DOS? Magari il 6.0?

Non ho più posto per un'altro pc, ne ho gia 3 in camera che sembra un'astronave. A meno che ne metta uno sopra l'altro. :lol:
Ho fatto prima ho preso un'hd da 8gb da un vecchio pc con Win ME e DOS 6.22, l'ho messo nel PC con Ubuntu, e con il gestore dei dichi d'avvvio su ubuntu ho fatto il resto.
Poi ho aggiornato l'hardware di Win ME per il PC ospite.
Ora posso scegliere se avviare il pc con ubuntu o Win ME, e se con Win ME non riesco ad usare le USB posso sempre montare win me quando uso Ubuntu. ;)

Sono stato chiaro??? no è?

Cmq: funziona...
 
Top
48 replies since 2/8/2010, 14:07   581 views
  Share