FFmpeg

Fmpeg es el framework multimedia líder para decodificar, codificar, transcodificar, mux, demux, transmitir, filtrar y reproducir. FFmpeg soporta una amplia variedad de formatos de vídeo y puede utilizar la aceleración de hardware para minimizar el tiempo de conversión.

FFmpeg funciona en windows, linux y Mac OS.

He preparado unas notas sobre ffmpeg, estas anotaciones no persiguen un orden específico, las escribo conforme utilizo ffmpeg.

Índice:
1. Instalación en Windows 10.
2. Cortar una parte del video sin recodificación.
3. Concatenar videos.




1. Instalación en Windows 10. [Ir al índice]

  1. Descargar FFmpeg de https://ffmpeg.zeranoe.com/builds/ seleccionanado la versión más nueva, la arquitectura deseada (64 o 32 bits) y en Linking seleccionar Shared.
  2. Descomprimir el archivo descargado, se generará una carpeta con el mismo nombre. Este archivo descargado contiene los ejecutables listos para usar.
  3. Por facilidad renombrar la carpeta a ffmpeg y moverla al directorio raiz de windows, ej. c:/
  4. Para probar el funcionamiento de FFmpeg. 
    1. Abrir la consola de windows ( oprimir la tecla Windows, luego escribir cmd y oprimir Enter)
    2. En la consola ir al directorio de binarios de ffmpeg: cd c:/ffmpeg/bin
    3. En la consola escribir ffmpeg.exe -version
    4. Se desplegará la versión de ffmpeg además de la configuración del build. 



    2. Cortar una parte del video sin recodificación. [Ir al índice]

    ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:00:10.000 -t 00:01:00.000 output.mp4

    -ss es el tiempo de inicio, -t es la duración. En el ejemplo se obtiene un video de 1 minuto, el cual fue tomado de input.mp4, iniciando en el segundo 10 y con una duración de 1 minuto. Las opciones --vcodec copy and -acodec copy son usadas para deshabilitar la recodificación.


    3. Concatenar videos. [Ir al índice]

    ffmpeg -f concat -i lista.txt -c copy output.mp4

    El archivo lista.txt contiene todos los archivos que van a ser concatendaos. Ejemplo:

    file 'parte1.mp4'
    file 'parte2.mp4'
    file 'parte3.mp4'


    4. Acelerar video a 2X. [Ir al índice]

    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

    4.1  acelerar a 1.2

    ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.833*PTS[v];[0:a]atempo=1.2[a]" -map "[v]" -map "[a]" -max_muxing_queue_size 1024 output.mp4

    La regla es  atempo representan las Xs y setpts = 1/atempo
    De esta manera para:
    • 1.2X =  atempo = 1.2 entonces setpts = 1/atempo es decir setpts = 0.833
    • 1.1X =  atempo = 1.1 entonces setpts = 1/atempo es decir setpts = 0.909


    https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video


    5. Reemplazar audio de video. [Ir al índice]

    ffmpeg -i fast.mp4 -i audio.ogg -map 0:0 -map 1:0 -c:v copy -c:a aac -b:a 256k -shortest OUTPUT.mp4



    6. Codificar o transcodificar video a MP4. [Ir al índice]

    El archivo de entrada en este ejemplo es input.mp4. El archivo puede ser de cualquier tipo.

    ffmpeg -i input.mp4 OUTPUT.mp4



    7. Extraer frames de videos. [Ir al índice]

    exportar keyframes
    ffmpeg -i in.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr frames/img%04d.jpg -hide_banner 

    exportar todos los frames
    ffmpeg -i in.mp4 frames/thumb%04d.jpg -hide_banner 

    exportar 5 frames por segundo
    ffmpeg -i in.mp4 -vf fps=5 frames/thumb%04d.jpg -hide_banner



    8. Generar video a partir de una imagen y un MP3

    ffmpeg -loop 1 -i image.jpg -i music.mp3 -vf "scale='min(1280,iw)':-2,format=yuv420p" -c:v libx264 -preset veryslow -profile:v main -c:a aac -shortest -movflags +faststart output.mp4

    PRESET ultrafast:

    ffmpeg -loop 1 -i image.jpg -i music.mp3 -vf "scale='min(1280,iw)':-2,format=yuv420p" -c:v libx264 -preset ultrafast -profile:v main -c:a aac -shortest -movflags +faststart output.mp4


    No hay comentarios.:

    Publicar un comentario