Es posible que muchos amigos no hayan oído hablar de FFmpeg, pero deben haber utilizado uno de estos programas: Baofeng Yingyin, QQ Yingyin, KMP, GOM Player, PotPlayer (2010), KMPlayer. FFmpeg es software de código abierto y el software que utiliza FFmpeg de acuerdo con el acuerdo también debe ser de código abierto. Sin embargo, este software de audio y video no cumple con el acuerdo, por lo que se incluyó en la "lista negra" de FFmpeg.

FFmpeg es un marco de código abierto líder para el procesamiento multimedia de audio y vídeo, que utiliza licencia LGPL o GPL. Proporciona funciones ricas como recopilación de audio y video, codificación, decodificación, transcodificación, separación de audio y video, fusión, transmisión por secuencias, filtros, etc. Incluye una biblioteca de códecs de audio/video muy avanzada, libavcodec, que tiene una portabilidad y una confiabilidad muy altas. La calidad del códec lo convierte en un artefacto de procesamiento multimedia.

Al mismo tiempo, FFmpeg también proporciona paquetes de comandos, que se pueden usar en Windows, Linux y otras plataformas. Mucha gente piensa que FFmpeg es difícil de usar. De hecho, siempre que instalemos la herramienta de comando FFmpeg, podemos implementarla rápidamente. conversión de formato de video y compresión de video en Windows. Y conversión entre videos e imágenes.

Software de compresión y conversión de formatos de audio y video gratuito y de código abierto FFmpeg: cómo convertir formatos y comprimir videos

Para obtener más herramientas y software para webmasters, aquí están:

  1. Habilidades esenciales para que los webmasters agreguen marcas de agua a imágenes en lotes: métodos de procesamiento por lotes XnView y Meitu XiuXiu
  2. El mejor editor para WordPress: instale y use Windows Live Writer (Windows 10)
  3. Tome capturas de pantalla sin preocupaciones con Yisoft: herramienta de captura de pantalla ShareX: breve, concisa y llena de funciones. Las tareas automatizadas pueden capturar imágenes y videos en movimiento.

1. Instalación del software FFmpeg

sitio web:

  1. Sitio web oficial: https://ffmpeg.zeranoe.com/builds/
  2. Descarga alternativa: https://wzfou.com/down/ffmpeg64 (64 bits)

Después de ingresar al sitio web, seleccione la versión que desea instalar, que sea compatible con Windows 7 y Mac OS X 10.10 y superior.

Descomprima el paquete comprimido descargado para obtener la carpeta ffmpeg-xxx-win64-static, cámbiele el nombre a ffmpeg y luego coloque la carpeta ffmpeg en la carpeta del programa, por ejemplo, la ruta de ubicación de wzfou.com es: C :.

Abra la página de configuración de variables de entorno: Explorador > Esta PC > Haga clic derecho - Propiedades > Configuración avanzada del sistema > Variables de entorno. Haga doble clic en el elemento Ruta para ingresar a la página de edición, seleccione Nuevo, pegue la ruta C:ffmpegbin en el cuadro de entrada y confirme para guardar. (Click para agrandar)

Ahora abra su CMD, ingrese ffmpeg y presione Enter para ejecutar. Si ve un mensaje de respuesta, significa que ha instalado FFmpeg correctamente.

2. Uso rápido de FFmpeg

Si no es un usuario profesional de audio y video, solo puede ver esta parte de las operaciones comunes de FFmpeg, y las operaciones más complejas que siguen se pueden "ver bajo demanda".

2.1 Formato de conversión

El comando más simple y más utilizado para convertir el formato FFmpeg es:

ffmpeg -i input.xxx output.xxx

Para convertir formatos mp4 y flv, el comando es el siguiente:

ffmpeg -i input.flv output.mp4
#或者
ffmpeg -i input.mp4 output.flv

Para convertir formatos mp4 y webm, el comando es el siguiente:

ffmpeg -i input.mp4 output.webm
#或者
ffmpeg -i input.webm output.mp4

2.2 Vídeo comprimido

Los comandos de FFmpeg para comprimir video son los siguientes:

