Quiero grabar la marca de tiempo de los metadatos del video en el video.
Estoy teniendo grandes dificultades para encontrar una buena herramienta que haga eso.
¿Existe alguna herramienta de edición de video que permita insertar una marca de tiempo y cambiar la fuente?
Estoy editando videos HD.
¿También hay alguna herramienta que permita cambiar la marca de tiempo en los metadatos para su corrección?
El filtro de FFmpeg drawtext
puede grabar códigos de tiempo en fotogramas.
editar: leí mal los documentos antes. Vi la timecode
opción al filtro, y se me pasó ver que había una pts
disponible para expansión de texto. Consulte el historial de edición para obtener la respuesta más larga y menos útil.
Eventualmente pude probarlo, y aquí está la línea de comando que improvisé al pegar y ajustar algunos ejemplos:
ffmpeg -i /f/p/moto-g\ camera/VID_20141225_140557099.mp4 -filter_complex "drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='frame %{n}\\: %{pict_type}\\: pts=%{pts \\: hms}': x=100: y=50: fontsize=24: fontcolor=yellow@0.8: box=1: boxcolor=blue@0.9" -c:a copy -c:v libx264 -preset veryfast -crf 16 -x264-params keyint=60 -map 0 foo.mkv
Tenga en cuenta que el texto real que se imprimirá necesita muchos escapes, para protegerlo del shell, luego del arg-to- de ffmpeg drawtext
. Para modificarlo, cambie la text='frame %{n}\\: %{pict_type}\\: pts=%{pts \\: hms}'
parte de ese comando ffmpeg.
salida de ejemplo: "trama 0: I: pts=00:00:00.0000" (I/B/P son tipos de trama, de %{pict_type}
.)
Modificar x
y y
ponerlo en otro lugar del marco. (puede usar x=iw/2
para ponerlo horizontalmente en el medio. iw
= ancho de entrada. (anclaje = esquina superior izquierda del texto, ¿creo?)) Modifique otros parámetros para cambiar colores o lo que sea.
Esto funciona incluso con video VFR. Lo verifiqué con el video de la cámara en un teléfono Moto G, que produce video con velocidad de fotogramas variable. El primer segundo tiene 30 fotogramas. Un intervalo posterior de 1 segundo en el video tiene 17 fotogramas. (Adentro, no muy bien iluminado, así que creo que es menor FPS para obtener más luz, no porque no pueda escribir en el almacenamiento flash lo suficientemente rápido). Las marcas de tiempo que pone en el contenedor MP4 son correctas, por lo que funciona bien.
Los parámetros de codificación -c:a copy -c:v libx264 -preset faster -crf 16 -x264-params keyint=60
son mi sugerencia de lo que podría desear para los archivos borradores con marcas de tiempo grabadas: solo quiere que se codifique rápido y no le importa mucho el tamaño del archivo, ya que solo lo usará localmente, ya que tiene marcas de tiempo garabateado por todas partes. (Incluso hay un superrápido. Sin embargo, no use ultrarrápido, excepto el modo sin pérdidas).
keyint=60
se asegurará de que haya un cuadro I al menos cada 60 cuadros, para un fregado eficiente. Déjalo fuera si no necesitas poder retroceder de manera eficiente; bájalo si quieres que la búsqueda de alta resolución sea más rápida.
Úselo -map 0
si desea copiar múltiples flujos de audio y metadatos en la salida, en lugar de solo las primeras pistas de audio y video (y no, por ejemplo, metadatos de capítulos).
in_name-timestamped.mp4
o algo así. Sin embargo, probablemente sea más fácil hacerlo desde la herramienta de edición que ya usa, si formatea las marcas de tiempo de la manera que desee.%1
como entrada y timestamped-%1
como salida. En GNU/Linux, coloca su comando en un script de shell y lo usa desde la línea de comando usted mismo, o crea un .desktop
archivo que le permite enviarle archivos desde un explorador de archivos gráfico. Supongo que algo similar es posible en OS X.ffmpeg -i in.mts -filter_complex drawtext=fontfile=/Windows/Fonts/arial.ttf: text='frame %{n}\: %{pict_type}\: pts=%{pts \: hms}': x=100: y=50: fontsize=24: fontcolor=yellow@0.8: box=1: boxcolor=blue@0.9 -c:a copy -c:v libx264 -preset veryfast -crf 16 -x264-params keyint=60 -map 0 out3.avi
cmd.exe
. :PAGpts
como una opción para el filtro de texto de dibujo, NO como parte del argumento de cadena para la text
opción. Por lo tanto, el :
argumento del texto no debe haberse citado correctamente. Probablemente hay una diferencia en cómo `\\` dentro de comillas dobles se maneja en Bourne Shell vs. DOS.El software de edición de video por lo general viene con esta capacidad. After Effects, Premiere, Vegas, etc., todos admiten hacer esto de manera muy simple. Algunos de ellos agregan su propio código de tiempo en lugar del código de tiempo del meta, por lo que es posible que deba ajustar el punto de inicio para que coincida con su código de tiempo real, pero el resultado final debería ser el mismo.
Por ejemplo, en Premiere, la siguiente captura de pantalla muestra el efecto en Efectos de video/Video/Código de tiempo, así como las opciones asociadas con él.
Vale la pena mencionar que en Premiere, parece que la fuente está fija en arial, aunque se puede ajustar el tamaño y la posición. After Effects, sin embargo, permitirá la fuente de su elección.
Otra opción es la extensión Sony Vegas Pro + Vegasaur. Con esta extensión, puede extraer información de fecha/hora grabada de archivos de video y grabarla en video. Fuente, color, tamaño, etc. - totalmente personalizable.
Prueba DaVinci Resolve. Capacidad de quemado muy fácil y capaz. Vea mi video tutorial sobre cómo usar esta útil característica.
Gracias. dan benson
pedro cordes
jsj