Per leggere i bytes di un singolo file video:
Codice:
byte[] fileVideoUno = File.ReadAllBytes(path_del_file_video);
Ti ricavi la lunghezza del file video:
Codice:
int lengthUno = fileVideoUno.Length;
Una volta ottenuta una cosa del genere in fileVideoUno hai il tuo video in un array di byte e nella variabile lengthUno quanti byte è lungo il tuo file video.
Facciamo finta che la lenght del primo video sia 1056 bytes.
Quindi lengthUno = 1056;
Processiamo un secondo video:
Codice:
byte[] fileVideoDue = File.ReadAllBytes(path_del_file_video2);
int lengthDue = fileVideoUno.Length;
//Ad esempio il secondo video è lungo 1497 byte
lengthDue = 1497;
Uniamo i due array dei video letti in un unico array:
Codice:
byte[] fileVideoUniti =newbyte[lengthUno + lengthDue];
fileVideoUno.CopyTo(fileVideoUniti,0);
fileVideoDue.CopyTo(fileVideoUniti, lengthUno);
Scriviamo il risultato dei file accodati in un unico file:
Codice:
File.WriteAllBytes("C:\\FileRisultato.pack",fileVideoUniti);
Quindi ricapitolando sappiamo che il primo video è lungo 1056 bytes mentre il secondo 1497.
Puoi creare un semplice file di testo che userai per estrarre dal "pack" il file video che ti serve:
FileVideo1,0,1056 // 0 = Offset di partenza - 1056 = Lunghezza in byte
FileVideo2,1057,1497 // 1057 = Offset di partenza(Il byte subito dopo la lunghezza del primo file) - 1497 = Lunghezza in byte
e cosi via....
Per quanto riguarda invece la criptatura con AES puoi (prima di scrivere il file FileRisultato.pack) processare ogni singolo byte array di ogni singolo video e criptarlo con la chiave AES che ti definisci. Ho trovato un codice di esempio (in inglese) che puoi trovare qua:
http://www.obviex.com/samples/encryption.aspx
Spero che questo esempio ti sia di aiuto