Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’encodeur audio MPEG-2 de Microsoft Media Foundation est une transformation Media Foundation qui encode l’audio mono ou stéréo en audio MPEG-1 (ISO/IEC 11172-3) ou mpeg-2 (ISO/IEC 13818-3).
L’encodeur prend en charge l’audio de couche 1 et de couche 2. Il ne prend pas en charge l’audio MPEG-Layer 3 (MP3). Pour MPEG-2, l’encodeur prend en charge la partie LSF (Low Sampling Frequencies) de l’audio MPEG-2. Il ne prend pas en charge les extensions multicanaux. Le MFT génère un flux élémentaire MPEG. Il ne peut pas générer de flux élémentaires paquets, de flux de programme ou de flux de transport.
Identificateur de classe
L’identificateur de classe (CLSID) de l’encodeur audio MEPG-2 est CLSID_CMPEG2AudioEncoderMFT, défini dans le fichier d’en-tête wmcodecdsp.h.
Types de sortie
Le type de sortie doit être défini en premier, avant le type d’entrée. Le tableau suivant répertorie les attributs obligatoires et facultatifs pour le type de média de sortie.
Attribut | Description | Notes |
---|---|---|
MF_MT_MAJOR_TYPE | Type principal. | Obligatoire. Doit être MFMediaType_Audio. |
MF_MT_SUBTYPE | Sous-type audio. | Obligatoire. Doit être MFAudioFormat_MPEG. Ce sous-type est utilisé pour l’audio MPEG-1 et MPEG-2. |
MF_MT_AUDIO_SAMPLES_PER_SECOND | Exemples par seconde. | Obligatoire. Les valeurs suivantes sont prises en charge pour MPEG-1 et MPEG-2 :
|
MF_MT_AUDIO_NUM_CHANNELS | Nombre de canaux. | Obligatoire. Doit être 1 (mono) ou 2 (stéréo). |
MF_MT_AUDIO_CHANNEL_MASK | Spécifie l’affectation des canaux audio aux positions de l’orateur. | Optionnel. Si elle est définie, la valeur doit être 0x3 pour stéréo (canaux avant gauche et droit) ou 0x4 pour mono (canal avant centre). |
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | Débit binaire du flux MPEG encodé, en octets par seconde. | Optionnel. Les spécifications ISO/IEC 11172-3 et ISO/IEC 13818-3 (LSF) définissent plusieurs débits binaires, en fonction du taux d’échantillonnage, du nombre de canaux et de la couche audio (1 ou 2). Par défaut, l’encodeur est audio de couche 2. Si l’attribut MF_MT_AUDIO_AVG_BYTES_PER_SECOND n’est pas défini, l’encodeur utilise les débits binaires par défaut suivants :
Vous pouvez également définir la vitesse de transmission à l’aide de l’interface ICodecAPI . Pour plus d'informations, consultez la section Notes. |
Si les attributs facultatifs ne sont pas définis, l’encodeur les ajoute au type de média une fois le type défini.
Types d’entrée
Le tableau suivant répertorie les attributs obligatoires et facultatifs pour le type de média d’entrée.
Attribut | Description | Notes |
---|---|---|
MF_MT_MAJOR_TYPE | Type principal. | Obligatoire. Doit être MFMediaType_Audio. |
MF_MT_SUBTYPE | Sous-type audio. | Obligatoire. Doit être MFAudioFormat_PCM ou MFAudioFormat_Float. |
MF_MT_AUDIO_BITS_PER_SAMPLE | Nombre de bits par exemple audio. | Obligatoire. La valeur doit être 16 si le sous-type est MFAudioFormat_PCM, ou 32 si le sous-type est MFAudioFormat_Float. |
MF_MT_AUDIO_SAMPLES_PER_SECOND | Exemples par seconde. | Obligatoire. Doit correspondre au type de sortie. |
MF_MT_AUDIO_NUM_CHANNELS | Nombre de canaux. | Obligatoire. Doit correspondre au type de sortie. |
MF_MT_AUDIO_BLOCK_ALIGNMENT | Alignement des blocs, en octets. | Obligatoire. Calculez la valeur comme suit :
|
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | Débit binaire du flux AC3 encodé, en octets par seconde. | Obligatoire. Doit être égal à l’alignement des blocs × échantillons par seconde. |
MF_MT_AUDIO_CHANNEL_MASK | Spécifie l’affectation des canaux audio aux positions de l’orateur. | Optionnel. Si elle est définie, la valeur doit correspondre au type de sortie. |
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE | Nombre de bits de données audio valides dans chaque exemple audio. | Optionnel. Si elle est définie, la valeur doit être identique à MF_MT_AUDIO_BITS_PER_SAMPLE. |
L’encodeur ne prend pas en charge la conversion de taux d’échantillonnage ou la conversion stéréo/mono. Si les attributs facultatifs ne sont pas définis, l’encodeur les ajoute au type de média une fois le type défini.
Propriétés du codec
L’encodeur prend en charge les propriétés suivantes via l’interface ICodecAPI .
Propriété | Description | Valeur par défaut |
---|---|---|
CODECAPI_AVEncCommonMeanBitRate | Spécifie le débit binaire moyen encodé, en bits par seconde. | Comme décrit pour l’attribut MF_MT_AUDIO_AVG_BYTES_PER_SECOND dans le type de média de sortie. |
CODECAPI_AVEncMPACodingMode | Spécifie le mode d’encodage audio MPEG. | Stéréo pour l’audio à 2 canaux ou canal unique pour l’audio à 1 canal. Pour l’audio à 2 canaux, l’encodeur prend également en charge le double canal et la stéréo commune. |
CODECAPI_AVEncMPACopyright | Spécifie s’il faut définir le bit de copyright dans le flux audio MPEG. | Aucun droit d’auteur. |
CODECAPI_AVEncMPAEmphasisType | Spécifie le type de filtre d’accentuation qui doit être utilisé lorsque le flux encodé est décodé. | Aucune accentuation spécifiée. |
AVEncMPAEnableRedundancyProtection | Spécifie s’il faut ajouter un case activée de redondance cyclique (CRC) à l’en-tête de frame. | Une somme de contrôle CRC est écrite dans le flux de bits. |
CODECAPI_AVEncMPALayer | Spécifie la couche audio MPEG. | Audio de couche 2. |
CODECAPI_AVEncMPAOriginalBitstream | Spécifie s’il faut définir pour le bit d’origine dans le flux audio MPEG. | Le bit « Original » est désactivé. |
CODECAPI_AVEncMPAPrivateUserBit | Spécifie s’il faut définir pour le bit utilisateur privé dans le flux audio MPEG. | Le bit utilisateur privé est désactivé. |
Pour obtenir un pointeur vers l’interface ICodecAPI , appelez QueryInterface sur le MFT.
Le MFT implémente les méthodes ICodecAPI suivantes :
Toutes les autres méthodes ICodecAPI retournent E_NOTIMPL.
Notes
Chaque image audio MPEG contient 384 échantillons audio (couche 1) ou 1152 (couche 2) par canal. Toutefois, chaque mémoire tampon d’entrée dans l’encodeur peut contenir un nombre quelconque d’exemples PCM. La taille de chaque mémoire tampon d’entrée doit être un multiple de l’alignement du bloc. L’encodeur met en cache les exemples d’entrée jusqu’à ce qu’il en ait suffisamment pour une trame audio MPEG.
Chaque mémoire tampon de sortie contient une trame MPEG brute. La taille de chaque mémoire tampon de sortie dépend du débit binaire et de la fréquence d’échantillonnage.
Configuration de l’encodeur
Pour modifier l’un des paramètres par défaut de l’encodeur, procédez comme suit :
Créez un instance de l’encodeur MFT.
Appelez IMFTransform::GetOutputAvailableType pour obtenir la liste des types de sortie préférés. L’encodeur énumère tous les taux d’échantillonnage pour mono et stéréo. Sélectionnez l’un de ces types de médias, en fonction du taux d’échantillonnage et du nombre de canaux. L’attribut MF_MT_AUDIO_AVG_BYTES_PER_SECOND indique la vitesse de transmission par défaut, en octets par seconde.
Facultatif : vous pouvez remplacer le débit binaire par défaut en définissant une nouvelle valeur pour MF_MT_AUDIO_AVG_BYTES_PER_SECOND sur le type de média de sortie. Les débits binaires valides dépendent du taux d’échantillonnage, du nombre de canaux et de la couche audio.
Notes
À ce stade du processus de configuration, l’encodeur utilise par défaut l’audio de couche 2 et n’accepte que les débits binaires de couche 2. Vous pourrez basculer l’encodeur vers la couche 1 à une étape ultérieure (voir l’étape 7). Dans ce cas, laissez le débit binaire par défaut pour l’instant ; vous pouvez le modifier à nouveau à l’étape 8.
Appelez IMFTransform::SetOutputType pour définir le type de média de sortie. Si vous définissez votre propre valeur pour MF_MT_AUDIO_AVG_BYTES_PER_SECOND et que MFT rejette le type de média de sortie, cela est probablement dû au fait que vous avez spécifié un débit binaire non valide.
Appelez IMFTransform::GetInputAvailableType pour énumérer le type de média d’entrée. Étant donné que le taux d’échantillonnage et le nombre de canaux doivent être identiques au type de sortie, seules deux options sont énumérées : l’entrée PCM à virgule flottante 32 bits et l’entrée PCM entière 16 bits. Sélectionnez l’une de ces options.
Appelez IMFTransform::SetInputType pour définir le type de média d’entrée.
Facultatif : pour encoder l’audio de couche 1, définissez la propriété CODECAPI_AVEncMPALayer sur eAVEncMPALayer_1.
Facultatif : pour modifier la vitesse de transmission, définissez la propriété CODECAPI_ AVEncCommonMeanBitRate . Le débit binaire doit être l’un des débits binaires valides répertoriés dans les spécifications MPEG-1 ou MPEG-2 LSF. Vous pouvez également appeler ICodecAPI::GetParameterValues pour obtenir une liste de débits binaires valides , en fonction des paramètres actuels.
Facultatif : avec l’audio à 2 canaux, vous pouvez définir la propriété CODECAPI_ AVEncMPACodingMode pour changer le mode de codage en double canal ou stéréo conjoint. Vous pouvez appeler ICodecAPI::GetParameterRange pour obtenir les options valides. (Pour l’audio à 1 canal, la seule option est mono.)
Facultatif : définissez l’une des autres propriétés ICodecAPI répertoriées précédemment.
Il est important de suivre l’ordre de ces étapes. En particulier, définissez le type de média de sortie avant de modifier les propriétés ICodecAPI . En outre, vous devez définir les propriétés ICodecAPI avant que le MFT reçoive le premier exemple d’entrée. Une fois que le MFT a reçu l’entrée, les propriétés du codec sont en lecture seule, et ICodecAPI::SetValue retourne la valeur S_FALSE.
Débits binaires pris en charge
L’encodeur prend en charge les débits binaires suivants.
MPEG-1
MPEG-2
Couche 1
Couche 2
Couche 1
Couche 2
32
32*
32
8
64
48*
38
16
96
56*
56
24
128
64
64
32
160
80*
80
40
192
96
96
48
224
112
112
56
256
128
128
64
288
160
144
80
320
192
160
96
352
224**
176
112
384
256**
192
128
416
230**
224
144
448
384**
256
160
- \* Mono uniquement \*\* Stéréo uniquement
Exemples de types de médias
Voici un exemple des types multimédias nécessaires pour encoder un pcM entier 16 bits, 48 kHz audio stéréo au débit binaire par défaut.
Type de média de sortie :
Attribut | Valeur |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Audio |
MF_MT_SUBTYPE | MFAudioFormat_MPEG |
MF_MT_AUDIO_SAMPLES_PER_SECOND | 48 000 |
MF_MT_AUDIO_NUM_CHANNELS | 2 |
Type de média d’entrée :
Attribut | Valeur |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Audio |
MF_MT_SUBTYPE | MFAudioFormat_PCM |
MF_MT_AUDIO_BITS_PER_SAMPLE | 16 |
MF_MT_AUDIO_SAMPLES_PER_SECOND | 48 000 |
MF_MT_AUDIO_NUM_CHANNELS | 2 |
MF_MT_AUDIO_BLOCK_ALIGNMENT | 4 |
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | 192000 |
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge |
Aucun pris en charge |
DLL |
|
Voir aussi