ffmpeg -i input.mp4 -r 10 -b:a 32k output.mp4 #对它降低fps和音频码率的方法大大压缩文件大小,而清晰度不变。
#或者
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4 #采用H.264视频压缩算法和AAC音频压缩算法,视频帧率10fps,音频码率32k
#或者是
ffmpeg -i wzfou.mp4 -crf 20 wzfou.mp4
ffmpeg -i wzfou1.flv -crf 20 wzfou1.mp4
ffmpeg -i wzfou1.mp4 -crf 30 wzfou30.mp4
ffmpeg -i 480p.mp4 480p.webm

2.3 Convertir gifs

Para convertir video a gif, el comando es el siguiente:

#把视频的前 30 帧转换成一个 Gif
ffmpeg -i input_video.mp4 -vframes 30 -y -f gif output.gif

#将视频转成 gif 将输入的文件从 (-ss) 设定的时间开始以 10 帧频率,输出到 320x240 大小的 gif 中,时间长度为 -t 设定的参数。
ffmpeg -ss 00:00:00.000 -i input.mp4 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif

3. Operación de vídeo FFmpeg

Los parámetros de comando de FFmpeg son los siguientes:

Instrucciones relacionadas:

-crt: esta opción afectará directamente la velocidad de bits del video de salida. Después de configurar este parámetro, configurar -b para especificar la velocidad de bits no tendrá efecto. El rango de valores de crt es 0-50, 0 es codificación sin distorsión. , se recomienda 18-28.

-preset: especifica la configuración de codificación. x264 proporciona algunos valores preestablecidos, y estos valores preestablecidos se pueden especificar a través de preestablecido. El ajuste preestablecido afecta principalmente a la velocidad de codificación y no afecta en gran medida la calidad de los resultados codificados.

Después de ejecutar un comando de transcodificación, ajuste el valor del parámetro -crf a 19, 20, 28 y 51 respectivamente y vuelva a transcodificar la salida en diferentes archivos MP4. Registre los datos y compárelos de la siguiente manera:

Fuente                archivo Tamaño      Relación de reducción
crf = 18       46,3 < x2>            21%
fcr = 19  < x2>    36.7            <x2 > 33%
crf = 20       31,2       < x2>      43%
crf = 28       26,5               83%
fcr = 51        1.25              97 %

3.1 Especificar formato de conversión

Generalmente, FFmpeg seleccionará el formato de contenedor y el formato de codificación más apropiados según el formato del archivo, o también puede especificarlo manualmente. Por ejemplo:

ffmpeg -i out.ogv -vcodec h264 out.mp4
ffmpeg -i out.ogv -vcodec mpeg4 out.mp4
ffmpeg -i out.ogv -vcodec libxvid out.mp4
ffmpeg -i out.mp4 -vcodec wmv1 out.wmv
ffmpeg -i out.mp4 -vcodec wmv2 out.wmv

-i va seguido del nombre del archivo de entrada. A -vcodec le sigue el formato de codificación, h264 es el mejor, pero no está instalado de forma predeterminada en los sistemas Windows. Si desea insertar un vídeo ppt, lo más apropiado es elegir wmv1 o wmv2.

También hay opciones adicionales: -r especifica la velocidad de fotogramas, -s especifica la resolución, -b especifica la velocidad de bits; el canal de audio se puede modificar Transcodificación, -acodec especifica la codificación de audio, -ab especifica la velocidad de bits de audio, -ac especifica el número de canales, por ejemplo :

ffmpeg -i out.ogv -s 640x480 -b 500k -vcodec h264 -r 29.97 -acodec libfaac -ab 48k -ac 2 out.mp4

Convierta el formato tal como está, es decir, mantenga el formato de codificación de audio y video original. El comando es el siguiente:

ffmpeg -i input.flv -vcodec copy -acodec copy out.mp4 #-vcodec copy 和 -acodec copy 表示所使用的视频和音频编码格式,为原样拷贝。

3.2 Fusionar vídeos MP4

FFmpeg puede fusionar varios videos. Es mejor convertir mp4 a ts con calidad sin pérdidas primero y luego fusionarlos. El comando es el siguiente:

ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

3.3 Cambiar tamaño de resolución

Si desea ajustar la resolución del video, puede usar el siguiente comando:

ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
# or
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

Si desea ajustar la relación de aspecto de su video, puede usar el siguiente comando:

ffmpeg -i input.mp4 -aspect 16:9 output.mp4
#常见的宽高比:16:9、4:3、16:10、5:4

3.4 Convertir tasa de bits de vídeo

