Leer cabecera de ficheros avi.

yvan
27 de Mayo del 2006
Como sepuede leer la cabecera de los ficheros avi, para poder mostrar la informacion que trae, asi como autor, artista y demas, gracias.

hgouveia
27 de Mayo del 2006
bueno lo primero que tienes que hacer, es conseguir informacion de como esta distribuida la informacion de los avi deacuerdo a cada byte y todo eso, despues utilizando

FileInputStream file = new FileInputStream(archivo);
in= new DataInputStream(file);

manipulas el archivo en base de bytes,

por ejemplo si tu sabes que en los 3primeros bytes digamos que esta la cabecera que identifica que es un byte, tendrias que hacer un array de bytes :

byte[] cabecera_inicial=new byte[3];

luego con in.read(cabecera_incial);
y con esto llenarias 1 byte en cada casilla,
pero dependiendo de lo que hagas , tambien puedes utilizar readShort que te lee 2byte, readInt lee 4byte, readByte lee 1 byte y ahi vas traduciendo poco a poco la informacion , bien sea conviertiendo a char los datos que recibas, recuerda que en algunos casos tienes que hacer el rodamiento de byte, que se hace con << >>, dependiendo a los bits que este el archivo, supongamos 2byte son 16bits entoces supongamos que tienes distribuido por ejemplo en los primeros 5bits R, en los proximos 6bits G, y los ultimos 5bits B, (RGB, un color), tendrias que hacer rodamientos por ejemplo digamos que quieres saber quien es R solo tendrias que hacer int s=in.readShort(); int r=(s>>11); , aqui estariamos agregando 11 0 por la derecha y que daria de esta forma

el binario orignal seria algo asi r r r r r g g g g g g b b b b b , quedaria 0 0 0 0 0 0 0 0 0 0 0 r r r r r

r seria una serie de 1 y 0 , que luego te dara un numero


bueno espero que te sirva de algo, lo importante es que busque la informacion de como se leen los avi