Temps dans DirectShow Editing Services

[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.]

[Cette API n’est pas prise en charge et peut être modifiée ou indisponible à l’avenir.]

Pour modifier la vidéo, vous devez utiliser des concepts de minutage importants. Par exemple :

  • Chaque clip a une durée.
  • Les clips, les transitions et les effets apparaissent à certains moments dans un projet.
  • La vidéo a une fréquence d’images, exprimée en images par seconde (fps).

DirectShow Editing Services (DES) fournit différentes méthodes qui définissent ou récupèrent les heures et les fréquences d’images. La signification de ces valeurs dépend du contexte.

Valeurs de temps

Lorsqu’un paramètre exprime une heure, trois significations distinctes sont possibles :

  • Heure de la chronologie : heure relative au début du chronologie. Par exemple, un clip peut démarrer 2 secondes dans le chronologie, ou une transition peut se produire 15 secondes dans le chronologie. Le chronologie détermine le projet rendu final, de sorte que vous pouvez également considérer chronologie heure comme « heure du projet ».
  • Temps multimédia : point dans un fichier source par rapport au début du fichier, comme atteint pendant la lecture normale. Par exemple, si vous avez un fichier vidéo de 10 secondes, le point intermédiaire du fichier se produit à 5 secondes, exprimé sous forme d’heure multimédia.
  • Heure parente : heure relative à un objet dans le chronologie. Par exemple, si un objet démarre à 8 secondes sur le chronologie et contient un autre objet qui commence à 10 secondes sur le chronologie, l’objet enfant démarre à 2 secondes par rapport au parent. Les suivis virtuels commencent tous à l’heure zéro, par rapport à la chronologie. Par conséquent, pour tout objet d’une piste virtuelle, l’heure parente est égale à chronologie heure.

Le temps multimédia s’applique uniquement aux objets sources. Chaque objet source a une heure de début multimédia et une heure d’arrêt du média. Par exemple, supposons que vous disposez d’un clip vidéo de 10 secondes et que vous souhaitez utiliser seulement 5 secondes à partir du milieu du clip, en coupant les 2 premières secondes et les 3 dernières secondes du clip. Si vous souhaitez que le clip apparaisse 20 secondes dans le projet (en supposant un taux de lecture normal), vous devez spécifier les heures de début et d’arrêt suivantes.

  • Démarrage multimédia : 2 secondes

  • Arrêt multimédia : 7 secondes

  • Démarrage de la chronologie : 20 secondes

  • Arrêt de chronologie : 25 secondes

    insertion d’un clip source sur un chronologie

Fréquences d’images

La fréquence d’images est la « vitesse » d’un flux multimédia, mesurée en images par seconde. Comme pour les valeurs de temps, la signification d’une fréquence d’images dépend du contexte :

  • Fréquence d’images de sortie : Fréquence d’images du projet rendu final, définie par le groupe. Lorsque vous affichez le projet, chaque groupe devient un flux multimédia distinct avec sa propre fréquence d’images.
  • Fréquence d’images source : Fréquence d’images dans laquelle le fichier source a été créé à l’origine. La fréquence d’images créée n’a pas besoin de correspondre à la fréquence d’images de sortie du groupe. DES effectue automatiquement le upsample ou le sous-échantillonne automatiquement le fichier si nécessaire. Pour la plupart des formats multimédias, DES peut déterminer la fréquence d’images en examinant le format. Une séquence DIB est une exception ; vous devez spécifier la fréquence d’images d’une séquence DIB. (Pour plus d’informations, consultez Utilisation des sources.)

Taux de lecture : Vitesse apparente d’un clip source lorsqu’il apparaît dans le projet. Par exemple, 10 secondes de vidéo peuvent être ajustées en 5 secondes sur le chronologie. Par conséquent, la vitesse du clip augmente d’un facteur 2, comme l’illustre le diagramme suivant.

accélérer la lecture d’une source

(Avec une source audio, le ton est également décalé.) La formule suivante détermine le taux de lecture d’un clip source :

  • Taux de lecture = (Media Stop – Media Start) / (Arrêt de la chronologie – Début de la chronologie)

Notez que chacun de ces trois taux est indépendant des autres :

  • Vous pouvez accélérer ou ralentir un clip en ajustant les heures de média ; cela n’affecte pas la fréquence d’images de la sortie finale.
  • Vous pouvez augmenter ou diminuer la fréquence d’images de sortie sans affecter la vitesse de lecture d’un fichier.
  • Vous pouvez mélanger, au sein du même groupe, des fichiers sources qui ont des fréquences d’images créées différentes, et DES va monter ou descendre chaque clip pour correspondre à la fréquence d’images du groupe.

Lorsque vous affichez un projet, toutes les heures sont arrondies à la limite d’image la plus proche, comme déterminé par la fréquence d’images du groupe. Par exemple, supposons qu’un groupe vidéo a une fréquence d’images de 30 fps. Chaque image est d’environ 33 millisecondes (ms). Supposons que vous ajoutez un clip source de 1,68 seconde à la chronologie, en commençant à l’heure zéro. La source ne se termine pas exactement sur une limite d’image, de sorte que DES arrondit le temps d’arrêt à 1,6666 secondes (50 images). Si vous recherchez 1,68 seconde dans le projet rendu, vous recherchez au-delà de la fin de la source, à la 51e image.

Toutefois, DES ne remplace pas l’heure d’arrêt de la source. Vous pouvez modifier ultérieurement la fréquence d’images du groupe ou déplacer la source vers un nouvel emplacement dans le chronologie où elle s’arrondit différemment. Par conséquent, DES conserve l’heure d’arrêt d’origine et arrondit uniquement si nécessaire. Pour plus d’informations, consultez IAMTimelineObj::FixTimes.

Prise en main avec DirectShow Editing Services