Los principales parámetros relacionados con la velocidad de bits de ffmpeg son -minrate, maxrate, -b:v. Los comandos son los siguientes:

ffmpeg -i input.mp4 -b:v 2000k output.mp4

#把原始视频转换成 2 Mbps 码率视频。ffmpeg 官方建议,在设置 -b:v 时,同时加上 -bufsize 用于设置码率控制缓冲器大小,让整体码率更加趋近于希望的值,减少波动。
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

# -minrate 和 -maxrate 比较简单,设置码率不要低于或者超过某一个阈值
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

3.5 Editar y recortar videos

Si desea cambiar la interceptación de parte del video o conservar una determinada parte del video, el comando es el siguiente:

ffmpeg -i a.mov -ss 00:00:21 -t 00:00:10 -acodec aac -vcodec h264 -strict -2 out.mp4
#其中 -ss 00:00:21 表示开始剪辑的位置(时间点),-t 00:00:10 表示剪辑的长度,即 10 秒钟

ffmpeg -i a.mov -strict -2 -vf crop=1080:1080:0:420 out.mp4
#将竖向的视频 1080 x 1920,保留中间 1080×1080 部分,其中的 crop=1080:1080:0:420 才裁剪参数,具体含义是 crop=width:height:x:y,其中 width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。比如当前这个示例,我们只需要保留竖向视频的中间部分,所以 x 不用偏移,故传入0,而 y 则需要向下偏移:(1920 – 1080) / 2 = 420

4. Operación de imagen

4.1 Fusionar imágenes en videos

Primero, coloque las imágenes que desea fusionar en una carpeta y luego cámbieles el nombre a: img001.png, img002.png, img003.png, de modo que .

Finalmente, ejecute el comando para fusionar imágenes en videos:

ffmpeg -framerate 24 -i img%03d.png output.mp4
#或者
ffmpeg -r 0.5 -i  img%03d.jpg  video.avi

4.2 Conversión de imágenes y videos

El comando es el siguiente:

#将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg

#将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg

#截取一张352x240尺寸大小的,格式为jpg的图片:
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg

#把视频的前30帧转换成一个Animated Gif :
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

#在视频的第8.01秒处截取 352*240 的缩略图
ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg
ffmpeg -r 0.5 -i d:/tmpImg/image%04d.jpg -i d:/time.mp3 -vcodec mpeg4 d:/video5.avi

5. Comandos de uso común de FFmpeg

Los siguientes son comandos comunes para la conversión de formato ffmpeg, compresión de video, fusión y corte de videos:

# 去掉视频中的音频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝

# 提取视频中的音频
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝

# 音视频合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆盖输出文件

#剪切视频
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 开始时间; -t 持续时间

#视频截图
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 设置分辨率; -f 强迫采用格式fmt;

# 视频分解为图片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏频率

# 将图片合成视频
ffmpeg -f image2 -i image%d.jpg output.mp4

#视频拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4

#将视频转为gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定编码

#将视频前30帧转为gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif

#旋转视频
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4

#缩放视频
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比

#视频变速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4

#音频变速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3

#音视频同时变速,但是音视频为互倒关系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4


# 视频添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;

# 截取视频局部
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4

# 截取部分视频,从[80,60]的位置开始,截取宽200,高100的视频
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4

# 截取右下角的四分之一
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4

# 截去底部40像素高度
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4

6. Efectos del software FFmpeg

La siguiente es una demostración del efecto de video comprimido FFmpeg (el tamaño del video es inferior a 1,3 MB):

La siguiente es una imagen animada convertida por FFmpeg a WebP (menos de 700 KB, haga clic para ver la animación):

7. Resumen

FFmpeg es un artefacto de conversión de formatos, aunque no es tan conveniente de usar como el cliente, siempre que domine algunos comandos básicos, puede completar la conversión y compresión de volumen de MP4, FLV, Gif, WebP y otros formatos. Es común en las plataformas Windows y Linux.

Al mismo tiempo, FFmpeg también es adecuado para usuarios profesionales. Si tiene requisitos específicos para video, audio y otros formatos, puede consultar los parámetros oficiales de FFmpeg. Solo necesita agregar algunos parámetros al formato de conversión y comprimirlos. vídeo. La velocidad de conversión y compresión es muy rápida.

Deja una respuesta