2008-08-27 8 views
0

Quelqu'un connaît (ou connaît une ressource qui contient) une liste de codes de début de trame pour les formats vidéo courants (MPEG-1/2/4, .wmv, .mov, etc.). Par exemple, une trame vidéo MPEG-1 commencera toujours (je pense) par "00 00 01 00".Codes de démarrage du codec vidéo

Essentiellement, je voudrais les connaître afin que je puisse écrire un programme qui peut automatiquement trouver le début des images dans une vidéo pour un certain nombre de formats vidéo différents.

Répondre

1

Que voulez-vous réaliser?

Est-ce une question sur la structure des types de conteneurs vidéo?

Voir par exemple: http://www.daubnet.com/formats/AVI.html

C'est une description comment les fichiers avi sont structurés. Google peut vous aider à trouver d'autres formats de fichiers conteneurs.

Lorsque vous enregistrez une vidéo, elle est normalement composée d'images individuelles, pensez à des fichiers bitmap individuels dans un répertoire.

Pour avoir seulement 1 fichier d'une vidéo, ce flux de trames est placé dans un conteneur, qui a un en-tête décrivant le contenu et une certaine disposition dans laquelle les trames sont stockées séquentiellement dans le fichier.

Exemple simple pour mon propre conteneur:

{ 
    struct header 
    { 
     unsigned int frametype; 
     unsigned int framesize; 
    }; 

    byte* readFrame(header* pHdr, int frameNum) 
    { 
     byte* pFirstFrame = ((byte*) pHdr) + sizeof(header); 
     return pFristFrame + frameNum * pHdr->framesize; 
    } 
} 

Il existe plusieurs autres types de conteneurs. AVI est seulement un de ces types de conteneurs. Pour accéder aux images individuelles, vous devez interpréter l'en-tête dans le fichier puis, en fonction de ces informations, calculer la position de l'image que vous voulez analyser.

Je vous ai posté un lien vers la définition du format de fichier AVI. Il existe d'autres endroits où vous pouvez obtenir des informations sur les formats de fichiers mpeg/mkv/ogm.

Vous avez besoin de ces informations pour que votre programme fonctionne. Sur une note de côté, les formats compressés ne sécurisent pas toutes les images séparément. Ils sécurisent une trame individuelle puis plusieurs images intermédiaires, qui contiennent uniquement les informations sur la façon dont la trame actuelle diffère de la dernière trame complète. Vous ne pouvez donc pas extraire des images complètes à chaque numéro d'image.

Questions connexes