2010-06-25 11 views
3

Je crée une application qui doit lire les flux H264 et AC3 à partir d'un conteneur MP4 et les fusionner en un seul fichier ISMV. Le fichier source MP4 contient un certain nombre de flux vidéo de différents débits binaires et un certain nombre de flux audio de langues différentes. Quand j'appelle IGraphBuilder::AddSourceFilter pour mon fichier source, j'obtiens un filtre qui n'a que deux broches de sortie: "Vidéo" et "Audio". Comment choisir quel flux particulier (par exemple: quel débit d'un flux vidéo) utiliser pour "Vidéo" et "Audio"? Dois-je instancier plusieurs filtres de source pour lire ce fichier et les convertir en ISMV, ou ai-je oublié quelque chose?DirectShow: sélectionnez un flux vidéo source à partir d'un conteneur MP4

Répondre

4

Cela dépend du démultiplexeur que vous utilisez pour MP4. Je ne pense pas qu'il y ait un démultiplexage MP4 en stock, donc vous en avez probablement un dans le cadre d'un paquet décodeur, et cela agit à la fois comme source et comme démultiplexeur.

Vous pouvez essayer le démultiplexeur MP4 open-source gratuit sur www.gdcl.co.uk/mpeg4. Vous aurez besoin de AddSourceFilter (obtenir une source de fichier avec une seule sortie), puis connecter explicitement la sortie source à l'entrée démux. Ensuite, vous aurez des broches de sortie correspondant à tous les flux activés que le démultiplexeur comprend, et vous pouvez sélectionner celles que vous voulez.

G

Questions connexes