2010-09-30 7 views
1

Je prévois d'écrire une application (C/C++/Objective-C) qui va lire des fichiers multimédias dans son propre format de conteneur (privé). Les fichiers contiennent: plusieurs flux vidéo, codés par un codec vidéo (comme XVid ou H264, il est supposé que les composants capables de décoder les formats viidéo sont présents dans le système); plusieurs flux audio dans certains formats compressés (il est supposé que le décodage sera effectué par un composant du système ou par son propre code).Schéma pour lire le fichier vidéo dans son propre format de conteneur sur Mac OS X

Ainsi, il semble qu'il est nécessaire de mettre en œuvre le schéma suivant:

1) Mettre en oeuvre récipient démultiplexeur (peut-être sous la forme d'un composant gestionnaire de médias ).

2) Transmettre des trames vidéo à un composant de décodeur vidéo, et mélanger trames décompressées (en utilisant des règles propres).

3) Transmettre des données audio à un composant de décodeur audio, ou décompresser l'audio par son propre code et mélanger des données audio décodées.

4) Rendu des images vidéo à une fenêtre.

5) Transmettre des données audio à une carte audio sélectionnée.

Quelqu'un pourrait-il donner des conseils à l'une des étapes ci-dessus, à savoir: les boîtes à outils que je devrais utiliser; des échantillons utiles; peut être les noms des fonctions à utiliser; peut être des améliorations au régime, ....

+0

Il existe un seul framework pour cela: QuickTime. Pour commencer, vous devriez lire la documentation QuickTime. Et puis vous devriez vraiment penser à savoir si vous voulez vraiment faire votre propre conteneur ... – Sven

+0

Merci. 1) Oui, le propre conteneur est requis (en effet, les fichiers dans ce conteneur sont écrits par un autre logiciel sur Windows OS, et maintenant je vais essayer d'écrire un lecteur Mac OS X pour ces fichiers). 2) Est-ce suffisant d'utiliser seulement QuickTime? Je pensais qu'il est également nécessaire d'utiliser Core Audio (pour les étapes 3 et 5). Et devrais-je considérer QTKit, ou QTKit est trop haut niveau pour la tâche décrite? – VitalyVal

Répondre

0

Je sais que je suis assez en retard, donc vous pourriez ne plus en avoir besoin, mais je voulais juste mentionner, que la bonne façon de le faire est d'écrire un composant QuickTime . Bien que ce soit assez old school, c'est la même manière qu'Apple utilise pour supporter de nouveaux formats et codecs. Regardez le projet Perian comme un point d'orientation.

Best