Acerca de ffmprovisr
+FFmpeg en simple
+FFmpeg es una poderosa herramienta para trabajar con archivos audiovisuales. Desafortunadamente, FFmpeg tiene una gran curva de aprendizaje, especialmente para usuarios que no están tan familiarizados con la interfaz de línea de comandos. Ffmprovisr busca ayudar a los usuarios en el proceso de creación de comandos para que más personas puedan acceder a los beneficios de FFmpeg.
+Cada sección muestra información importante sobre cómo se pueden realizar una amplia variedad de tareas usando FFmpeg. Para hacer un uso efectivo de este sitio web, haz click en la tarea que quieres realizar. Esta te llevará a un comando o a una serie de ellos. Da click en la descripción del comando y se te mostrará un ejemplo del comando junto con una explicación de cómo este comando funciona. Además, estará el desglose de cada uno de sus indicadores (u opciones).
+Esta página no tiene función de búsqueda, pero se puede acceder a todas las recetas a través de la segunda opción en la barra lateral y usar el buscador de tu navegador (usualmente "ctrl+f" o "cmd+f") para realizar búsquedas por palabras claves en todas las recetas disponibles.
+Esta iniciativa de traducción fue inciada en diciembre de 2023 por estudiantes del programa MIAP en NYU: Juliana Principe y Julia Delgadillo. Joss Alvarado y Emily Uruchima realizaron actualizaciones y nuevas traducciones en diciembre de 2025. Todavía quedan muchas recetas por traducir, ¡y te invitamos a colaborar!
+Tutoriales
+¡Aviso!
La mayoría de las páginas web redireccionadas, están en inglés
+Para los pasos básicos, revisa el programa de la web oficial.
+Para instrucciones en cómo instalar FFmpeg en MacOS, Linux, y Windows, dirígete a las instrucciones de instalación creadas por Reto Kromer.
+Para línea de comandos básicos en Bash, prueba el curso exprés de línea de comando. Para más información presentada en el mismo estilo de ffmprovisr, revisa explainshell.com!
+Licencia
+
+ 
+ Este trabajo está protegido por la licencia de Creative Commons Atribución 4.0 Internacional.
+
Proyectos hermanos
+Script Ahoy: recurso comunitario de programación en línea de comando para archivistas y bibliotecarios
+The Sourcecaster: aplicación que ayuda a usar la línea de comandos para resolver problemas comunes que surgen al trabajar con archivos digitales.
+Micropops: librería de las línea de comandos más usadas para la manipulación de archivos digitales.
+Cable Bible: guía de cables y conectores usados en soportes tecnológicos audiovisuales.
+QEMU QED: página web de instrucciones para usar QEMU (Quick EMUlator), la cual es una aplicación que usa línea de comandos para emulación y virtualización de computadoras.
+ffmpeg-artschool: taller de AMIA que proporciona línea de comandos, ejercicios y actividades para crear arte usando FFmpeg.
+Fundamentos de FFmpeg
+ + + +Estructura básica de una línea de comando en FFmpeg
+Sí, puede parecer intimidante, pero en esencia un comando de FFmpeg es relativamente simple. Después de installar FFmpeg (puedes ver las instrucciones en ingles aquí), puedes "llamar" al programa al tipear ffmpeg en tu terminal.
Cada instrucción que le das a FFmpeg trabaja como una dupla. (1) Un indicador que indica el tipo de acción que quieres realizar; (2) los valores que afectarán a cada indicador. Importante: Los indicadores siempre están precedidas por un guion.
+Por ejemplo, en la instrucción -i input_file.ext, el indicador -i le dice a FFmpeg que estás ingresando un archivo, e input_file.ext es el nombre del archivo ingresado.
De manera similar, en la instrucción -c:v prores, el indicador -c:v le dice a FFmpeg que quieres codificar el contenido de video y prores especifíca el códec que quieres que se use en el proceso (-c:v es el abreviado de -codec:v/-codec:video).
Una línea de comando básico de FFmpeg luce así:
+-
+
- ffmpeg
- comando de inicio +
- -i input_file.ext
- ruta y nombre del archivo de ingreso +
- -indicador acción
- le dice a FFmpeg que haga algo a través de un indicador y acción válida. +
- output_file.ext
- ruta, nombre y extensión del archivo de salida.
+ Al ser esta la última parte del comando, el nombre del archivo no tiene un indicador que indique que es el archivo de salida.
+
Reproducir vs. Guardar
+FFplay te permite reproducir videos ya creados, mientras que FFmpeg te permite guardar el video.
+El siguiente comando crea y guarda un video de 10 segundos de barras SMPTE:
+ffmpeg -f lavfi -i smptebars=size=640x480 -t 10 output_file.ext
output_file.extpor el nombre que quieres que tenga tu archivo de salidaEl siguiente comando reproduce y transmite las barras SMPTE, pero no guarda el archivo en tu computadora:
+ffplay -f lavfi smptebars=size=640x480
La pequeña pero importante diferencia: el indicador -i es necesario para FFmpeg, pero no para FFplay. Además, el comando de FFmpeg necesita tener -t 10 y output_file.ext para especificar la duración del video y la ruta donde será guardado.
Aprende conceptos más avanzados de FFmpeg
+ + + +Uso de línea de comando en grupo y en bucle
+ffmpeg -nostdin -i input_file ...
Uno de los usos más frecuentes de FFmpeg es ejecutar grupos de comandos en bucle para, por ejemplo, generar, en un solo paso, archivos de acceso para una colección entera.
+Al ejecutar un comando de FFmpeg en bucle, es necesario usar el indicador -nostdin previo a ingresar la acción para asegurar la ejecución correcta de los comandos. Esto es necesario para obviar el comportamiento normal de FFmpeg de permitir la interacción estándar de las acciones, lo cual puede resultar en errores, ya que las acciones en bucle se alimentan del comando que se está ejecutando.
Códec por default
+A menos que sea especificado, FFmpeg ejecutará un códec y parámetros determinados de manera automática basado en propiedades internas establecidas por default. Estas propiedades son aplicadas en base al tipo de archivo escrito en el output file. Por ejemplo, .mov o .wav).
Cuando se crean o transcodifican archivos en FFmpeg, es importante considerar la configuración del códec para audio y video, ya que las opciones por default pueden no ser las adecuadas para tu contexto o propósitos específicos. Lo siguiente es una lista de los códec por default para algunos tipos de archivos más comunes.
+-
+
.avi: Códec de audio: mp3, Códec de video: mpeg4
+ .mkv: Códec de audio: ac3, Códec de video: H.264
+ .mov: Códec de audio: AAC, Códec de video: H.264
+ .mp4: Códec de audio: AAC, Códec de video: H.264
+ .mpg: Códec de audio: mp2, Códec de video: mpeg1video
+ .mxf: Códec de audio: pcm_s16le, Códec de video: mpeg2video
+ .wav: Códec de audio: pcm_s16le (16 bit PCM)
+
Filtergraphs
+Muchos comandos de FFmpeg usan filtros que manipulan los canales de audio y video de alguna manera. Por ejemplo, hflip sirve para girar horizontalmente un video. amerge, combina dos o más canales de audio en un solo stream.
+El uso de un filtro siempre irá señalado por el indicador -vf (filtro de video por sus siglas en inglés), o -af (filtro de audio por sus siglas en inglés), seguido del nombre y la opción del filtro a usarse. Para el ejemplo, usemos el filtro convert colorspace y el commando se vería de la siguiente manera.
ffmpeg -i input_file -c:v libx264 -vf colormatrix=src:dst output_file
+
En el comando previo, colormatrix es el filtro usado.src y dst representan la fuente y el destino del espacio de color a aplicarse. Entonces, la parte después de -vf es conocido como un filtergraph.
Aviso!
src y dst tienen valores específicos que son los que reemplazarán src y dst. +
También es posible aplicar múltiples filtros manera secuencial en un filtergraph. A esta secuencia de filtros se le llama cadena de filtros. Asimismo, un filtergraph puede incluir múltiples cadenas de filtros. Los filtros en una cadena de filtros se separan mediante una coma (,) y las cadenas de filtros se separan mediante punto y coma (;). Por ejemplo, analicemos el comando de inverse telecine.
ffmpeg -i input_file -c:v libx264 -vf "fieldmatch,yadif,decimate" output_file
Aquí tenemos un filtergraph que incluye una cadena de filtros, la cual está compuesta de tres filtros de video.
+Siempre es mejor ingresas tu filtergraph entre comillas, porque esto te permitirá usar espacios en tu filtergraph. Entonces, usando de nuevo el mismo ejemplo de inverse telecine, los siguientes comandos de filtros son válidos y equivalentes.
+-
+
-vf fieldmatch,yadif,decimate
+ -vf "fieldmatch,yadif,decimate"
+ -vf "fieldmatch, yadif, decimate"
+
pero -vf fieldmatch, yadif, decimate no es válido.
Ahora, el orden de los filtros sí es importante. Los filtros de video son aplicados al input file en el mismo orden en el que son escritos en el comando. Al input file se le aplica el primer filtro; luego con el resultado de ese filtro, se aplica el segundo de la cadena y así sucesivamente. En el ejemplo de arriba, fieldmatch reconstruye los fotogramas originales del telecineado inverso. yadif hace algo llamado deinterlace, que es (this is a failsafe in case any combed frames remain. Por ejemplo, si la fuente mezcla telecineado y contenido interlaceado lineal), y, por último, decimate elimina fotogramas duplicados. Es claro que no es posible eliminar fotogramas duplicados si estos primero no han sido reconstruidos.
Notas
+-
+
-vfes el abreviado de-filter:v
+ - Si el comando tiene más de un input y output file, entonces debes usar el flag
-filter_complexen lugar de-vf.
+ - Se debe usar comillas rectas ("como estas"), en vez de las curvas (“estas no”). +
Para más información, visita la página FFmpeg wiki Guia de filtros.
+ +Asignación de flujos
+La asignación de flujos consiste en definir cuál de aquellos (ej., pistas de video o audio) que están presentes en el input file también estarán presentes en el output file. FFmpeg reconoce cinco tipos de flujos.
+-
+
a- audio
+ v- video
+ s- subtítulo
+ d- data (inluye pistas de código de tiempo)
+ t- archivo adjunto
+
La asignación se ejecuta usando el indicador -map seguido de una acción del tipo, número_archivo:tipo_de_flujo[:número_de_flujo]. La numeración está indexada al cero y es posible asignar por tipos de flujos o por todo el flujo de datos que aparece en el input file. Se propone un ejemplo de esto debajo.
-
+
-map 0:vsignifica 'toma todas los flujos de video del primer input file’.
+ -map 0:3significa 'toma el cuarto flujo de datos del primer input file’.
+ -map 0:a:2significa 'toma el tercer flujo de audio del primer input file’.
+ -map 0:0 -map 0:2significa 'toma el primer y el tercer flujo de datos del primer input file’.
+ -map 0:1 -map 1:0significa 'toma el segundo flujo del primer del primer input file y el primer flujo del segundo input file’.
+
Cuando no se especifica la asignación en el comando de FFmpeg, la acción predeterminada para archivos de video es tomar solo una pista de audio y video cada uno para el ouput file. Otro tipos de pistas como códigos de tiempo o subtítulos, no se copiarán en el output file por defecto. Si en el input file hay múltiples pistas de video o audio, FFmpeg seleccionará aquellos de mejor calidad de manera automática.
+Para la asignación de todos los flujos de información del input file al output file, puedes usar -map 0. ¡Importante! Recuerda que no todos los contenedores pueden incluir todos los tipos de flujo de información. Por ejemplo, un archivo .mp4 no pueden contener códigos de tiempo.
Asignación de manera segura
+Para procesar de manera segura archivos que puedan o no contener un determinado tipo de flujo de información, puedes añadir un ? seguido de tu comando de asignación. Por ejemplo, -map 0:a? en lugar de -map 0:a.
Esto convierte el proceso de asignación a opcional. Es decir, las pistas de audio se asignarán de estar presentes en el archivo, pero si el archivo no los contiene, la transcodificación procederá como de costumbre, excepto por la asignación de flujos de audio en el output file. Si no se le añade ?, FFmpeg emitirá un mensaje de error sobre ese archivo.
Esto es especialmente recomendado cuando se procesa archivos de video en grupo, porque te aseguras que todos los archivos en tu grupo serán transcodificados ya sea si tienen o no pistas de audio.
+Para mayor información, puedes revisar la página de FFmpeg wiki Map y la documentación sobre -map en la página oficial de FFmpeg.
Cambio de contenedor (rewrap)
+ + + + +Rewrap de un archivo
+ffmpeg -i input_file.ext -c copy -map 0 output_file.ext
Este combiará de contenedor del archivo ingresado. Creará un nuevo archivo en el que el contenido original interno del archivo de video (pistas de video, audio o subtítulos) no cambiará, pero sí tendrán un formato nuevo de contenedor.
+Nota: rewrapping (cambio de contenedor) también es conocido como remuxing (abreviado de remultiplexado).
+-
+
- ffmpeg
- comando de inicio +
- -i input_file.ext
- ruta y nombre del input file +
- -c copy
- copiar los flujos de información de manera directa sin volver a codificarlos. +
- -map 0
- Asignar todos los flujos de información del input file al output file.
+ Si no usas esta indicación, FFmpeg, por defecto, solo asignará una pista por cada tipo de flujo (video, audio, subtítulos) al output file. No obstante, los archivos pueden tener múltiples pistas de un tipo de flujo. Por ejemplo, un video puede tener varias pistas de audio para diferentes idiomas. Entonces, si lo que deseas es conservar todas las pistas, es necesario que uses esta indicación.
+ - output_file.ext
- ruta y nombre del output file.
+ El nuevo contenedor al que se mudará el contenido podrá usar las siguientes extensiones de archivo, .mkv, .mp4, .mov.
+
Aviso importante
+Puede suceder que no se pueda hacer el rewrap del contenido de un archivo a un nuevo contenedor sin antes re codificar uno o más de los flujos de información: pistas de video, audio y subtítulos). Algunos contenedores solo pueden albergar ciertos tipos de codificación. Por ejemplo, el contenedor .mp4 va de la mano con pistas de video codificadas en H.264 y pistas de audio codificadas en AAC, aunque otros tipos de pistas de audio y video son posibles. Otro ejemplo, el contenedor Matroska no permite albergar pistas de datos.
+En estos casos, FFmpeg emitirá un mensaje de error. Si te suceden estos tipos de errores, te invitamos a consultar la lista de recetas de transcodificación.
+ +Rewrap de DV video a .dv file
+ffmpeg -i input_file -f rawvideo -c:v copy output_file.dv
Este comando va a transferir la información de un video codificado en DV Códec pero albergado en un contenedor diferente, como .mov por ejemplo, y luego lo cambiará a contenedor DV file con extensión .dv. Dado que los archivos DV pueden contener una gran cantidad de metadatos procedentes del flujo DV, es necesario cambiar los archivos de contenedor a través de este método para evitar la eliminación involuntaria de dichos metadatos.
+-
+
- ffmpeg
- comando de inicio +
- -i input_file
- ruta y nombre del input file +
- -f rawvideo
- esta indicación le dice a FFmpeg que pase los flujos de video a datos de video en bruto sin remezcla. Este paso garantiza que la metadata incrustada sobreviva en comparación con un proceso de cambio de contenedor estándar. +
- -c:v copy
- indica copiar la pista de video de DV directamente sin volver a codificar. +
- output_file.dv
- le indica a FFmpeg que use el contenedor de DV para el output file. +
Cambio de códec (transcodificación)
+ + + + + + + + +Transcodificación a H.264
+ffmpeg -i input_file -c:v libx264 -pix_fmt yuv420p -c:a aac output_file
Este comando transcodifica el input file a H.264 en video y a AAC en audio en contenedor .mp4. El códec libx264 tiene una configuración preestablecida de compresión de calidad media y un CRF (factor de velocidad constante por sus siglas en inglés) de 23. El CRF determina la calidad y el tamaño del archivo del video H.264 resultante. Un CRF bajo se traduce en un archivo pesado y de alta calidad. Un CRF alto significa lo contrario.
+-
+
- ffmpeg
- comando de inicio +
- -i input_file
- ruta, nombre y extensión del input file +
- -c:v libx264
- indica a FFmpeg que codifique la pista de video como H.264 +
- -pix_fmt yuv420p
- indica que libx264 usará un esquema de submuestreo de chroma que es lo más cercano al archivo de origen. Esto puede resultar en el submuestro de chroma de Y′CBCR 4:2:0, 4:2:2, o 4:4:4. QuickTime y la mayoría de los reproductores que no usan FFmpeg no pueden decodificar (reproducir) archivos en H.264 que no son 4:2:0. Para estar tener seguridad de que el archivo se podrá reproducir en todos los reproductors, debes especificar el submuestreo de chroma en 4:2:0. +
- -c:a aac
- indica codifica la pista de audio como AAC.
+ AAC es el códec más usado para pistas de audio en contenedores .mp4.
+ - output_file
- ruta, nombre y extensión del output file +
Para optimizar el archivo para transmisión, puedes agregar la siguiente preconfiguración.
+ffmpeg -i input_file -c:v libx264 -pix_fmt yuv420p -c:a aac -movflags +faststart output_file
-
+
- -movflags +faststart
- esta indicación le pide a FFmpeg que mueva parte de los metadatos esenciales al inicio del archivo, lo cual permite iniciar el visionado antes de que el archivo termine de descargar. Esto es una característica ideal para transmisión. +
Se puede usar el mismo comando básico para generar un archivo de mayor calidad mediante alguna de las preconfiguraciones.
+ffmpeg -i input_file -c:v libx264 -pix_fmt yuv420p -preset veryslow -crf 18 -c:a aac output_file
-
+
- -preset veryslow
- Esta indicación le pide a FFmpeg que use la preconfiguración más lenta posible para lograr una compresión de alta calidad.
+ Las preconfiguraciones disponibles desde la más lento hasta la más rápida son,veryslow,slower,slow,medium,fast,faster,veryfast,superfast,ultrafast.
+ - -crf 18
- Si especificar un CRF bajo vas a obtener un archivo pesado con una mejor calidad visual. Para archivos H.264 codificados con submuestreo de chroma en 4:2:0 (por ejemplo, usando
-pix_fmt yuv420p), la escala se sitúa entre 0-51 para contenido de 8-bit, siendo 0 compresión sin pérdida y 51 la peor calidad posible.
+ Si el CRF no está especificado,libx264usará el valor predeterminado de 23. 18 es considerado como compresión "visualmente sin pérdida".
+
Por defecto, esta receta de comando incluirá una sola pista de cada tipo de flujos, por ejemplo, de audio y video, en el output file. Si deseas incluir más pistas, consulta la entrada de Asignación de flujos.
+Para más información, puedes revisar la guía de codificación de FFmpeg y H.264 en FFmpeg wiki.
+ +H.264 de DCP
+ffmpeg -i input_file_video.mxf -i input_file_audio.mxf -c:v libx264 -pix_fmt yuv420p -c:a aac output_file.mp4
Este comando va a transcodificar los archivos de audio y video albergados en MXF a un archivo codificado en H.264. ¡Aviso importante! Esta receta solo funciona en DCP no encriptados y que contengan un solo archivo de video y audio cada uno.
+-
+
- ffmpeg
- comando de inicio +
- -i input_file_video
- ruta y nombre del archivo de ingreso de video. La extensión debe ser
.mxf
+ - -i input_file_audio
- ruta y nombre del archivo de ingreso de audio. La extensión debe ser
.mxf
+ - -c:v libx264
- indica que transcodifique el video a H.264 +
- -pix_fmt yuv420p
- indica que el esquema de submuestreo de chroma será yuv420p para mejor compatibilidad con los reproductores +
- -c:a aac
- indica la transcodificación usando códec AAC para audio
+ Ten en cuenta que, desafortunadamente, el contenedor MP4 no puede albergar códec de audio PCM (Pulse-Code Modulation)
+ - output_file.mp4
- ruta, nombre y extensión .mp4 para el archivo de salida +
Variación: Se pueden copiar los flujos de audio originales en PCM si usas el contenedor Matroska en vez del MP4.
+ffmpeg -i input_video_file.mxf -i input_audio_file.mxf -c:v libx264 -pix_fmt yuv420p -c:a copy output_file.mkv
-
+
- -c:a copy
- vuelve a codificar utilizando el mismo códec de audio +
- output_file.mkv
- ruta, nombre y extensión .mkv para el archivo de salida +
Crea un video en códec FFV1 versión 3 en el contenedor Matroska con entrada framemd5
+ffmpeg -i input_file -map 0 -dn -c:v ffv1 -level 3 -g 1 -slicecrc 1 -slices 16 -c:a copy output_file.mkv -f framemd5 -an framemd5_output_file
Este comando va a transcodificar sin pérdida el video al códec FFV1 versión 3 en contenedor Matroska. Para verificar que el archivo sea de compresión sin pérdida, se genera un framemd5 del video de origen. Para más información de la codificación de FFV1 revisa la página de FFmpeg wiki.
+-
+
- ffmpeg
- inicia el commando. +
- -i input_file
- ruta y nombre del archivo ingresado +
- -map 0
- Asigna todos los flujos presentes en el archivo de ingreo. Esto es importante, porque FFmpeg solo asignaría un flujo de cada tipo de manera predeterminada al archivo de salida. +
- -dn
- ignorar pistas de datos. El contenedor Matroska no puede albergar pistas de datos. +
- -c:v ffv1
- especifíca el códec de video en FFV1. +
- -level 3
- especifíca la versión 3 del códec FFV1. +
- -g 1
- especifíca la codificación entre fotogramas o GOP=1. +
- -slicecrc 1
- Añade información CRC (verificación de redundancia cíclica por sus siglas en inglés) para cada sección. Esto posibilita que el decodificador pueda detectar errores en el flujo de bits, en vez de decodificar secciones con errores. (Puedes leer más aquí). +
- -slices 16
- Cada fotograma es divido en 16 secciones. 16 es una buena solución intermedia entre el peso de archivo y el tiempo de codificación. +
- -c:a copy
- vuelve a codificar utilizando el mismo códec de audio +
- output_file.mkv
- ruta, nombre y extensión del archivo de salida. Usa la extensión
.mkvpara guardar tu archivo en contenedor Matroska.
+ - -f framemd5
- Decodifica el video con el mezclador framemd5 para generar checksums MD5 para cada fotograma del archivo ingresado. Esto permite verificar la compresión sin pérdida mediante comparación con los framemd5s del archivo de salida. +
- -an
- ignora la pista de audio al crear framemd5 (audio no) +
- framemd5_output_file
- ruta, nombre y extensión del archivo de framemd5. +
Conversión de DVD a H.264
+ffmpeg -i concat:input_file_1\|input_file_2\|input_file_3 -c:v libx264 -c:a aac output_file.mp4
Este comando permite crear un archivo H.264 de un DVD que no está protegido.
+Antes de codificar, necesitas establecer cuáled de los archivos .VOB en el DVD o .iso albergan el contenido que deseas codificar. Dentro del directorio VIDEO_TS, verás una serie de archivos con nombres como VTS_01_0.VOB, VTS_01_1.VOB, etc. Alguno de los archivos .VOB tendrán menus, funciones especiales, etc, así que ubica aquellos que tienen el contenido que te interesa. Lo puedes reproducir usando VLC.
+-
+
- ffmpeg
- inicia el commando +
- -i concat:input_file
- lista todos los archivos VOB e indica a FFmpeg que los concatene. Cada archivo ingresado debe estar separado por una barra invertida (\) y una barra vertical (|).
+-i concat:VTS_01_1.VOB\|VTS_01_2.VOB\|VTS_01_3.VOB
+ La barra invertida es un caracter de escape para la barra vertical(|).
+ - -c:v libx264
- codifica el video en códec H.264 +
- -c:a aac
- codifica el audio en códec AAC.
+ AAC es el códec más usado para pistas de audio en contenedores .mp4.
+ - output_file.mp4
- ruta, nombre y extensión del archivo de salida +
También es posible ajustar la calidad de archivo de salida al añadir los indicadores -crf y -preset junto con sus valores.
+ffmpeg -i concat:input_file_1\|input_file_2\|input_file_3 -c:v libx264 -crf 18 -preset veryslow -c:a aac output_file.mp4
-
+
- -crf 18
- establece el factor de velocidad constante como visualmente sin compresión. Libx264 tiene por defecto asignado crf de 23, el cual es considerado de calidad media. Un CRF menor indica un archivo de video pesado y de alta calidad. +
- -preset veryslow
- Una preconfiguración más lenta resultará en un mejor proceso de compresión y, por lo tanto, un archivo de mejor calidad. El valor predeeterminado es medium; valores más lentos son slow, slower y veryslow. +
Ten en cuenta que por defecto, libx264 solo codificará una pista de video y otra de audio eligiendo la 'mejor' dentro de las opciones disponibles. Para mantener todos las pistas de video y audio, añade el indicador -map.
+ffmpeg -i concat:input_file_1\|input_file_2 -map 0:v -map 0:a -c:v libx264 -c:a aac output_file.mp4
-
+
- -map 0:v
- codifica todas las pistas de video +
- -map 0:a
- codifica todas las pistas de audio +
Cambio de propiedades de vídeo
+ + + + +Transformar relación de aspecto 4:3 a 16:9 con pillarbox
+Transforma un archivo de vídeo con el relación de aspecto 4:3 a un archivo de vídeo con el relación de aspecto 16:9 por medio del correcto formato de pillarboxing.
+ffmpeg -i input_file -filter:v "pad=ih*16/9:ih:(ow-iw)/2:(oh-ih)/2" -c:a copy output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter:v "pad=ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
- relleno de video
Esta fórmula independiente de la resolución en realidad está rellenando cualquier relación de aspecto en 16:9 por medio del formato pillarboxing, porque el filtro de vídeo utiliza valores relativos para el ancho de ingreso (iw), el alto de ingreso (ih), el ancho de salida (ow) y el alto de salida (oh).
+ - -c:a copy
- vuelve a codificar utilizando el mismo códec de audio
+ Para videos sin sonido, puede reemplazar-c:a copycon-an.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Transformar relación de aspecto 16:9 a 4:3 por medio del formato letterbox.
+Transforme un archivo de vídeo con una relación de aspecto de 16:9 en un archivo de vídeo con una relación de aspecto de 4:3 por medio del formato letterbox correcto.
+ffmpeg -i input_file -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2" -c:a copy output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2"
- relleno de video
+ Esta fórmula independiente de la resolución en realidad está rellenando cualquier relación de aspecto en 4:3 por medio del formato letterboxing, porque el filtro de vídeo utiliza valores relativos para el ancho de ingreso (iw), el alto de ingreso (ih), el ancho de salida (ow) y el alto de salida (oh). (oh).
+ - -c:a copy
- vuelve a codificar utilizando el mismo códec de audio
+ Para videos sin sonido, puede reemplazar-c:a copycon-an.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Voltea la imagen del video horizontal y/o verticalmente
+ffmpeg -i input_file -filter:v "hflip,vflip" -c:a copy output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter:v "hflip,vflip"
- voltea la imagen horizontal y verticalmente
Al usar solo uno de los parámetros hflip o vflip para filtrar, la imagen se voltea solo en ese axis Las comillas no son obligatorias.
+ - -c:a copy
- vuelve a codificar utilizando el mismo códec de audio
+ Para videos sin sonido, puede reemplazar-c:a copycon-an.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Transforma SD en HD por medio del formato pillarbox
+Transforma un video SD (definición estándar) con relación de aspecto 4:3 a un video HD (definición alta) con relación de aspecto 16:9 por medio del formato correcto de pillarboxing.
+ffmpeg -i input_file -filter:v "colormatrix=bt601:bt709, scale=1440:1080:flags=lanczos, pad=1920:1080:240:0" -c:a copy output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter:v "colormatrix=bt601:bt709, scale=1440:1080:flags=lanczos, pad=1920:1080:240:0"
- establecer matriz de color, escala de video y relleno
Se applican tres filtros: +-
+
- Los coeficientes luma se modifican de vídeo SD (según Rec. 601) a vídeo HD (según Rec. 709) mediante una matriz de color. Tenga en cuenta que hoy Rec. 709 se utiliza a menudo también para SD y por lo tanto puede cancelar este parámetro. +
- El filtro de escala(
scale=1440:1080) funciona tanto para aumentar como para reducir la escala. Usamos el algoritmo de escalado de Lanczos (flags=lanczos), que funciona más lento pero da mejores resultados que el algoritmo bilineal predeterminado..
+ - El filtro de relleno (
pad=1920:1080:240:0) completa la transformación de SD asi a HD.
+
+ - -c:a copy
- vuelve a codificar utilizando el mismo códec de audio
+ Para videos sin sonido, puede reemplazar-c:a copywith-an.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Si su archivo de inicio está entrelazado, querrá desentrelazarla antes de escalarlo. En ese caso, su comando se vería así:
+ffmpeg -i input_file -c:v libx264 -filter:v "yadif, colormatrix=bt601:bt709, scale=1440:1080:flags=lanczos, pad=1920:1080:240:0" -c:a copy output_file
See the Interlaced NTSC to MP4 recipe for a fuller explanation of the deinterlacing step.
+ +Cambiar la relación de aspecto para visionado sin volver a codificar el video
+ffmpeg -i input_file -c:v copy -aspect 4:3 output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -c:v copy
- Copie todas las transmisiones de video asignadas. +
- -aspect 4:3
- Cambia la relación de aspecto para visionado a
4:3. Experimente con otras relaciones de aspecto como16:9. Usado junto a-c:v copy, afectará la relación de aspecto guardada a nivel de contenedor, pero no la relación de aspecto guardada en cuadros codificados, si existen.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Recortar video
+ffmpeg -i input_file -vf "crop=ancho:alto" output_file
Este comando recorta el vídeo de ingreso a las dimensiones definidas.
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -vf "width:height"
- Recorta el vídeo al ancho y alto significados (en píxeles).
+ De forma predeterminada, el área de recorte está centrada: es decir, la posición de la parte superior izquierda del área recortada está establecida en x = (ancho_ingreso - ancho_salida) / 2, y = alto_ingreso - alto_salida) / 2. +
+ - output_file
- ruta, nombre y extensión del archivo de salida +
También es posible especificar la posición de recorte agregando las coordenadas x e y que representan la parte superior izquierda de su área recortada a su filtro de recorte, asi:
+ffmpeg -i input_file -vf "crop=ancho:alto[:x_position:y_position]" output_file
Ejemplos
+El marco original, una captura de pantalla de Maggie Cheung en la pelicula Hero:
+
+ Resultado del comando ffmpeg -i maggie.mov -vf "crop=500:500" output_file:
+ Resultado del comando ffmpeg -i maggie.mov -vf "crop=500:500:0:0" output_file, añadiendo :0:0 para recortar desde la esquina superior izquierda:
+ Resultado del comando ffmpeg -i maggie.mov -vf "crop=500:300:500:30" output_file:
+
+ Cambia el color del vídeo a blanco y negro
+ffmpeg -i input_file -filter_complex hue=s=0 -c:a copy output_file
Un comando básico para alterar el tono del color a blanco y negro usando filter_complex (credito @FFMPEG via Twitter).
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter_complex hue=s=0
- usa el comando filter_complex para establecer el tono en blanco y negro +
- -c:a copy
- copia la configuración de codificación del input_file al output_file +
- output_file
- ruta, nombre y extensión del archivo de salida +
Una alternativa que conserva la información de entrelazado para un archivo ProRes 422 HQ generado, por ejemplo, a partir de una cinta maestra (credito Dave Rice):
+ffmpeg -i input_file -c:v prores_ks -flags +ildct -map 0 -c:a copy -profile:v 3 -vf hue=s=0 output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -c:v prores_ks
- codifica el vídeo a ProRes (prores_ks marca la secuencia como entrelazada, a diferencia de prores) +
- -flags +ildct
- garantiza que el output_file tenga codificación entrelazada, utilizando la transformada de coseno discreta con reconocimiento de entrelazado +
- -map 0
- garantiza que ffmpeg asigne todos los flujos de document_ingreso a document_output +
- -c:a copy
- copia la configuración de codificación del input_file al output_file/dd> +
- output_file
- ruta, nombre y extensión del archivo de salida +
Cambio o visualización de las propiedades de audio
+ + + + +Extraer audio de un archivo AV
+ffmpeg -i input_file -c:a copy -vn output_file
Este comando extrae la pista de audio sin pérdida de un archivo audiovisual.
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre, extensión del archivo de entrada +
- -c:a copy
- re-codifica usando el mismo códec de audio +
- -vn
- sin pista de vídeo +
- output_file
- ruta nombre, y extensión del archivo de salida +
Combinar las pistas de audio en una sola, en un archivo de video
+ffmpeg -i input_file -filter_complex "[0:a:0][0:a:1]amerge[out]" -map 0:v -map "[out]" -c:v copy -shortest output_file
Este comando combina dos pistas de audio presentes en un archivo de video en un solo flujo. Esto puede ser útil en situaciones en las que un proceso posterior, como la generación automática de subtítulos de YouTube, requiere una sola pista de audio. Para asegurarse de que está asignando las pistas de audio correctas, ejecute ffprobe antes de escribir los comandos para identificar las pistas deseadas. Se pueden combinar más de dos flujos de audio extendiendo el patrón presente en la opción -filter_complex.
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entradada +
- -filter_complex
- indica a ffmpeg que se utilizará un filtro complejo +
- "
- comillas para iniciar el gráfico de filtros +
- [0:a:0][0:a:1]amerge[out]
- combina las dos pistas de audio en una sola +
- "
- comillas para finalizar el gráfico de filtros +
- -map 0:v
- mapea el video +
- -map "[out]"
- mapea el audio combinado definido por el filtro +
- -c:v copy
- copia el video +
- -shortest
- limita al flujo más corto +
- output_file
- ruta, nombre y extensión del archivo de video de salida +
Invierte el desplazamiento de fase de audio
+ffmpeg -i input_file -af pan="stereo|c0=c0|c1=-1*c1" output_file
Este comando invierte la fase de audio del segundo canal girándolo 180°.
+-
+
- ffmpeg
- inicia el commando +
- -i input file
- ruta, nombre y extensión del archivo de entrada +
- -af
- especifica que la siguiente sección debe interpretarse como un filtro de audio +
- pan=
- indica al texto que aparece en comillas a continuación que debe utilizar el filtro pan +
- "stereo|c0=c0|c1=-1*c1"
- asigna el primer canal de salida (cO) al primer canal de entrada y el segundo canal de salida (c1) al inverso del segundo canal de entrada +
- output file
- ruta, nombre y extensión del archivo de salida +
Calcula los niveles de sonoridad
+ffmpeg -i input_file -af loudnorm=print_format=json -f null -
Este filtro calcula y genera información de sonoridad sobre un archivo de entrada (etiquetado como input) en formato JSON, así como los niveles que se obtendrían si se aplicara el filtro loudnorm en su modo de una sola pasada (etiquetado como output). Los valores generados se pueden utilizar como entradas para una 'segunda pasada' del filtro loudnorm, lo que permite una normalización de sonoridad más precisa que si se utilizaría en una sola pasada.
+Estas instrucciones utilizan la configuración predeterminada de loudnorm, que se ajusta bien a las recomendaciones de PBS en cuanto al nivel de sonoridad objetivo. Puede encontrar más información en la documentación de loudnorm.
+Información sobre los estándares de sonoridad de PBS se puede encontrar en el documento de Especificaciones Técnicas de Operación de PBS. Información sobre los estándares de sonoridad de la EBU se puede encontrar en el documento de recomendación EBU R 128.
+-
+
- ffmpeg
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -af loudnorm
- activa el filtro loudnorm +
- print_format=json
- establece el formato de resultados sobre información de sonoridad a JSON. Este formato facilita su uso en una segunda pasada. Para un resultado más legible, se puede configurar con
print_format=summary
+ - -f null -
- establece la salida del archivo a nulo (ya que solo nos interesan los metadatos generados) +
Ecualización RIAA
+ffmpeg -i input_file -af aemphasis=type=riaa output_file
Esto aplicará la ecualización RIAA a un archivo de entrada, permitiendo la reproducción correcta de audio “plano” (sin ecualización) transferido desde discos que utilizaban esta curva de ecualización. Para obtener más información sobre la ecualización RIAA, consulte la pagina de Wikipedia sobre el tema.
+-
+
- ffmpeg
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -af aemphasis=type=riaa
- activa el filtro de énfasis y lo configura para utilizar la ecualización RIAA +
- output_file
- ruta, nombre y extensión del archivo de salida +
Invierte un CD a modo Pre-énfasis
+ffmpeg -i input_file -af aemphasis=type=cd output_file
Esto aplicará el de-enfasis para revertir los efectos del pre-énfasis del CD en el caso algo raro de CD que se crearon con esta tecnología. Utilice este comando para crear copias de escucha más precisas de archivos que fueron copiados "planos" (sin ningún énfasis) donde la fuente original utilizó énfasis. Para obtener más información sobre el preénfasis de CD, consulte la la pagina de Hydrogen Audio sobre este tema.
+-
+
- ffmpeg
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -af aemphasis=type=cd
- activa el filtro aemphasis y lo configura para utilizar la ecualización CD +
- output_file
- ruta, nombre y extensión del archivo de salida +
Normalización de Sonoridad en Una Pasada
+ffmpeg -i input_file -af loudnorm=dual_mono=true -ar 48k output_file
Esto normalizará la sonoridad de la entrada en una sola pasada, lo que es más rápido pero menos preciso que usar dos pasadas. Este comando utiliza la configuración predeterminada del filtro loudnorm para el nivel de sonoridad objetivo. Estos valores predeterminados se ajustan bien a las recomendaciones de PBS, pero loudnorm también permite especificar niveles de sonoridad. Para obtener más información, consulte documentación de loudnorm.
+Información sobre los estándares de sonoridad de PBS se puede encontrar en el documento de Especificaciones Técnicas de Operación de PBS. información sobre los estándares de sonoridad de la EBU se puede encontrar en el documento de recomendaciónes EBU R 128.
+-
+
- ffmpeg
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -af loudnorm
- activa el filtro loudnorm con configuraciones predeterminadas +
- dual_mono=true
- (opcional) Utilice esta opción para archivos monofónicos que se reproducirán en sistemas estéreo, a fin de obtener el nivel de volumen correcto. No es necesario para entradas multipista. +
- -ar 48k
- Establece la frecuencia de muestreo de salida a 48 kHz. (El filtro loudnorm realiza un sobremuestreo a 192 kHz, por lo que es recomendable configurar manualmente la frecuencia de muestreo de salida deseada). +
- output_file
- ruta, nombre y extensión del archivo de salida +
Normalización de Sonoridad en Dos Pasadas
+ffmpeg -i input_file -af loudnorm=dual_mono=true:measured_I=input_i:measured_TP=input_tp:measured_LRA=input_lra:measured_thresh=input_thresh:offset=target_offset:linear=true -ar 48k output_file
Este comando permite utilizar los niveles calculados en una primera pasada del filtro loudnorm para normalizar la sonoridad con mayor precisión. Este comando utiliza los valores predeterminados del filtro loudnorm para el nivel de sonoridad objetivo. Estos valores predeterminados se ajustan bien a las recomendaciones de PBS, pero loudnorm también permite especificar niveles de sonoridad. Para obtener más información, consulte la documentación de loudnorm.
+Información sobre los estándares de sonoridad de PBS se puede encontrar en el documento de Especificaciones Técnicas de Operación de PBS. información sobre los estándares de sonoridad de la EBU se puede encontrar en el documento de recomendaciónes EBU R 128.
+-
+
- ffmpeg
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -af loudnorm
- activa el filtro loudnorm con configuraciones predeterminadas +
- dual_mono=true
- (opcional) utilice esta opción para archivos monofónicos que se reproducirán en sistemas estéreo, a fin de obtener el nivel de volumen correcto. No es necesario para entradas multipista. +
- measured_I=input_i
- utilice el valor 'input_i' (sonoridad integrada) de la primera pasada en lugar de input_i +
- measured_TP=input_tp
- utilice el valor 'input_tp' (pico real) de la primera pasada en lugar de input_tp +
- measured_LRA=input_lra
- utilice el valor 'input_lra' (rango de sonoridad) de la primera pasada en lugar de input_lra +
- measured_LRA=input_thresh
- utilice el valor 'input_thresh' (umbral) de la primera pasada en lugar de input_thresh +
- offset=target_offset
- utilice el valor 'target_offset' (desplazamiento) de la primera pasada en lugar de target_offset +
- linear=true
- indica a loudnorm que utilice la normalización lineal +
- -ar 48k
- Establece la frecuencia de muestreo de salida a 48 kHz. (El filtro loudnorm realiza un sobremuestreo a 192 kHz, por lo que es recomendable configurar manualmente la frecuencia de muestreo de salida deseada). +
- output_file
- ruta, nombre y extensión del archivo de salida +
Corregir Sincronización AV: Remuestreo de audio
+ffmpeg -i input_file -c:v copy -c:a pcm_s16le -af "aresample=async=1000" output_file
-
+
- ffmpeg
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -c:v copy
- copia todos los flujos de vídeo asignados +
- -c:a pcm_s16le
- indica a FFmpeg que codifique el flujo de audio en formato PCM lineal de 16 bits (little endian) +
- -af "aresample=async=1000"
- utiliza el filtro aresample estirar/comprimir las muestras según las marcas de tiempo indicadas, con una compensación máxima de 1000 muestras por segundo. +
- output_file
- ruta, nombre y extensión del archivo de salida. Prueba diferentes extensiones de archivo como mkv, mov, mp4, or avi. +
Unir, recortar o crear un fragmento
+ + + + +Unir archivos
+ffmpeg -f concat -i mylist.txt -c copy output_file
Este comando toma dos o más archivos del mismo tipo y los une para crear un solo archivo. El programa solo necesita un archivo de texto con una lista que especifique los archivos que se deben unir. Si es posible, ejecute el comando desde el mismo directorio donde se encuentran los archivos y el archivo de texto. De lo contrario, deberá usar -safe 0; consulte la información a continuación para obtener más detalles. Sin embargo, solo funciona correctamente si los archivos que se van a combinar tienen exactamente el mismo códec y especificaciones técnicas. Tenga cuidado, FFmpeg puede parecer que ha unido correctamente dos archivos de video con diferentes códecs, pero es posible que solo copie el audio del segundo archivo o que presente otros comportamientos extraños. No utilice este comando para unir archivos con diferentes códecs y especificaciones técnicas, y siempre previsualice el archivo de video resultante.
+-
+
- ffmpeg
- inicia el commando +
- -f concat
- obliga a ffmpeg a concatenar los archivos y a mantener el mismo formato de archivo +
- -i mylist.txt
- ruta, nombre y extensión del archivo de entrada. Segun la documentación de FFmpeg, es preferible especificar rutas de archivo relativas en lugar de absolutas, ya que permitir rutas de archivo absolutas puede representar un riesgo de seguridad.
+ Este archivo de texto contiene la lista de archivos (sin su ruta absoluta) que se van a concatenar y debe tener el siguiente formato: ++ file 'primer_archivo.ext' + file 'segundo_archivo.ext' + . . . + file 'último_archivo.ext' +
+ En el ejemplo anterior, file es simplemente la palabra "file". Se deben usar comillas simples ('como estas') en lugar de comillas curvas (‘como estas’) para encerrar las rutas de los archivos.
+ Nota: Si especifica rutas de archivo absolutas en el archivo .txt, agregue-safe 0antes del archivo de entrada.
+ Ej.:ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
+ - -c copy
- utiliza el modo de copia de flujo para remultiplexar en lugar de recodificar +
- output_file
- ruta, nombre y extensión del archivo de salida +
Para obtener más información, consulte la página,wiki de FFmpeg sobre la concatenación de archivos.
+ +Unir archivos
+ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file
Este comando toma dos o más archivos de diferentes tipos y los une para crear un solo archivo.
+Los archivos de entrada pueden diferir en muchos aspectos: contenedor, códec, esquema de submuestreo de croma, fotogramas por segundo, etc. Sin embargo, el comando anterior solo funciona correctamente si los archivos que se van a combinar tienen las mismas dimensiones (por ejemplo, 720x576). Tenga en cuenta también que si los archivos de entrada tienen diferentes velocidades de fotogramas, el archivo de salida tendrá una velocidad de fotogramas variable.
+Algunos aspectos de los archivos de entrada se normalizarán: por ejemplo, si un archivo de entrada contiene una pista de video y una pista de audio que no tienen exactamente la misma duración, la más corta se rellenará. En el caso de una pista de video más corta, el último fotograma se repetirá para cubrir el video faltante; en el caso de una pista de audio más corta, el flujo de audio se rellenará con silencio.
+-
+
- ffmpeg
- inicia el commando +
- -i input_1.ext
- ruta, nombre y extensión del primer archivo de entrada +
- -i input_2.ext
- ruta, nombre y extensión del segundo archivo de entrada +
- -filter_complex
- indica que se utilizará un gráfico de filtros complejo +
- "
- comilla para iniciar el gráfico de filtros +
- [0:v:0][0:a:0]
- selecciona la primera secuencia de video y la primera secuencia de audio de la primera entrada.
+ Cada referencia a una secuencia o flujo específico está entre corchetes. En la primera referencia,0:v:0, el primer cero se refiere al primer archivo de entrada,vsignifica secuencia de video, y el segundo cero indica que se debe seleccionar la primera secuencia de video en el archivo. De manera similar,0:a:0significa la primera secuencia de audio del primer archivo de entrada.
+ Como se muestra anteriormente, ffmpeg utiliza indexación base cero:0significa la primera entrada/secuencia/etc.,1significa la segunda entrada/secuencia/etc., y4significaría la quinta entrada/secuencia/etc.
+ - [1:v:0][1:a:0]
- Como se describió anteriormente, esto significa seleccionar las primeras secuencias de video y audio del segundo archivo de entrada. +
- concat=
- inicia el filtro
concat
+ - n=2
- indica que hay dos archivos de entrada +
- :
- separador +
- v=1
- establece el número de secuencias de video de salida.
+ Tenga en cuenta que esto debe ser igual al número de secuencias de video seleccionadas de cada segmento.
+ - :
- separador +
- a=1
- establece el número de secuencias de audio de salida.
+ Tenga en cuenta que esto debe ser igual al número de secuencias de audio seleccionadas de cada segmento.
+ - [video_out]
- nombre de la secuencia de video de salida concatenada. Este es un nombre de variable que usted define, por lo que podría llamarlo de otra manera, como "vOut", "outv" o "banana". +
- [audio_out]
- nombre de la secuencia de audio de salida concatenada. Nuevamente, este es un nombre de variable que usted define. +
- "
- comilla para finalizar el gráfico de filtros +
- -map "[video_out]"
- asigna la secuencia de video concatenada al archivo de salida haciendo referencia a la variable definida anteriormente +
- -map "[audio_out]"
- asigna la secuencia de audio concatenada al archivo de salida haciendo referencia a la variable definida anteriormente +
- output_file
- ruta, nombre y extensión del archivo de salida el archivo de salida +
Si no se especifican las características de los archivos de salida, ffmpeg utilizará las codificaciones predeterminadas asociadas al tipo de archivo de salida especificado. Para especificar las características de los flujos de salida, añada indicadores después de cada parte -map "[out]" del comando command.
Por ejemplo, para garantizar que el flujo de video del archivo de salida sea H.264 sin pérdidas visuales con un esquema de submuestreo de croma 4:2:0, el comando anterior podría modificarse para incluir lo siguiente:
+ -map "[video_out]" -c:v libx264 -pix_fmt yuv420p -preset veryslow -crf 18
Del mismo modo, para codificar el flujo de audio de salida como mp3, el comando podría incluir lo siguiente:
+ -map "[audio_out]" -c:a libmp3lame -dither_method triangular -qscale:a 2
Variación: concatenación de archivos de diferentes resoluciones
+Para concatenar archivos de diferentes resoluciones, es necesario redimensionar los videos para que sus resoluciones coincidan antes de la concatenación. La forma más básica de hacerlo es utilizando un filtro de escala e indicando las dimensiones del archivo con el que se desea que coincidan:
+-vf scale=1920:1080:flags=lanczos
(Se recomienda el algoritmo de escalado Lanczos, que es más lento pero mejor que el algoritmo bilineal predeterminado).
+El reescalado debe aplicarse justo antes del punto donde se enumeran las secuencias que se utilizarán en el archivo de salida. Seleccione la secuencia que desea reescalar, aplique el filtro y asigne un nombre de variable (rescaled_video en el ejemplo siguiente). Luego, utilice este nombre de variable en la lista de flujos que se van a concatenar.
ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0] scale=1920:1080:flags=lanczos [rescaled_video], [rescaled_video] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [video_out] [audio_out]" -map "[video_out]" -map "[audio_out]" output_file
Sin embargo, esto solo tendrá el resultado visual deseado si las entradas tienen la misma relación de aspecto. Si desea concatenar un archivo SD y un archivo HD, también deberá aplicar el efecto pillarbox al archivo SD al mismo tiempo que lo escala. (Consulte el comando Convertir 4:3 a HD en pillarboxed). El comando completo se vería así:
+ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0] scale=1440:1080:flags=lanczos, pad=1920:1080:(ow-iw)/2:(oh-ih)/2 [to_hd_video], [to_hd_video] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [video_out] [audio_out]" -map "[video_out]" -map "[audio_out]" output_file
Aquí, el primer archivo de entrada es un archivo SD que necesita escalarse para que coincida con el segundo archivo de entrada, que es de 1920x1080. El filtro de escala amplía la entrada SD a la altura del fotograma HD, manteniendo la relación de aspecto 4:3; luego, el video se rellena con barras laterales dentro de un fotograma de 1920x1080.
+Variación: concatenación de archivos con diferentes velocidades de fotogramas
+Si los archivos de entrada tienen diferentes velocidades de fotogramas, el archivo de salida puede tener una velocidad de fotogramas variable. Para obtener explícitamente un archivo de salida con una velocidad de fotogramas constante, puede convertir una entrada (o varias entradas) a una velocidad de fotogramas diferente antes de la concatenación.
+Puede acelerar o ralentizar un archivo utilizando los filtros fps y atempo (consulte también el comando Modificar velocidad).
Aquí hay un ejemplo del comando completo, en el que input_1 tiene 30fps, input_2 tiene 25fps, y 25fps es la velocidad de fotogramas de salida deseada.
+ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0] fps=fps=25 [video_to_25fps]; [0:a:0] atempo=(25/30) [audio_to_25fps]; [video_to_25fps] [audio_to_25fps] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [video_out] [audio_out]" -map "[video_out]" -map "[audio_out]" output_file
Tenga en cuenta que el filtro fps eliminará o repetirá fotogramas según sea necesario para lograr la velocidad de fotogramas deseada - consulte la documentación de FFmpeg sobre fps docs para obtener más detalles.
Para obtener más información, consulte la página wiki de FFmpeg sobre la concatenación de archivos de diferentes tipos.
+ +Dividir archivo en segmentos
+ffmpeg -i input_file -c copy -map 0 -f segment -segment_time 60 -reset_timestamps 1 output_file-%03d.mkv
-
+
- ffmpeg
- inicia el commando. +
- -i input_file
- especifica el archivo de entrada. +
- -c copy
- utiliza el modo de copia de flujo para remultiplexar en lugar de recodificar. +
- -map 0
- indica a FFmpeg que asigne todos los flujos de entrada a la salida. +
- -f segment
- utiliza el multiplexor de segmentos para generar la salida. +
- -segment_time 60
- establece la duración de cada segmento (en segundos). Este ejemplo crea segmentos con una duración máxima de 60 segundos cada uno. +
- -reset_timestamps 1
- restablece las marcas de tiempo de cada segmento a 0. Esto facilita la reproducción de los segmentos generados. +
- output_file-%03d.mkv +
-
+
ruta, nombre y extensión del archivo de salida.
+
+ Para que el nombre de cada segmento incluya un número que vaya incrementando,FFmpeg admite la sintaxis de estilo printf para un contador.En este ejemplo,'%03d' significa: 3-digitos, con ceros a la izquierda.
+
+ Ejemplos:-
+
%03d: 000, 001, 002, ... 999
+ %05d: 00000, 00001, 00002, ... 99999
+ %d: 0, 1, 2, 3, 4, ... 23, 24, etc.
+
+
Recorta un video sin recodificarlo
+ffmpeg -i input_file -ss 00:02:00 -to 00:55:00 -c copy -map 0 output_file
Este comando permite crear un fragmento de un archivo sin recodificar los datos audiovisuales.
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre, y extensión del archivo de entrada +
- -ss 00:02:00
- establece el punto de inicio en 00:02:00 +
- -to 00:55:00
- establece el punto final en 00:55:00 +
- -c copy
- utiliza el modo de copia de flujo (sin recodificación)
+ - -map 0
- indica a FFmpeg que asigne todos los flujos de entrada a la salida.
+ Nota: ten cuidado al usar-sscon-c copysi la fuente está codificada con un códec interframe (por ejemplo, H.264). Dado que FFmpeg debe dividir el video en i-frames, más cercano para comenzar la copia del flujo.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Variación: recortar archivo estableciendo la duración, usando -t en lugar de -to
ffmpeg -i input_file -ss 00:05:00 -t 10 -c copy output_file
-
+
- -ss 00:05:00 -t 10
- comenzando cinco minutos después del inicio del video original, este comando creará un fragmento de 10 segundos de duración. +
Nota: Para mantener las marcas de tiempo originales, sin intentar sanearlas, puedes añadir la opción -copyts
Fragmento desde principio
+ffmpeg -i input_file -t 5 -c copy -map 0 output_file
Este comando captura una porción específica de un archivo, comenzando desde el principio y continuando durante el monto de tiempo (en segundos) especificado en la serie comandos. Esto se puede usar para crear un archivo de vista previa o para eliminar contenido no deseado del final del archivo. Para mayor precisión, use código de tiempo, como 00:00:05.
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -t 5
- indica a FFmpeg que deje de copiar desde el archivo de entrada después de un tiempo determinado y especifica la cantidad de segundos después de los cuales debe detenerse la copia. En este caso, se especifican 5 segundos. +
- -c copy
- utiliza el modo de copia de flujo para remultiplexar en lugar de recodificar +
- -map 0
- indica a FFmpeg que asigne todos los flujos de entrada a la salida. +
- output_file
- ruta, nombre y extensión del archivo de salida +
Extraer hacia el final
+ffmpeg -i input_file -ss 5 -c copy -map 0 output_file
Este comando copia un archivo a partir de un momento específico, eliminando los primeros segundos del archivo de salida. Esto se puede usar para crear un fragmento o eliminar contenido no deseado del principio de un archivo.
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -ss 5
- indica a FFmpeg el código de tiempo en el archivo a partir del cual debe comenzar la copia, especificando el número de segundos desde el inicio del video. Para mayor precisión, se puede usar un código de tiempo como 00:00:05. +
- -c copy
- utiliza el modo de copia de flujo para remultiplexar en lugar de recodificar +
- -map 0
- indica a FFmpeg que asigne todos los flujos de entrada a la salida. +
- output_file
- ruta, nombre y extensión del archivo de salida +
Extraer desde del final
+ffmpeg -sseof -5 -i input_file -c copy -map 0 output_file
Este comando copia un archivo a partir de un tiempo específico antes del final del archivo, eliminando todo lo anterior en el archivo de salida. Esto se puede usar para crear un fragmento o extraer contenido del final de un archivo (por ejemplo, para extraer los créditos finales).
+-
+
- ffmpeg
- inicia el commando +
- -sseof -5
- Este parámetro debe ir antes del archivo de entrada. Le indica a FFmpeg qué código de tiempo buscar en el archivo para comenzar la copia y especifica la cantidad de segundos desde el final del video a partir de la cual FFmpeg debe comenzar a copiar. El final del archivo tiene el índice 0 y se necesita el signo menos para hacer referencia a partes anteriores. Para ser más específico, puede usar un código de tiempo como -00:00:05. Tenga en cuenta que en la mayoría de los formatos de archivo no es posible buscar con precisión, por lo que FFmpeg buscará lo más cercano al punto anterior. +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -c copy
- utiliza el modo de copia de flujo para remultiplexar en lugar de recodificar +
- -map 0
- indica a FFmpeg que asigne todos los flujos de entrada a la salida +
- output_file
- ruta, nombre y extensión del archivo de salida +
Eliminar la parte silente al principio de un archivo de audio
+ffmpeg -i input_file -af silenceremove=start_threshold=-57dB:start_duration=1:start_periods=1 -c:a your_codec_choice -ar your_sample_rate_choice output_file
Este comando eliminará automáticamente el silencio al principio de un archivo de audio. El umbral que define el silencio se puede modificar - este ejemplo utiliza cualquier sonido por debajo de -57 dB, un nivel adecuado para tener en cuenta el ruido de fondo analógico.
+Nota: Dado que este comando utiliza un filtro, el flujo de audio se recodificará para la salida. Si no se especifica una frecuencia de muestreo o un códec, este comando utilizará la frecuencia de muestreo de la entrada y los códecs predeterminados para el formato de salida. ¡Asegúrese de obtener los resultados deseados!
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada (por ejemplo, input_file.wav) +
- -af silenceremove
- aplica el filtro de eliminación de silencio +
- start_threshold=-57dB
- indica al filtro el umbral para considerar qué es 'silencio' para su eliminación. Esto se puede aumentar o disminuir según sea necesario. +
- start_duration=1
- indica al filtro cuánto audio no silencioso debe detectar antes de dejar de recortar. Con un valor de
0el filtro se detendría después de detectar cualquier audio no silencioso. Un valor de1permite que continúe recortando a través de pequeños ‘ruidos’, como los causados al activar el dispositivo de reproducción o el sonido grabado al conectar un micrófono.
+ - start_periods=1
- indica al filtro que recorte la primera porción de silencio que encuentre al principio del archivo. Este valor se puede aumentar para eliminar porciones silenciosas posteriores del archivo si se desea. +
- -c:a your_codec_choice
- indica al filtro qué códec usar y debe especificarse para evitar valores predeterminados. Si desea PCM de 24 bits, el valor sería
-c:a pcm_s24le.
+ - output_file
- ruta, nombre y extensión del archivo de salida (por ejemplo, output_file.wav). +
Eliminar la parte silenciosa del final de un archivo de audio
+ffmpeg -i input_file -af areverse,silenceremove=start_threshold=-57dB:start_duration=1:start_periods=1,areverse -c:a your_codec_choice -ar your_sample_rate_choice output_file
Este comando eliminará automáticamente el silencio al final de un archivo de audio. Dado que el filtro silenceremove funciona mejor eliminando el silencio al principio de los archivos, este comando utiliza el filtro areverse dos veces para invertir la entrada, eliminar el silencio y luego restaurar la orientación correcta.
Nota: Dado que este comando utiliza un filtro, la transmisión de audio se recodificará para la salida. Si no especifica una frecuencia de muestreo o un códec, este comando utilizará la frecuencia de muestreo de la entrada y los valores predeterminados del códec para el formato de salida. ¡Asegúrese de obtener los resultados deseados!
+-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada (por ejemplo, input_file.wav) +
- -af areverse,
- inicia la cadena de filtros invirtiendo la entrada +
- silenceremove
- aplica el filtro de eliminación de silencio +
- start_threshold=-57dB
- indica al filtro el umbral para considerar qué es "silencio" para su eliminación. Esto se puede aumentar o disminuir según sea necesario. +
- start_duration=1
- indica al filtro cuánto audio no silencioso debe detectarse antes de que deje de recortar. Con un valor de
0el filtro se detendría después de detectar cualquier audio no silencioso. Una configuración de1le permite continuar recortando a través de pequeños ‘ruidos’ como los causados por la activación del dispositivo de reproducción o el sonido grabado de un micrófono al conectarse.
+ - start_periods=1
- indica al filtro que recorte el primer ejemplo de silencio que encuentre. +
- areverse
- aplica el filtro de inversión de audio nuevamente para restaurar la entrada a la orientación correcta. +
- -c:a your_codec_choice
- indica al filtro qué códec usar y debe especificarse para evitar valores predeterminados. Si desea PCM de 24 bits, el valor sería
-c:a pcm_s24le.
+ - output_file
- ruta, nombre y extensión del archivo de salida (por ejemplo, output_file.wav). +
Trabajar con video entrelazado
+ + + + +Escalar archivos de acceso pillar-boxed HD H.264 a partir de una fuente SD NTSC
+ffmpeg -i input_file -c:v libx264 -filter:v "yadif, scale=1440:1080:flags=lanczos, pad=1920:1080:(ow-iw)/2:(oh-ih)/2, format=yuv420p" output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -c:v libx264
- codifica el flujo de video con libx264 (h264) +
- -filter:v
- se utilizará un filtro de video +
- "
- qcomilla para iniciar el gráfico de filtros +
- yadif
- filtro de desentrelazado ('otro filtro de desentrelazado más')
+ Por defecto, yadif yadif genera un fotograma por cada fotograma de entrada. Generar un fotograma por cada campo campo (duplicando así la velocidad de fotogramas) conyadif=1puede producir mejores resultados visualmente.
+ - scale=1440:1080:flags=lanczos
- redimensiona la imagen a 1440x1080, utilizando el algoritmo de escalado Lanczos, que es más lento pero mejor que el algoritmo bilineal predeterminado. +
- pad=1920:1080:(ow-iw)/2:(oh-ih)/2
- rellena el área alrededor del video de entrada 4:3 para crear un video de salida 16:9 +
- format=yuv420p
- especifica un formato de píxeles Y′CBCR 4:2:0 +
- "
- comilla para finalizar el gráfico de filtros +
- output_file
- ruta, nombre y extensión del archivo de salida +
Nota: este mismo filtro de escalado también reduce el tamaño de una imagen más grande a HD.
+ +Desentrelazar un video
+ffmpeg -i input_file -c:v libx264 -vf "yadif,format=yuv420p" output_file
Este comando toma un archivo de entrada entrelazado y genera un archivo H.264 MP4 desentrelazado.
+-
+
- ffmpeg
- inicia el commando +
- -i input file
- ruta, nombre y extensión del archivo de entrada +
- -c:v libx264
- indica a FFmpeg que codifique el flujo de video como H.264 +
- -vf
- se utilizará el filtrado de video (
-vfes un alias de-filter:v)
+ - "
- inicio del gráfico de filtros (ver más abajo) +
- yadif
- filtro de desentrelazado ('otro filtro de desentrelazado más')
+ Por default, yadif generará un fotograma de salida por cada fotograma. Generar un fotograma por cada campo (duplicando así la velocidad de fotogramas) conyadif=1puede producir mejores resultados visuales.
+ - ,
- separa los filtros +
- format=yuv420p
- submuestreo de croma configurado a 4:2:0
+ Por default,libx264utilizará un esquema de submuestreo de croma que sea el que mejor se ajuste al de la entrada. Esto puede resultar en un submuestreo de croma Y′CBCR 4:2:0, 4:2:2, o 4:4:4. y la mayoría de los reproductores que no se basan en FFmpeg no pueden decodificar archivos H.264 que no sean 4:2:0, por lo tanto, es recomendable especificar el submuestreo de croma 4:2:0.
+ - "
- fin del gráfico de filtros +
- output file
- ruta, nombre y extensión del archivo de salida +
"yadif,format=yuv420p" es un gráfico de filtros de FFmpeg. n este caso, el gráfico de filtros está compuesto por una cadena de filtros, que a su vez está compuesta por dos filtros (separados por la coma).
+ Las comillas son necesarias cuando se utilizan espacios dentro del gráfico de filtros, por ejemplo, -vf "yadif, format=yuv420p", y se incluyen arriba como ejemplo una práctica recomendable.
Nota: FFmpeg incluye varios desentrelazadores además de yadif: bwdif, w3fdif, kerndeint, y nnedi.
+Para obtener más opciones de codificación H.264, consulte la última sección del comando de codificación H.264.
+Ejemplo
+Antes y después del desentrelazado:
+
+
+ Desentrelazar campos de video a fotogramas
+ffmpeg -i input_file -c:v libx264 -vf "idet,bwdif,format=yuv420p" output_file
Este comando toma un archivo de entrada entrelazado y genera un archivo MP4 H.264 desentrelazado, con cada campo separado en su propio fotograma. Esto es preferible para un video entrelazado que contenga mucho movimiento, ya que la salida de doble velocidad de fotogramas conserva el ritmo visual del material de origen.
+-
+
- ffmpeg
- inicia el commando +
- -i input file
- ruta, nombre y extensión del archivo de entrada +
- -c:v libx264
- indica a FFmpeg que codifique el flujo de video como H.264 +
- -vf
- se utilizará el filtrado de video (
-vfes un alias de-filter:v)
+ - "
- inicio del gráfico de filtros (ver a continuación) +
- idet
- detecta el orden de los campos de video entrelazados
+ idet intentará detectar si el video está entrelazado y, en caso afirmativo, cuál es el orden de los campos (campo superior primero o campo inferior primero). Esto se hace para garantizar que la salida del filtro de desentrelazado sea correcta.
+ - bwdif
- filtro de desentrelazado (‘Filtro de desentrelazado de Bob Weaver’)
+ Por default, bwdif generará un fotograma por cada campo, coincidiendo con el ritmo visual del video entrelazado.
+ - ,
- separa los filtros +
- format=yuv420p
- submuestreo de croma configurado a 4:2:0
+ Por default,libx264utilizará un esquema de submuestreo de croma que sea el que mejor se ajuste al de la entrada. Esto puede resultar en un submuestreo de croma Y′CBCR 4:2:0, 4:2:2, o 4:4:4. QuickTime y la mayoría de los reproductores que no se basan en FFmpeg no pueden decodificar archivos H.264 que no sean 4:2:0, por lo tanto, es recomendable especificar el submuestreo de croma 4:2:0.
+ - "
- fin del gráfico de filtros +
- output file
- ruta, nombre y extensión del archivo de salida +
"idet,bwdif,format=yuv420p" es un gráfico de filtros de FFmpeg. Aquí, el gráfico de filtros está compuesto por una cadena de filtros, que a su vez consta de tres filtros (separados por comas).
+ Las comillas son necesarias cuando se utilizan espacios dentro del gráfico de filtros, por ejemplo, -vf "idet, bwdif, format=yuv420p", y se incluyen arriba como ejemplo de práctica recomendable.
Nota: bwdif también admite el método anterior de salida de un fotograma por cada fotograma (reduciendo así a la mitad el número de fotogramas de salida por segundo) con la sintaxis bwdif=mode=send_frame. Esto puede ser útil cuando el dispositivo de visualización no es capaz de reproducir 50 (PAL) o 60 (NTSC) fotogramas por segundo.
Para obtener más opciones de codificación H.264, consulte la última sección del comando de codificación H.264.
+Ejemplo
+Antes y después del desentrelazado con bwdif:
+
+
+ Aplicar telecine inverso a un archivo de video
+ffmpeg -i input_file -c:v libx264 -vf "fieldmatch,yadif,decimate" output_file
El procedimiento de telecine inverso revierte el proceso de conversión 3:2, restaurando el video entrelazado de 29.97 fps a la velocidad de 24 fps de la fuente original de la película.
+-
+
- ffmpeg
- inicia el commando +
- -i input file
- ruta, nombre y extensión del archivo de entrada +
- -c:v libx264
- codifica el video como H.264 +
- -vf "fieldmatch,yadif,decimate"
- aplica estos tres filtros de video al video de entrada.
+ Fieldmatch es un filtro de relación de campos para telecine inverso - reconstruye los fotogramas progresivos a partir de un flujo de telecine.
+ Yadif ('otro filtro de desentrelazado más') desentrelaza el video. (Tenga en cuenta que FFmpeg también incluye otros desentrelazadores).
+ Decimate elimina los fotogramas duplicados.
+ - output file
- ruta, nombre y extensión del archivo de salida +
"fieldmatch,yadif,decimate" es un gráfico de filtros de FFmpeg. En este caso, el gráfico de filtros está compuesto por una cadena de filtros, que a su vez está compuesta por los tres filtros (separados por comas).
+ Las comillas son necesarias cuando se utilizan espacios dentro del gráfico de filtros, por ejemplo, -vf "fieldmatch, yadif, decimate", y se incluyen arriba como ejemplo de práctica recomendable.
Tenga en cuenta que si se aplica un procedimiento de telecine inverso a un archivo de 29.97i, la velocidad de fotogramas de salida será de 23.976 fps.
+Este comando también se puede utilizar para restaurar otras velocidades de fotogramas.
+Ejemplo
+Antes y después del telecine inverso:
+
+
+ Cambiar el orden de los campos de un video entrelazado
+ffmpeg -i input_file -c:v video_codec -filter:v setfield=tff output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter:v setfield=tff
- Establece el orden de los campos desde el primero superior (tff=top field first). Use
setfield=bffpara ordenar el campo inferior primero.
+ - -c:v video_codec
- Dado que se utiliza un filtro de video, no es posible usar
-c copy. El video debe recodificarse con el códec de video elegido, por ejemplo,ffv1,v210oprores.
+ - output_file
- ruta, nombre y extensión del archivo de salida +
Comprobar los patrones de entrelazado de un archivo de video
+ffmpeg -i input file -filter:v idet -f null -
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta, nombre y extensión del archivo de entrada +
- -filter:v idet
- Esto solicita el filtro idet (detectar el tipo de entrelazado de video). +
- -f null
- El video se decodifica con el multiplexor
nulo. Esto permite la decodificación de video sin crear un archivo de salida.
+ - -
- La sintaxis de FFmpeg requiere una salida especificada, y
-imprime la salida en la pantalla (STDOUT) en lugar de crear un archivo.
+
Ver o remover metadatos
+ + + + +Extraer especificaciones de un archivo de video
+ffprobe -i input_file -show_format -show_streams -show_data -print_format xml
Este comando extrae metadatos técnicos de un archivo de video y los muestra en formato xml.
+-
+
- ffprobe
- inicia el comando +
- -i input_file
- ruta, nombre, y extensión del archivo de entrada +
- -show_format
- muestra información del contenedor de archivos +
- -show_streams
- muestra información de códecs de audio and video +
- -show_data
- agrega un breve “hexdump” a la salida del comando show_streams +
- -print_format
- establece el formato de impresión de salida (en este ejemplo “xml”; other otros formatos incluyen “json” and “flat”) +
Consulte también la documentación de FFmpeg en ffprobe la documentación de FFmpeg sobre ffprobe para obtener una lista completa de indicadores,comandos, y opciones.
+ +Remover los metadatos de un archivo de video
+ffmpeg -i input_file -map_metadata -1 -c:v copy -c:a copy output_file
-
+
- ffmpeg
- inicia el commando +
- -i input_file
- ruta,nombre, y extensión del archivo de entrada +
- -map_metadata -1
- establece la copia de metadatos en -1, lo que significa que no se copia ningún metadato +
- -c:v copy
- copia la pista de video +
- -c:a copy
- copia la pista de audio +
- output_file
- Crea una copia del archivo original y le asigna un nombre al archivo de salida +
Note: -c:v y -c:a son atajos para -vcodec and -acodec.
Usar OCR
+ + + + +Reproduce el video con OCR superpuesto
+ffplay input_file -vf "ocr,drawtext=fontfile=/Library/Fonts/Andale Mono.ttf:text=%{metadata\\\:lavfi.ocr.text}:fontcolor=white"
-
+
- ffplay
- inicia el commando +
- input_file
- ruta, nombre y extensión del archivo de entrada +
- -vf
- crea un gráfico de filtros para usar con los flujos +
- "
- comilla para iniciar el gráfico de filtros +
- ocr,
- indica a ffplay que use OCR como fuente y la coma indica que los comandos están listos para la aserción del filtro +
- drawtext=fontfile=/Library/Fonts/Andale Mono.ttf
- indica a ffplay que extraiga el texto y use una fuente específica al hacerlo (Andale Mono) +
- :
- indica que hay otro parámetro +
- text=%{metadata\\\:lavfi.ocr.text}
- indica a ffplay qué texto usar durante la reproducción. En este caso, solicita metadatos que se encuentran en la biblioteca lavfi.ocr.text +
- :
- indica que hay otro parámetro +
- fontcolor=white
- especifica el color de la fuente como blanco +
- "
- comilla para finalizar el gráfico de filtros +
Exporta los datos OCR a la pantalla
+ffprobe -show_entries frame_tags=lavfi.ocr.text -f lavfi -i "movie=input_file,ocr"
-
+
- ffprobe
- inicia el commando +
- -show_entries
- establece una lista de entradas para mostrar +
- frame_tags=lavfi.ocr.text
- muestra el identificador lavfi.ocr.text en la sección del fotograma del video +
- -f lavfi
- indica a ffprobe que utilice el dispositivo virtual de entrada Libavfilter +
- -i "movie=input_file,ocr"
- declara 'movie' como input_file y pasa el comando 'ocr' command +