Estoy escribiendo un programa que interpreta las marcas de tiempo LTC de los canales de audio en archivos de video. El objetivo es eliminar la pista LTC y reemplazarla con algún tipo de marcas de tiempo nativas directamente en el archivo de video, de manera que los NLE posteriores puedan interpretar correctamente, por ejemplo, para líneas de tiempo de múltiples cámaras.
He hecho el análisis de LTC, por lo que para cada cuadro del video, puedo decir cuál es su marca de tiempo. ¿Cómo codifico eso en contenedores como .MP4 y .MOV? Sería más simple si pudiera hacerlo con ffmpeg
.
@Gyan da la respuesta en los comentarios:
Los MP4 y MOV almacenan solo el TC del primer fotograma, como un recuento de fotogramas literal, junto con la velocidad de fotogramas. La aplicación consumidora vuelve a convertir ese recuento de fotogramas en una cadena TC utilizando la velocidad de fotogramas. Para TC drop-frame, ffmpeg solo admite 30 y 60 fps. Agregaré 24/48 cuando tenga tiempo y una referencia SMPTE que pueda consultar. Para TC sin caída, cualquier fps está bien. Agregue -timecode HH:MM:SS:FF a su cmd. Utilizar ; para el separador final si TC es drop frame.
gian
iterar
iterar
gian
-timecode HH:MM:SS:FF
a su cmd. Úselo;
para el separador final si TC es drop frame.iterar
iterar
-timecode
? 5) Leyendo-timecode
en el manual, veo el-timestamp
parámetro. ¿Cuál es la relación entre estos? ¿Se-timestamp
refiere al primer cuadro o al último (es decir, cuando el archivo terminó de escribirse)? Si estos dos parámetros escriben campos diferentes en un archivo, ¿los NLE los interpretan de manera diferente?Michael Liebmann