Partager via


Interface IAMTimecodeReader (strmif.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

L’interface IAMTimecodeReader lit le timecode SMPTE ou MIDI à partir d’un appareil externe. Les pilotes MSDV et MSTape prennent en charge cette interface pour lire le timecode à partir d’un caméscope DV ou MPEG-2 externe.

Héritage

L’interface IAMTimecodeReader hérite de l’interface IUnknown. IAMTimecodeReader possède également les types de membres suivants :

Méthodes

L’interface IAMTimecodeReader comporte ces méthodes.

 
IAMTimecodeReader ::get_VITCLine

La méthode get_VITCLine récupère la ligne d’intervalle verticale que le lecteur de timecode utilise pour lire le timecode.
IAMTimecodeReader ::GetTCRMode

La méthode GetTCRMode récupère les propriétés du lecteur timecode.
IAMTimecodeReader ::GetTimecode

La méthode GetTimecode récupère les valeurs de timecode, userbit et flag les plus récentes disponibles dans le flux.
IAMTimecodeReader ::p ut_VITCLine

La méthode put_VITCLine spécifie la ligne d’intervalle verticale que le lecteur de timecode utilisera pour lire le timecode.
IAMTimecodeReader ::SetTCRMode

La méthode SetTCRMode définit les propriétés du lecteur timecode.

Remarques

Pour les appareils WDM (Windows Driver Model), le filtre de capture vidéo WDM expose automatiquement cette interface si le pilote WDM prend en charge l’ensemble de propriétés PROPSETID_TIMECODE_READER. Pour plus d’informations, consultez la documentation du Kit de pilotes Windows (WDK).

Le timecode SMPTE est un système d’adressage d’images qui identifie les sources vidéo et audio, rend possible la synchronisation automatique des pistes et fournit un conteneur pour des données supplémentaires liées au matériel source. L’objectif main du timecode SMPTE est de fournir une adresse lisible par machine pour la vidéo et l’audio. Il est affiché au format hh :mm :ss :ff (heures, minutes, secondes, images) et est entièrement défini dans ANSI/SMPTE 12-1986.

Les applications économisent généralement le timecode de deux manières. Il est écrit dans le fichier de capture sous la forme d’un flux supplémentaire ou d’une table de discontinuité stockée dans l’index de fichier AVI étendu. Il est couramment utilisé pour déclencher la capture ou la lecture et pour créer des listes de décision de modification qui décrivent comment le matériel source est organisé en un produit fini.

Si vous envisagez de capturer le timecode, traitez-le comme un flux distinct qui a son propre type de média. Il peut être consommé par un filtre de multiplexeur d’écriture de fichier approprié. Toutefois, il arrive que des erreurs soient rencontrées lors de la lecture du timecode hors de la bande en raison d’abandons et d’autres problèmes mécaniques de bande. Dans ce cas, le filtre source timecode doit simplement supprimer les exemples et marquer le suivant valide avec la propriété de discontinuité.

Si vous envisagez d’utiliser des timecodes pour déclencher la capture ou la lecture à partir d’une bande vidéo timecoded (ou « striped »), la séquence d’événements se présente comme suit :

  1. Créez un graphique de capture, ouvrez un fichier AVI cible et préallouez l’espace disque si nécessaire. Si le matériel capturé est ajouté à un fichier AVI existant, recherchez la fin du fichier avant d’écrire. Le graphique de capture est suspendu à ce stade.
  2. Recherchez le magnétoscope jusqu’au point de départ de la capture et notez le timecode. Vous pouvez entrer cette valeur manuellement dans votre programme ou l’application peut la lire automatiquement. La lecture automatique nécessite que le graphe soit en cours d’exécution, mais que les interfaces de contrôle de flux sur les broches d’entrée du multiplexeur de fichiers ignorent les exemples entrants, ce qui permet de gérer efficacement la capture.
  3. Indiquez au magnétoscope la position de préroll, généralement cinq secondes avant le point cible.
  4. Démarrez le magnétoscope et le graphique. Lorsque le point de déclencheur est atteint (ou le point de déclencheur moins le préroll de l’enregistreur de fichiers), les interfaces de contrôle de flux libèrent le multiplexeur de fichiers et commencent à diffuser en continu des exemples multimédias vers l’enregistreur de fichiers.
  5. Vous pouvez arrêter le processus de capture manuellement ou en définissant une propriété duration sur l’interface de contrôle de flux.
Vous devez prendre en compte le timecode discontinu, à la fois pendant le préroll et pendant le processus de capture ; il est raisonnable d’exiger que le timecode soit continu et monotoniquement croissant tout au long du préroll et du point de départ de la capture. Cela empêche un calcul potentiellement ambigu des temps de flux relatifs par la méthode IMediaSeeking ::ConvertTimeFormat . En outre, le timecode n’a pas besoin d’être le seul signal de déclenchement pour la capture déclenchée. Toutes les données horodatées stockées dans l’intervalle de remplissage vertical, telles que l’interdiffusion ou les données sous-titrés (XDS), peuvent être utilisées pour démarrer la diffusion en continu de données vidéo et audio sur disque.

Configuration matérielle requise

Consultez l’interface IAMExtTransport pour connaître la configuration matérielle requise.

Filtrer les développeurs

Implémentez cette interface sur un filtre d’appareil externe lorsque vous souhaitez spécifier comment un appareil externe doit lire les informations de timecode SMPTE/MIDI. Exposez l’interface IMediaSeeking sur votre filtre afin que les applications puissent convertir le timecode en heure de référence, à l’aide de la méthode IMediaSeeking ::ConvertTimeFormat .

L’appareil externe doit être en mesure de lire le timecode et de l’envoyer à l’ordinateur via son interface de contrôle. Si ce n’est pas le cas, vous devez disposer d’un lecteur timecode carte dans votre ordinateur, ou vous pouvez écrire un décodeur logiciel qui convertit VITC (Vertical Interval Timecode) dans des images vidéo capturées ou LTC (Linear Timecode) capturés sous forme de signal audio en exemples de timecode DirectShow.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)

Voir aussi

Interfaces