Hora en DirectShow Editing Services
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
[Esta API no se admite y puede modificarse o no estar disponible en el futuro].
Para editar vídeo, debe trabajar con algunos conceptos importantes de tiempo. Por ejemplo:
- Cada clip tiene una duración.
- Los clips, las transiciones y los efectos aparecen en determinados momentos de un proyecto.
- El vídeo tiene una velocidad de fotogramas, expresada en fotogramas por segundo (fps).
DirectShow Editing Services (DES) proporciona varios métodos que establecen o recuperan tiempos y velocidades de fotogramas. El significado de estos valores depende del contexto.
Valores de hora
Cuando un parámetro expresa una hora, son posibles tres significados distintos:
- Tiempo de la escala de tiempo: hora relativa al principio de la escala de tiempo. Por ejemplo, un clip puede iniciar 2 segundos en la escala de tiempo o una transición puede producirse 15 segundos en la escala de tiempo. La escala de tiempo determina el proyecto representado final, por lo que también puede considerar la hora de la escala de tiempo como "tiempo del proyecto".
- Tiempo multimedia: un punto en un archivo de origen con respecto al inicio del archivo, tal como se alcanzó durante la reproducción normal. Por ejemplo, si tiene un archivo de vídeo de 10 segundos, el punto medio del archivo se produce en 5 segundos, expresado como un tiempo multimedia.
- Hora primaria: hora relativa a un objeto en la escala de tiempo. Por ejemplo, si un objeto comienza en 8 segundos en la escala de tiempo y contiene otro objeto que comienza en 10 segundos en la escala de tiempo, el objeto secundario comienza en 2 segundos en relación con el elemento primario. Las pistas virtuales comienzan en cero en relación con la escala de tiempo. Por lo tanto, para cualquier objeto de una pista virtual, el tiempo primario es igual al tiempo de la escala de tiempo.
El tiempo multimedia solo se aplica a los objetos de origen. Cada objeto de origen tiene una hora de inicio multimedia y una hora de detención de medios. Por ejemplo, supongamos que tienes un clip de vídeo de 10 segundos y quieres usar solo 5 segundos desde el centro del clip, recortando los primeros 2 segundos y los últimos 3 segundos del clip. Si desea que el clip aparezca 20 segundos en el proyecto (y suponiendo una velocidad de reproducción normal), especificaría las siguientes horas de inicio y detención.
Inicio de medios: 2 segundos
Parada multimedia: 7 segundos
Inicio de la escala de tiempo: 20 segundos
Detención de escala de tiempo: 25 segundos
Velocidades de fotogramas
La velocidad de fotogramas es la "velocidad" de una secuencia multimedia, medida en fotogramas por segundo. Al igual que con los valores de tiempo, el significado de una velocidad de fotogramas depende del contexto:
- Velocidad de fotogramas de salida: Velocidad de fotogramas del proyecto representado final, definido por el grupo. Al representar el proyecto, cada grupo se convierte en una secuencia multimedia independiente con su propia velocidad de fotogramas.
- Velocidad de fotogramas de origen: Velocidad de fotogramas en la que se creó originalmente el archivo de origen. La velocidad de fotogramas creadas no tiene que coincidir con la velocidad de fotogramas de salida del grupo. DES actualizará o reducirá automáticamente el archivo según sea necesario. Para la mayoría de los formatos multimedia, DES puede determinar la velocidad de fotogramas examinando el formato. Una secuencia DIB es una excepción; debe especificar la velocidad de fotogramas de una secuencia DIB. (Para obtener más información, vea Trabajar con orígenes).
Velocidad de reproducción: Velocidad aparente de un clip de origen cuando aparece en el proyecto. Por ejemplo, 10 segundos de vídeo puede caber en 5 segundos en la escala de tiempo. Como resultado, la velocidad del clip aumenta en un factor de 2, como se muestra en el diagrama siguiente.
(Con una fuente de audio, el tono también se desplazaría). La fórmula siguiente determina la velocidad de reproducción de un clip de origen:
- Velocidad de reproducción = (Media Stop – Media Start) / (Timeline Stop – Timeline Start)
Tenga en cuenta que cada una de estas tres tarifas es independiente de las demás:
- Puede acelerar o ralentizar un clip ajustando los tiempos multimedia; esto no afecta a la velocidad de fotogramas de la salida final.
- Puede aumentar o disminuir la velocidad de fotogramas de salida sin afectar a la rapidez con la que se reproduce un archivo.
- Puede mezclar, dentro del mismo grupo, los archivos de código fuente que tienen diferentes velocidades de fotogramas creadas, y DES subirá o reducirá cada clip para que coincida con la velocidad de fotogramas del grupo.
Cuando se representa un proyecto, todas las veces se redondean al límite de marco más cercano, según lo determinado por la velocidad de fotogramas de grupo. Por ejemplo, supongamos que un grupo de vídeo tiene una velocidad de fotogramas de 30 fps. Cada fotograma tiene aproximadamente 33 milisegundos (ms). Supongamos que agrega un clip de origen de 1,68 segundos a la escala de tiempo, empezando por cero. El origen no termina exactamente en un límite de marco, por lo que DES redondea el tiempo de detención a 1,6666 segundos (50 fotogramas). Si busca 1,68 segundos en el proyecto representado, realmente buscará más allá del final del origen en el marco 51.
Sin embargo, DES no sobrescribe el tiempo de detención del origen. Más adelante, puede cambiar la velocidad de fotogramas del grupo o mover el origen a un nuevo punto en la escala de tiempo donde redondea de forma diferente. Por lo tanto, DES conserva el tiempo de detención original y se redondea solo cuando es necesario. Para obtener más información, vea IAMTimelineObj::FixTimes.
Temas relacionados