Herramientas de usuario

Herramientas del sitio


informatica:software:ffmpeg

¡Esta es una revisión vieja del documento!


ffmpeg

FFplay

Con la instalacción de FFmpeg se incluye FFplay, un sencillo reproductor multimedia que suele usarse para probar filtros de FFmpeg.

ffplay -vf "drawtext=text='Vacaciones 2023':y=h-text_h-10:x=(w/2-text_w/2):fontsize=20" video.mkv

Durante la reproducción:

Acción Tecla
Alterna pantalla completa F
Pausa/reanuda la reproducción Space
Alternar silenciar M
Salir Q, Esc
Avanzar fotograma a fotograma S

ffprobe

La instalación de FFmpeg también incluye la herramienta ffprobe que permite obtener información de archivos multimedia.

ffprobe video.mp4

Ejemplo de salida:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb_sunflower_1080p_60fps_normal.mp4':
  Metadata:
[...]
    title           : Big Buck Bunny, Sunflower version
    artist          : Blender Foundation 2008, Janus Bager Kristensen 2013
[...]
  Stream #0:0[0x1](und): Video: h264 [...]
[...]
  Stream #0:1[0x2](und): Audio: mp3 [...]
[...]
  Stream #0:2[0x3](und): Audio: ac3 [...]

Si queremos obtener la información en formato JSON:

ffprobe -v error -hide_banner -print_format json -show_streams video.mp4
  • -v error: solo mostrar información extra si hay error.
  • -hide_banner: ocultar información sobre la compilación de FFmpeg
  • -print_format: formato en el que presentar la información.
  • -show_streams: solo mostrar información de los streams.

Soporte de códecs y formatos

Para saber qué códecs soporta la compilación de ffmpegque tengamos en nuestro sistema:

ffmpeg -codecs

Ejemplos de códecs:

  • H.264 (AVC, MPEG-4)
  • H.265 (HEVC)
  • AAC
  • MP3
  • OGG

Para saber los formatos de ficheros:

ffmpeg -formats

Ejemplos de formatos:

  • AVI
  • Matroska (MKV)
  • Ogg

Convertir vídeos a MP4

ffmpeg -i example.mov -f mp4 -vcodec libx264 -preset fast -profile:v main -acodec aac example.mp4 -hide_banner
  • -f mp4: indicamos que el archivo de salida tendrá el formato mp4
  • -vcodec libx264: códec de vídeo a usar (libx264 es el codificador de vídeo H264)
  • -preset fast: perfil a usar con el códec libx264. Están disponibles ultrafast, superfast, veryfast, faster, fast, medium, slow, slower o veryslow. Las preconfiguraciones lentas producen una mejor calidad de vídeo en menos espacio, pero llevará más tiempo el procesado.
  • -profile:v main: indicamos al codificador cierto perfil para usar opciones avanzadas para mejorar la compresión. Están disponibles baseline, main, high, high10, high422 y high444
  • -acodec aac: códec de audio a emplear. En este caso aac codec.
  • -hide_banner: si queremos ocultar la información sobre el proceso de ffmpeg.

Grabar streaming

ffmpeg -i rtsp://usuario:contraseña@servidor.com:443/stream -vcodec copy prueba.mp4

Ejemplo para cámara Foscam:

ffmpeg -t 00:10:00 -i "rtsp://user:pass@192.168.0.3:443/videoMain" -vcodec copy -acodec copy foscam.mkv

Duración de la grabación

ffmpeg -t 00:10:00 -i rtsp://usuario:contraseña@servidor.com:443/stream -vcodec copy "prueba-$(date +%F).mp4"
  • -t indica la duración. Se puede indicar en segundos o en formato hh:mm:ss.

Grabación de segmentos

Para hacer cortes en una grabación continua:

ffmpeg -i rtsp://ip.cam/unicast -vcodec copy -map 0 -f segment -segment_time 30 -segment_format mp4 "video-%03d.mp4"
  • vcodec
  • map
  • f
  • segment_time: duración de los segmentos en segundos.

El anterior comando creará ficheros de 30 segundos con el formato video-xxx.mp4, donde xxx va desde 000 hasta 999.

Edición

Cortar fragmento

Si queremos cortar un trozo de cierto vídeo sin realizar una recodificación:

ffmpeg -i video.mp4 -ss 02:00 -to 10:00 -c copy resultado.mp4
  • ss: indica desde dónde se hace el corte (mm:ss)
  • to: indica hasta dónde se hace el corte (mm:ss)

Casos de uso

  • Procesamiento de vídeo:
    • Rotar
    • Extracción de frames
    • Extracción de segmentos
    • Extracción de audio
    • Extracción de subtítulos
    • Conversión de colores
    • Reducción de tamaño
    • Conversión de formatos
      • Convertir GIF en vídeo
  • Procesamiento de audio:
    • Compresión de vídeo
    • Normalización
    • Ganancia
    • Remuxing
  • Empaquetado de vídeo
    • HLS
    • MPEG-DASH
    • RTMP

Webcam

Para ver el fichero asociado con la webcam:

v4l2-ctl --list-devices

Para ver los formatos soportados por la webcam:

v4l2-ctl --list-formats-ext --device /dev/video0

Grabar un fragmento

El siguiente comando activará la webcam y grabará durante 10 segundos. El resultado se almacenará en el fichero 10seconds_of_webcam.webm.

ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -t 10 -i /dev/video0 10seconds_of_webcam.webm

Recursos

informatica/software/ffmpeg.1697113880.txt.gz · Última modificación: por tempwin