elmohino

FFmpeg: codificación audio/vídeo por línea comandos [uso avanzado]

12 posts en este tema

FFmpeg es una colección de software libre que puede convertir (transcodificar) audio y vídeo. FFmpeg está desarrollado en GNU/Linux, pero puede ser compilado en la mayoría de los sistemas operativos, incluyendo Windows. Desde el abandono del proyecto MEncoder, FFmpeg se ha convertido en la mejor opción para codificación audio-vídeo en GNU/Linux, una auténtica navaja suiza de la codificación.
 
FFmpeg es un programa bastante sencillo y muy fácil de usar, orientado tanto a personas con conocimientos avanzados como usuarios novatos. Es capaz de elegir el códec con sólo escribir la extensión. Por ejemplo, FFmpeg usará x264 si se elige .mp4, mpeg4 si se usa .avi, VP8 si se usa .webm, etc...
 
 
 
 
# INSTALACIÓN EN DEBIAN, UBUNTU Y DERIVADOS:
 
          sudo apt-get install ffmpeg
 
 
Sin embargo, en los repositorios no suele estar la última versión de FFmpeg con los últimos codificadores y decodificadores. Para poder usar la última versión es necesario utilizar FFmpeg binario [NOTA: con FFmpeg binario no es posible codificar en audio AAC+].
 
 
 
 
 
# DESCARGA E INSTALACIÓN DE FFmpeg BINARIO:
 
&& Descarga:
 
          http://johnvansickle.com/ffmpeg/
 
 
En la página anterior descargar "ffmpeg-release-32bit-static.tar.xz" (para sistemas de 32 bits) o "ffmpeg-release-64bit-static.tar.xz" (para sistemas de 64 bits).
 
Una vez descargado el paquete "ffmpeg-release-*bit-static.tar.xz" solamente es necesario extraer el binario "ffmpeg":
 
          tar -Jxf ffmpeg-release-*bit-static.tar.xz --wildcards ffmpeg*bit-static/ffmpeg -O > ffmpeg
 
&& Instalación:
 
Antes de instalar este FFmpeg binario, es necesario cambiar de nombre al FFmpeg instalado por repositorio o de origen (si lo está) para que no haya conflictos entre ellos. Primero es necesario localizar la ruta del FFmpeg antiguo:
 
          which ffmpeg
 
Si el comando anterior, por ejemplo, arroja la ruta '/usr/bin/ffmpeg', para renombrarlo ejecutar:
 
          sudo mv /usr/bin/ffmpeg /usr/bin/ffmpeg_old
 
Una vez renombrado el FFmpeg antiguo, se procede a instalar el FFmpeg binario:
 
          sudo install ffmpeg /usr/local/bin
 
A partir de este momento, cada vez que se invoque el uso de FFmpeg el sistema usará la versión binaria en el directorio '/usr/local/bin'
 
No obstante, se puede seguir usando el antiguo FFmpeg, sobre todo si se desea codificar audio en AAC+, invocándolo con su nuevo nombre:
 
          ffmpeg_old
 
En el caso que se desee codificar H.264 con profundiad de color a 10 bits o VP9 con profundidad de color a 10 ó 12 bits, será necesario también extraer e instalar el binario "ffmpeg-10bit":
 
          tar -Jxf ffmpeg-release-*bit-static.tar.xz --wildcards ffmpeg*bit-static/ffmpeg-10bit -O > ffmpeg-10bit
 
          sudo install ffmpeg-10bit /usr/local/bin
 
 
 
 
 
 
 
 
 
 
# CODIFICACIÓN VÍDEO:
 
  && Xvid:
 
- convertir un archivo de vídeo en códec Xvid de bitrate variable y contenedor AVI con sonido MP3:
 
          ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn "[nombre_archivo_salida].avi"
 
         * Donde:
 
            -f = formato del archivo de salida
            -c:v = tipo de códec de vídeo
            -vtag = etiqueta de vídeo (necesaria para algunos reproductores)
            -q:v = nivel de calidad del vídeo (a menor número, mayor calidad. Valores recomendados: 3 ó 2)
            -c:a = tipo de códec de audio
            -b:a = bitrate del audio
            -ar = tasa de frecuencia del audio
            -ac = número de canales del audio
            -sn = no incrustar subtítulos (en el caso de que el archivo de entrada los incorporara)
 
 
- convertir un archivo de vídeo en códec Xvid de bitrate variable y contenedor AVI con sonido AC3(Dolby Digital Surround):
 
          ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a ac3 -b:a 384k -ar 48000 -ac 6 -sn "[nombre_archivo_salida].avi"
 
 
- convertir un archivo de vídeo en códec Xvid de bitrate variable y contenedor AVI con sonido PCM(WAV):
 
          ffmpeg -i "[nombre_archivo_entrada]" -threads auto -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a pcm_s16le -ar 48000 -ac 2 "[nombre_archivo_salida].avi"
 
 
- convertir un archivo de vídeo en códec Xvid de bitrate variable y contenedor AVI copiando el audio original:
 
          ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a copy -sn "[nombre_archivo_salida].avi"
 
 
La codificación con bitrate variable en Xvid es la más recomendada para obtener la mejor calidad de imagen. Si se desea conseguir un tamaño predeterminado del archivo codificado, es necesario usar la codificación a doble pasada con bitrate constante:
 
 
- convertir un archivo de vídeo en códec Xvid de bitrate constante a dos pasadas y contenedor AVI con sonido MP3:
 
   * Primera pasada:
 
       ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag XVID -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -bf 2 -b:v 1500k -an -pass 1 -y /dev/null
 
   * Segunda pasada:
 
          ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag XVID -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -bf 2 -b:v 1500k \
                      -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -pass 2 "[nombre_archivo_salida].avi"

 
          * Donde:
 
              -f = formato del archivo de salida
              -c:v = tipo de códec de vídeo
              -vtag = etiqueta de vídeo (necesaria para algunos reproductores)
              -b:v = bitrate del vídeo
              -an = no codificar el audio
              -pass = número de pasada
              -y = sobreescribir archivo de salida sin pedir confirmación
              /dev/null = no codificar archivo
              -c:a = tipo de códec de audio
              -b:a = bitrate del audio
              -ar = tasa de frecuencia del audio
              -ac = número de canales del audio
 
              *NOTA: la primera pasada no codifica archivo alguno, sino que calcula los valores más óptimos para la verdadera codificación en la segunda pasada. Los valores más óptimos se guardarán en el archivo nuevo de texto que se creará con el nombre de "ffmpeg2pass-0.log". Por consiguiente, no borrar el anterior archivo si se desea que se utilice en la segunda pasada.
 
              *NOTA: para calcular cuál es el bitrate de vídeo necesario para conseguir un determinado tamaño del archivo codificado, usar la siguiente fórmula de cálculo:
 
                  nº de MB deseados x 8388.608 / nº de segundos de duración - nº bitrate de audio - 10
 
                  gif.latex?\bg_white&space;\small&space;n

 


                                                  MB deseados x 8388.608
                  BITRATE VÍDEO= -------------------------------- - BITRATE AUDIO - 10
                                                         SEG. duración
 
                 gif.latex?\bg_white&space;\small&space;B              

 

 

 

            *Ejemplo: calcular el bitrate de vídeo de una película de 90 min de duración (90min x 60s = 5400s) y con un bitrate de audio de 128kbps fijando su tamaño final de codificación aproximado en 700 MB
 
                            700 x 8388.608
                  -------------------------------- - 128 - 10 = 949kbps de bitrate de vídeo
                                  5400
 
                        gif.latex?\bg_white&space;\small&space;\  

 


                700 x 8388.608 / 5400 - 128 - 10 = 949kbps de bitrate de vídeo
 
                gif.latex?\bg_white&space;\small&space;7  

 

 


- convertir directamente desde un DVD en códec Xvid de bitrate variable y contenedor AVI copiando el audio original:
 
    * Primero localizar en el DVD o carpeta DVD los archivos VTS que corresponden a la película principal (VTS_01_1.VOB, VTS_01_2.VOB ...)
 
    * A continuación comprobar el índice de pistas de vídeo y audio incluidas en la película principal [NOTA: el DVD no debe tener protección anticopia]:
 
       ffmpeg -i /ruta/del/DVD/VIDEO_TS/VTS_01_1.VOB
 
    > Ejemplo:
 
[...]
 
Input #0, mpeg, from 'VTS_01_1.VOB':
Duration: 00:28:40.62, start: 0.287267, bitrate: 4990 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [sAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:3[0x81]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s
At least one output file must be specified
 
[...]
 
   * En el ejemplo anterior las pistas de audio disponibles son la 0:2 y la 0:3, y la pista de vídeo la 0:1
 
   * Una vez localizados los archivos VTS de la película principal y sus pistas de audio, para codificar la pista de vídeo de, por ejemplo, seis archivos VTS y copiar la pista de audio 0:2:
 
       cat /ruta/del/DVD/VIDEO_TS/VTS_01_{1..6}.VOB | ffmpeg -i - -f avi -c:v libxvid -vtag xvid -map 0:1 -q:v 3 -map 0:2 -c:a copy -sn "[nombre_archivo_salida].avi"
 
          * Donde:
 
               -map = indica a FFmpeg la pista que debe codificar o copiar
 
 
 
- convertir automáticamente los archivos de vídeo con extensión *.mkv de un directorio en códec Xvid de bitrate variable y contenedor AVI con sonido AC3:
 
       for FILE in *.mkv; do ffmpeg -i "${FILE}" -f avi -c:v libxvid -vtag XVID -q:v 3 -c:a ac3 -b:a 384k -ar 48000 -ac 2 -sn "${FILE/%mkv/avi}"; done
 
 
&& H.264:
 
- convertir un archivo de vídeo en códec h264 de bitrate variable y contenedor MP4 con sonido AAC:
 
    * NOTA: se recomienda que el bitrate del sonido AAC sea superior a 32kbps. Para bitrates iguales o inferiores a 32kbps usar el codificador "libfdk_aac -profile:a aac_he_v2"
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 22 -preset medium -tune film -c:a aac -b:a 320k -ac 6 -sn "[nombre_archivo_salida].mp4"
 
          * Donde:
 
                -crf = nivel de calidad del vídeo (a menor número, mayor calidad. Valores recomendados: entre 22 y 18)
                -crf 18 = calidad de vídeo cercana al original
                -crf 23 = por defecto
                -crf 0 = mantener la misma calidad que el original
                -preset = velocidad de codificación (a menor velocidad, menor tamaño)
                -preset [de más rápido a más lento]: ultrafast | superfast | veryfast | faster | medium (por defecto) | slow | slower | veryslow
                -tune = optimizar codificación según tipo de imagen
                -tune film (imágenes reales) | animation (dibujos animados) | grain (mantener el grano de la imagen) | stillimage (imágenes fijas)
 
 
- convertir un archivo de vídeo en códec h264 de bitrate variable y contenedor MKV con sonido AC3:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 22 -preset medium -tune film -c:a ac3 -b:a 384k -ar 48000 -ac 6 -sn "[nombre_archivo_salida].mkv"
 
 
- convertir un archivo de vídeo en códec h264 de bitrate variable con profundidad de color a 10 bits y contenedor MKV con sonido AC3:
 
        * IMPORTANTE: no todos los reproductores de sobremesa soportan la reproducción de un vídeo con profundidad de color a 10 bits
 
        * NOTA: se requiere usar el binario "ffmpeg-10bit"
 
       ffmpeg-10bit -i "[nombre_archivo_entrada]" -c:v libx264 -pix_fmt yuv420p10le -crf 22 -preset medium -tune film -c:a ac3 -b:a 384k -ar 48000 -ac 6 -sn "[nombre_archivo_salida].mkv"
 
 
- convertir un archivo de vídeo en códec h264 de bitrate variable y contenedor MKV con sonido DTS [NOTA: no usar la opción "-ac"]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 22 -preset medium -tune film -c:a dca -b:a 1536k -ar 48000 -strict -2 -sn "[nombre_archivo_salida].mkv"
 
 
- convertir un archivo de vídeo en códec h264 de bitrate variable y contenedor MP4 con sonido AAC+ [NOTA: el audio AAC+ no puede tener más de 265kbps]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 22 -preset medium -tune film -c:a libfdk_aac -profile:a aac_he -b:a 64k -ar 44100 -ac 2 -sn "[nombre_archivo_salida].mp4]"
 
 
- convertir un archivo de vídeo en códec h264 de bitrate variable y contenedor MP4 con sonido AAC+ paramétrico (útil a no más de 48kbps) [NOTA: el audio AAC+ no puede tener más de 64kbps y los canales siempre a 2]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 22 -preset medium -tune film -c:a libfdk_aac -profile:a aac_he_v2 -b:a 64k -ar 44100 -ac 2 -sn "[nombre_archivo_salida].mp4"
 
 
- convertir un archivo de vídeo en códec h264 de bitrate variable, contenedor MP4 con sonido AAC y fijando un bitrate máximo de vídeo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 22 -preset medium -tune film -maxrate 5000k -bufsize 1835k -c:a aac -b:a 320k -ac 6 -sn "[nombre_archivo_salida].mp4"
 
            * Donde:
 
                  -maxrate = bitrate máximo de vídeo a codificar
 
 
- convertir un archivo de vídeo en códec h264 de bitrate constante a dos pasadas y contenedor MP4 con sonido AAC:
 
* Primera pasada:
 
       ffmpeg -i "[nombre_archivo_entrada]" -an -c:v libx264 -pass 1 -preset medium -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k -x264opts frameref=15:fast_pskip=0 -f rawvideo -sn \
                      -y /dev/null

 
* Segunda pasada:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -pass 2 -preset medium -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k -x264opts frameref=15:fast_pskip=0 -c:a aac -b:a 320k \
                      -ac 6 -pass 2 -sn "[nombre_archivo_salida].mp4"

 
           * Donde:
 
                  -maxrate = bitrate máximo de vídeo a codificar
                  -minrate = bitrate mínimo de vídeo a codificar
 
 
&& VP9:
 
- convertir un archivo de vídeo en códec a VP9 de bitrate variable, contenedor WebM y sonido Vorbis:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libvpx-vp9 -crf 27 -b:v 0 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -speed 1 -c:a libvorbis -b:a 128k \
                      -ar 48000 -ac 2 "[nombre_archivo_salida].webm"
 
       * Donde:
                  livpx-vp9 -lossless 1 -b:v 0 = manterner la misma calidad que el original

- convertir un archivo de vídeo en códec a VP9 de bitrate variable con profundidad de color a 10 ó 12 bits, contenedor WebM y sonido Vorbis:
 
         * NOTA: se requiere usar el binario "ffmpeg-10bit"
 
* con profundidad de color a 10 bits:
 
       ffmpeg-10bit -i "[nombre_archivo_entrada]" -c:v libvpx-vp9 -pix_fmt yuv420p10le -crf 27 -b:v 0 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -speed 1 -c:a libvorbis -b:a 128k \
                                -ar 48000 -ac 2 "[nombre_archivo_salida].webm"

 
* con profundidad de color a 12 bits:
 
       ffmpeg-10bit -i "[nombre_archivo_entrada]" -c:v libvpx-vp9 -pix_fmt yuv420p12le -crf 27 -b:v 0 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -speed 1 -c:a libvorbis -b:a 128k \
                                -ar 48000 -ac 2 "[nombre_archivo_salida].webm"
 
 
- convertir un archivo de vídeo en códec a VP9 de bitrate variable, contenedor WebM y sonido Opus:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libvpx-vp9 -crf 27 -b:v 0 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -speed 1 -c:a libopus -b:a 128k \
                      -ar 48000 -ac 2 "[nombre_archivo_salida].webm"
 
 
- convertir un archivo de vídeo en códec a VP9 de bitrate variable, contenedor WebM y sonido Vorbis indicando el bitrate máximo de vídeo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libvpx-vp9 -crf 27 -b:v 5000k -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -speed 1 -c:a libvorbis -b:a 128k \
                      -ar 48000 -ac 2 "[nombre_archivo_salida].webm"

 
 
- convertir un archivo de vídeo en códec a VP9 de bitrate fijo, contenedor WebM y sonido Vorbis:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libvpx-vp9 -minrate 1000k -maxrate 1000k -b:v 1000k -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -speed 1 \
                      -c:a libvorbis -b:a 128k -ar 48000 -ac 2 "[nombre_archivo_salida].webm"
 
 
&& H.265:
 
- convertir un archivo de vídeo en códec a h265 de bitrate variable, contenedor MP4 y sonido AAC:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx265 -x265-params crf=19 -preset slow -c:a aac -b:a 320k -ac 6 -sn "[nombre_archivo_salida].mp4"
 
           * Donde:
 
                    crf=28 = por defecto                
                    -x265-params lossless=1 = mantener la misma calidad que el original
 

- convertir un archivo de vídeo en códec a h265 de bitrate variable con profundidad de color a 10 ó 12 bits, contenedor MP4 y sonido AAC:
 
* con profundidad de color a 10 bits:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx265 -pix_fmt yuv420p10le -x265-params crf=19 -preset slow -c:a aac -b:a 320k -ac 6 -sn "[nombre_archivo_salida].mp4"
 
* con profundidad de color a 12 bits:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx265 -pix_fmt yuv420p12le -x265-params crf=19 -preset slow -c:a aac -b:a 320k -ac 6 -sn "[nombre_archivo_salida].mp4"
 
 
- convertir un archivo de vídeo en códec a h265 de bitrate variable, contenedor MP4 y sonido AAC indicando el bitrate máximo de vídeo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx265 -x265-params crf=19 -maxrate 5000k -bufsize 1835k -preset slow -c:a aac -b:a 320k -ac 6 -sn "[nombre_archivo_salida].mp4"
 
 
- convertir un archivo de vídeo en códec a h265 de bitrate fijo, contenedor MP4 y sonido AAC:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx265 -x265-params frameref=15:fast_pskip=0 -minrate 1000k -maxrate 1000k -b:v 1000k -bufsize 1835k -c:a aac -b:a 320k \
                      -ac 6 -sn "[nombre_archivo_salida].mp4"

 
 
 
&& Windows Media Video:
 
- convertir un archivo de vídeo en códec a Windows Media Video de bitrate fijo, contenedor WMV y sonido Windows Media Audio:
 
       ffmpeg -i "[nombre_archivo_entrada]" -b:v 1000k -c:v wmv2 -c:a wmav2 -ar 44100 -b:a 64k -ac 2 -sn "[nombre_archivo_salida].wmv"
 
 
&& MPEG-2 (SVCD):
 
- convertir un archivo de vídeo en códec MPEG-2 (SVCD), contenedor MPG y sonido MP2:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v mpeg2video -b:v 1152k -c:a mp2 -ac 2 -b:a 224k "[nombre_archivo_salida].mpg"
 
 
&& FLV:
 
- convertir un archivo de vídeo en códec FLV, contenedor FLV y sonido MP3:
 
       ffmpeg -i "[nombre_archivo_entrada]" -f flv -b:v 700k -ar 44100 -b:a 128k "[nombre_archivo_salida].flv"
 
 
&& H.263 (teléfonos móviles antiguos):
 
- convertir un archivo de vídeo en códec h263, contenedor .3gp y sonido ARM [NOTA: las dimensiones del vídeo no pueden ser superiores a 176x144 píxeles]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf scale=176:144 -b:v 400k -c:a libopencore_amrnb -ar 8000 -ac 1 -b:a 12.2k "[nombre_archivo_salida].3gp"
 
 
 
 
# CODIFICACIÓN AUDIO:
 
 
- convertir un archivo de audio o vídeo a sonido WAV:
 
       ffmpeg -i "[nombre_archivo_entrada]" "[nombre_archivo_salida].wav"
 
 
- convertir un archivo de audio o vídeo multicanal a sonido estéreo WAV:
 
       ffmpeg -i "[nombre_archivo_entrada]" -ac 2 "[nombre_archivo_salida].wav"
 
 
- convertir un archivo de audio o vídeo a sonido AMR-NB:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:a libopencore_amrnb -ar 8000 -ac 1 -b:a 12.2k "[nombre_archivo_salida].amr"
 
 
- convertir un archivo de audio a sonido Ogg Vorbis con bitrate constante (bitrate mínimo por canal: 32k, bitrate máximo por canal: 240k):
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:a libvorbis -b:a 45k -ar 44100 -ac 2 "[nombre_archivo_salida].ogg"
 
 
- convertir un archivo de audio a sonido Ogg Vorbis con bitrate variable [niveles de calidad: de "-q:a 0" a "-q:a 10" (mayor número, mayor calidad)]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:a libvorbis -q:a 3 -ar 44100 -ac 2 "[nombre_archivo_salida].ogg"
 
 
- convertir un archivo de vídeo a sonido Ogg Vorbis con bitrate constante (bitrate mínimo por canal: 32k, bitrate máximo por canal: 240k):
 
       ffmpeg -i "[nombre_archivo_entrada]" -vn -c:a libvorbis -b:a 45k -ar 44100 -ac 2 "[nombre_archivo_salida].ogg"
 
             * Donde:
 
                    -vn = no codificar la pista de vídeo
 
 
- convertir un archivo de audio o vídeo a sonido FLAC:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:a flac -compression_level 12 "[nombre_archivo_salida].flac"
 
 
- convertir un archivo de audio o vídeo a sonido MP3 con bitrate constante [bitrate: mín. 32k, máx. 320k]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:a libmp3lame -b:a 128k -ar 44100 -ac 2 "[nombre_archivo_salida].mp3"
 
 
- convertir un archivo de audio o vídeo a sonido MP3 con bitrate variable [niveles de calidad: de "-q:a 0" a "-q:a 9" (menor número, mayor calidad)]:
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:a libmp3lame -q:a 0 -ar 44100 -ac 2 "[nombre_archivo_salida].mp3"
 
             * Donde:
 
                    -q:a 0 = entre 220k-260k
                    -q:a 1 = entre 190k-250k
                    -q:a 2 = entre 170k-210k
                    -q:a 3 = entre 150k-195k
                    -q:a 4 = entre 140k-185k
                    -q:a 5 = entre 120k-150k
                    -q:a 6 = entre 100k-130k
                    -q:a 7 = entre 80k-120k
                    -q:a 8 = entre 70k-105k
                    -q:a 9 = entre 45k-85k
 
 
- convertir un archivo de audio o vídeo a sonido AAC (codificador "aac") [bitrate mínimo por canal: 14k, bitrate máximo por canal: 265k]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a aac -b:a 320k -ar 44100 -ac 6 "[nombre_archivo_salida].m4a"
 
 
- convertir un archivo de audio o vídeo a sonido AAC (codificador "libfdk_aac") [bitrate mínimo por canal: 14k, bitrate máximo por canal: 265k]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a libfdk_aac -b:a 320k -ar 44100 -ac 6 "[nombre_archivo_salida].m4a"
 
 
- convertir un archivo de audio o vídeo a sonido AAC+ [bitrate mínimo: 12k (1 canal), bitrate máximo: 353k (8 canales)]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a libfdk_aac -profile:a aac_he -b:a 256k -ar 44100 -ac 6 "[nombre_archivo_salida].m4a"
 
 
- convertir un archivo de audio o vídeo a sonido AAC+ paramétrico (útil a no más de 48kbps) [NOTA: el rango de bitrate es de 12k a 64k y los canales de audio siempre a 2]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 20k -ar 44100 -ac 2 "[nombre_archivo_salida].m4a"
 
 
- convertir un archivo de audio o vídeo a sonido AC3 [bitrate: mín. 32k(1 canal), máx. 640k(6 canales)]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a ac3 -b:a 384k -ar 48000 -ac 6 "[nombre_archivo_salida].ac3"
 
 
- convertir un archivo de audio o vídeo a sonido E-AC3 [bitrate: mín. 19k(1 canal), máx. 6144k(6 canales)]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a eac3 -b:a 384k -ar 48000 -ac 6 "[nombre_archivo_salida].eac3"
 
 
- convertir un archivo de audio o vídeo a sonido DTS [bitrate: mín. 130k(1 canal), máx. 3840k] [NOTA: no usar la opción "-ac"]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a dca -b:a 1536k -ar 48000 -strict -2 "[nombre_archivo_salida].dts"
 
 
- convertir un archivo de audio a sonido ALAC:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a alac "[nombre_archivo_salida].m4a"
 
 
- convertir un archivo de vídeo a sonido ALAC:
 
      ffmpeg -i "[nombre_archivo_entrada]" -vn -c:a alac "[nombre_archivo_salida].m4a"
 
 
- convertir un archivo de audio a sonido WMA V2 (bitrate mínimo: 29k, bitrate máximo: 6600k; no más de 2 canales):
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a wmav2 -b:a 45k -ar 44100 -ac 2 "[nombre_archivo_salida].wma"
 
 
- convertir un archivo de vídeo a sonido WMA V2 (bitrate mínimo: 29k, bitrate máximo: 6600k; no más de 2 canales):
 
      ffmpeg -i "[nombre_archivo_entrada]" -vn -c:a wmav2 -b:a 45k -ar 44100 -ac 2 "[nombre_archivo_salida].wma"
 
 
- convertir un archivo de audio o vídeo a sonido Opus con bitrate variable [bitrate mínimo por canal: 7k, bitrate máximo por canal: 256k]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a libopus -b:a 45k -ac 2 -vn "[nombre_archivo_salida].opus"
 
 
- convertir un archivo de audio o vídeo a sonido Opus con bitrate constante [bitrate mínimo por canal: 7k, bitrate máximo por canal: 256k]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:a libopus -b:a 45k -vbr off -ac 2 -vn "[nombre_archivo_salida].opus"
 
 
- separar los canales de un audio 2.0 sin codificar:
 
      ffmpeg -i "[nombre_archivo_estéreo].ac3" -map_channel 0.0.0 -c copy "[nombre_archivo_salida_canal_izquierdo].ac3" -map_channel 0.0.1 -c copy "[nombre_archivo_salida_canal_derecho].ac3"
 
 
- unir 2 audios mono en un audio 2.0 [NOTA: no funciona la opción "-c copy"]:
 
      ffmpeg -i "[nombre_canal_izquierdo].ac3" -i "[nombre_canal_derecho].ac3" -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -c:a ac3 -b:a 448k "[nombre_archivo_salida].ac3"
 
 
- separar los canales de un audio 5.1:
 
      ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "channelsplit=channel_layout=5.1[FL][FR][FC][LFE][bL][bR]" -map "[FL]" front_left.wav -map "[FR]" front_right.wav -map "[FC]" \
                     front_center.wav -map "[LFE]" lfe.wav -map "[bL]" back_left.wav -map "[bR]" back_right.wav

 
             * Donde:
 
                    front_left.wav = canal frontal estéreo izquierdo
                    front_right.wav = canal frontal estéreo derecho
                    front_center.wav = canal frontal central (canal de diálogos)
                    lfe.wav = canal de sonidos graves/bajos (subwoofer)
                    back_left.wav = canal trasero envolvente izquierdo (surround)
                    back_right.wav = canal trasero envolvente derecho (surround)
 
 
- unir 6 audios mono en un audio 5.1 [NOTA: no funciona la opción "-c copy"]:
 
      ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[aout]" \
                  -map "[aout]" -c:a ac3 -b:a 640k "[nombre_archivo_salida].ac3"

 
 
- mezclar dos archivos de audio:
 
      ffmpeg -i "[nombre_archivo_audio01]" -i "[nombre_archivo_audio02]" -filter_complex amerge "[nombre_archivo_salida]"
 
 
 - realizar fundidos de audio:
 
* Fundido de silencio de audio hasta recuperar volumen:

ffmpeg -i "[nombre_archivo_entrada]" -af afade=t=in:st=(nºsegundos posición)=(nºsegundos duración) -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
      > Ejemplo: fundido durante los 5 primeros segundos:

ffmpeg -i "[nombre_archivo_entrada]" -af afade=t=in:st=0:d=5 -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
* Fundido de volumen de audio hasta silenciar volumen desde otra posición:

ffmpeg -i "[nombre_archivo_entrada]" -af afade=t=out:st=(nºsegundos posición)=(nºsegundos duración) -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
      > Ejemplo: fundido de los últimos 5 segundos de un audio de 33 segundos de duración. Posición donde empezar: 33-5=28

ffmpeg -i "[nombre_archivo_entrada]" -af afade=t=out:st=28:d=5 -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
* Fundido de silencio de audio hasta recuperar volumen y fundido de volumen de audio hasta silenciar volumen desde otra posición:

 ffmpeg -i "[nombre_archivo_entrada]" -af afade=t=in:st=(nºsegundos posición)=(nºsegundos duración),afade=t=out:st=(nºsegundos posición)=(nºsegundos duración) \
        -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
 
- convertir un archivo de audio o vídeo a audio subiendo o bajando su volumen:
 
      ffmpeg -i "[nombre_archivo_entrada]" -vn -af volume=1.5 -c:a ac3 -b:a 448k "[nombre_archivo_salida].ac3"
 
*EJEMPLOS:
<
-af volume=0.5 = -50%
-af volume=1 = 100% (normal)
-af volume=2 = 200%
-af volume=2.5 = 250%
-af volume=3 = 300%
-af volume=4 = 400%
-af volume=8 = 800%
>
 
 
- crear un archivo de silencio para un audio de 6 canales:

  ffmpeg -f lavfi -i aevalsrc=0:0:0:0:0:0:=(nºsegundos de silencio) -c:a ac3 -b:a 448k -ar 48000 "[nombre_archivo_salida].ac3"

 
 
*EJEMPLO.- Crear un silencio de 1,25 segundos:

  ffmpeg -f lavfi -i aevalsrc=0:0:0:0:0:0:=1.25 -c:a ac3 -b:a 448k -ar 48000 "[nombre_archivo_salida].ac3"

 
 
 
- crear un archivo de silencio para un audio de 2 canales:

  ffmpeg -f lavfi -i aevalsrc=0:0:=(nºsegundos de silencio) -c:a ac3 -b:a 448k -ar 48000 "[nombre_archivo_salida].ac3"

 
 
 
- crear un archivo de silencio para un audio de 1 canal:

  ffmpeg -f lavfi -i aevalsrc=0:=(nºsegundos de silencio) -c:a ac3 -b:a 192k -ar 48000 "[nombre_archivo_salida].ac3"

 
 
- disminuir la velocidad de reproducción de un audio procedente de un vídeo a 25,000fps(fotogramas por segundo) para sincronizarlo con un vídeo de 23,976fps (23,976/25,000=0,95904):
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter:a "atempo=0.95904" -c:a ac3 -b:a 448k "[nombre_archivo_salida].ac3"
 
 
- aumentar la velocidad de reproducción de un audio procedente de un vídeo a 23,976fps para sincronizarlo con un vídeo de 25,000fps (25,000/23,976=1,0427093760427094):
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter:a "atempo=1.0427093760427094" "[nombre_archivo_salida].wav"
 
 
- aumentar la velocidad de reproducción de un audio procedente de un vídeo a 23,976fps para sincronizarlo con un vídeo de 24,000fps (24,000/23,976=1,001001001001001):
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter:a "atempo=1.001001001001001" -c:a ac3 -b:a 192k "[nombre_archivo_salida].ac3"
 
 
- disminuir la velocidad de reproducción de un audio procedente de un vídeo a 25,000fps para sincronizarlo con un vídeo de 24,000fps (24,000/25,000=0,96):
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter:a "atempo=0.96" "[nombre_archivo_salida].wav"
 
 
- aumentar la velocidad de reproducción de un audio procedente de un vídeo a 24,000fps para sincronizarlo con un vídeo de 25,000fps (25,000/24,000=1,0416666666666667):
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter:a "atempo=1.0416666666666667" -c:a ac3 -b:a 640k "[nombre_archivo_salida].ac3"
 
 
- cambiar velocidad de reproducción de un audio para cambiar a una duración determinada (pasar la duración actual y la deseada del audio a segundos; dividir los segundos originales entre los segundos deseados):
 
       Ej.: aumentar duración de un audio de 5400s (90min) a 5700s (95min) --> 5400/5700=0,947368421
 
       ffmpeg -i "[nombre_archivo_entrada]" -threads auto -filter:a "atempo=0.947368421" "[nombre_archivo_salida].wav"
 
       Ej.: disminuir duración de un audio de 5700s (95min) a 5400s (90min) --> 5700/5400=1,055555556
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter:a "atempo=1.055555556" -c:a ac3 -b:a 192k "[nombre_archivo_salida].ac3"
 
 
 
 
# EDICIÓN Y MANIPULACIÓN:
 
 
- incrustar subtítulos:
 
   * Con subtítulos SRT:
 
      ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -vf subtitles="[nombre_archivo_subtítulo].srt" "[nombre_archivo_salida].avi"
 
   * Con subtítulos SRT imprimiéndoles formato:
 
      ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 \
                  -vf "subtitles=[nombre_archivo_subtítulo].srt:force_style='FontName=DejaVu Sans Bold,BorderStyle=3,Shadow=1,FontSize=36,PrimaryColour=&H0000FFFF'" "[nombre_archivo_salida].avi"
 
               * Donde:
 
                        FontName = indica el estilo de letra
                        BorderStyle = crea un fondo negro tras los subtítulos para mejor lectura
                        Shadow = crea un efecto sombra tras las letras
                        FontSize = indica el tamaño de las letras
                        PrimaryColour = indica el color de las letras
 
               * Algunos colores disponibles:
 
                        &H00000000 = Negro
                        &H000000FF = Rojo
                        &H0000FF00 = Amarillo claro
                        &H00FF0000 = Azul oscuro
                        &H00FFFF00 = Azul claro
                        &H00FF00FF = Turquesa
                        &H0000FFFF = Amarillo
                        &H00FFFFFF = Blanco
                        &H00808000 = Verde
                        &H008080FF = Naranja
                        &H00800080 = Rosa
                        &H00008080 = Marrón claro
                        &H00FF8080 = Lila
                        &H00555555 = Gris oscuro
                        &H00AAAAAA = Gris claro
 
                        > NOTA: para obtener subtítulos con transparencia cambiar &H00 por &HAA
 
   * Con subtítulos ASS:
 
      ffmpeg -i "[nombre_archivo_entrada]" -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -vf "ass=[nombre_archivo_subtítulo].ass" "[nombre_archivo_salida].avi"
 
   * Con subtítulos en formato DVD o Bluray incluidos en el vídeo de entrada:
 
      ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "[0:v][0:s]overlay[v]" -f avi -map "[v]" -c:v libxvid -vtag xvid -q:v 3 -an "[nombre_archivo_salida].avi"
 
    > NOTA: si el archivo de entrada incluye más de un subtítulo, cambiar [0:s] por [0:s:0] para el primer subtítulo, [0:s:1] para el segundo y así sucesivamente
 
    > NOTA: las dimensiones a codificar deber ser las mismas que tiene el archivo de entrada de los subtítulos
 
   * Con subtítulos en formato DVD separados del vídeo de entrada:
 
      ffmpeg -i "[nombre_archivo_entrada]" -i "[nombre_archivo_subtítulo].sub" -i "[nombre_archvio_subtítulo].idx" -filter_complex "[0:v][2:S]overlay[v]" -f avi -map "[v]" -c:v libxvid -vtag xvid -q:v 3 -an "[nombre_archivo_salida].avi"
 
     > NOTA: las dimensiones a codificar deber ser las mismas que tiene el archivo de entrada de los subtítulos
 
- redimensionar la anchura del vídeo manteniendo la relación de aspecto en la altura con respecto al archivo de entrada:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf scale=720:-1 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn "[nombre_archivo_salida].avi"
 
             * Donde:
 
                    -vf scale=720:-1 = se redimensiona la anchura del vídeo a 720 píxeles
 
 
- redimensionar la altura manteniendo la relación de aspecto en la anchura con respecto al archivo de entrada:

       ffmpeg -i "[nombre_archivo_entrada]" -vf scale=-1:480 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn "[nombre_archivo_salida].avi"
 
             * Donde:
 
                     -vf scale=-1:480 = se redimensiona la altura del vídeo a 480 píxeles
 
 
- redimensionar la anchura y altura a unos valores predeterminados:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf scale=720:480 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn "[nombre_archivo_salida].avi"
 
             * Donde:
 
                     -vf scale=720:480 = se redimensiona la anchura del vídeo a 720 píxeles y su altura a 480 píxeles
 
       * NOTA: los reproductores antiguos DivX no pueden reproducir vídeos de dimensiones superiores a 720:576
 
 
- calcular automáticamente qué dimensiones hay que recortar para suprimir bandas negras de un vídeo antes de codificarlo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf cropdetect=24:16:0 -an dummy.avi
 
       *NOTA: durante la creación del archivo 'dummy.avi' aparecerá en la línea de comandos las dimensiones recomendadas a recortar (NO es necesario esperar a que termine la codificación; puede interrumpirse pulsando CONTROL+C).
 
Ej.:
[...] crop=592:304:64:2
 
           * Donde:
 
                  crop=592:304:64:2 = se fija la anchura del vídeo a 592 píxeles, su altura se fija a 304 píxeles, la anchura se recorta a partir del píxel 64 y la altura se recorta a partir del píxel 2
 
       Para recortar según los valores recomendados en el ejemplo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf crop=592:304:64:2 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn "[nombre_archivo_salida].avi"
 
       El recorte es compatible con el redimensionado simultáneo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf crop=592:304:64:2 -vf scale=352:180 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn \
"[nombre_archivo_salida].avi"
 
 
- codificar un vídeo cambiando su número de fotogramas por segundo:
 
         ffmpeg -i "[nombre_archivo_entrada]" -vf fps=23.976 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a libmp3lame -b:a 320k -ar 48000 -ac 2 -sn "[nombre_archivo_salida].avi"
 
 
- convertir un fragmento predeterminado de un vídeo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -ss 00:20:45.25 -t 120.5 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a ac3 -b:a 384k -ar 48000 -ac 6 -sn "[nombre_archivo_salida].avi"
 
               * Donde:
 
                      -ss = indica que la codificación comience a partir del minuto 20, 45 segundos y 25 centésimas
                      -t = indica que la codificación dure 120 segundos y 5 décimas desde su comienzo indicado en -ss
 
       ffmpeg -i "[nombre_archivo_entrada]" -ss 00:20:45.25 -to 00:22:00.5 -f avi -c:v libxvid -vtag xvid -q:v 3 -c:a ac3 -b:a 384k -ar 48000 -ac 6 -sn "[nombre_archivo_salida].avi"
 
               * Donde:
 
                      -ss = indica que la codificación comience a partir del minuto 20, 45 segundos y 25 centésimas
                      -to = indica que la codificación termine en el minuto 22, 0 segundos y 5 décimas
 
 
- importar un FLV con vídeo h264 a .mp4:
 
       ffmpeg -i "[nombre_archivo_entrada].flv" -c:v copy -c:a copy "[nombre_archivo_salida].mp4"
 
 
- importar un .mov a .mp4:
 
       ffmpeg -i "[nombre_archivo_entrada].mov" -c:v copy -c:a copy "[nombre_archivo_salida].mp4"
 
 
- convertir un subtítulo SRT a ASS y viceversa:
 
       ffmpeg -i "[nombre_archivo_entrada].srt" "[nombre_archivo_salida].ass"
       ffmpeg -i "[nombre_archivo_entrada].ass" "[nombre_archivo_salida].srt"
 
 
- convertir un subtítulo VTT a SRT o ASS y viceversa:
 
       ffmpeg -i "[nombre_archivo_entrada].vtt" "[nombre_archivo_salida].srt"
       ffmpeg -i "[nombre_archivo_entrada].srt" "[nombre_archivo_salida].vtt"
       ffmpeg -i "[nombre_archivo_entrada].vtt" "[nombre_archivo_salida].ass"
       ffmpeg -i "[nombre_archivo_entrada].ass" "[nombre_archivo_salida].vtt"
 
 
- añadir a un archivo MP4 sin codificar uno o varios subtítulos en formato SRT, ASS o VTT:
 
       ffmpeg -i "[nombre_MP4_entrada].mp4" -i "[nombre_archivo_subtítulo_entrada01]" -i "[nombre_archivo_subtítulo_entrada02]" -map 0:0 -c:v copy -map 0:1 -c:a copy -map 1:0 -c:s:0 mov_text -map 2:0 \
                   -c:s:1 mov_text -f mp4 "[nombre_archivo_salida].mp4"
 
 
- añadir uno o más audios a un vídeo:
 
    * primero comprobar qué índice de pistas hay en el archivo:
 
       ffmpeg -i "[nombre_archivo_entrada]"
 
    * aparecerá algo parecido a esto:
 
[...]
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x404 [sAR 1:1 DAR 180:101], SAR 413696:413685 DAR 16384:9193, 25 tbr, 25 tbn, 25 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16, 320 kb/s
[...]
 
    * para añadir más audios:
 
      ffmpeg -i "[nombre_vídeo_entrada]" -i "[nombre_audio_entrada01]" -i "[nombre_audio_entrada02]" -map 0:0 -map 0:1 -map 1:0 -map 2:0 -c copy "[nombre_archivo_salida]"
 
             * Donde:
 
                     -map 0:0 = pista de vídeo del archivo "[nombre_vídeo_entrada]"
                     -map 0:1 = pista de audio del archivo "[nombre_vídeo_entrada]"
                     -map 1:0 = pista de audio del archivo "[nombre_audio_entrada01]"
                     -map 2:0 = pista de audio del archivo "[nombre_audio_entrada02]"
                     -c copy = no codifica ninguno de los archivos de entrada
 
 
 - añadir metadatos a un archivo AVI:
 
      ffmpeg -i "[nombre_archivo_entrada].avi" -metadata title=[título] -metadata artist=[artista_o_autor] -metadata date=[fecha] -metadata genre=[género] -metadata language=[idioma] \
                  -metadata track=[nº pista] -metadata encoded_by=[codificado por] -metadata comment=[comentario] -metadata album=[fuente_original] -metadata copyright=[derechos_de_autor] \
                  -c:v copy -c:a copy "[nombre_archivo_salida].avi"
 
 
 - añadir metadatos a archivos MP4, M4V, M4A, AAC y MOV:
 
      ffmpeg -i "[nombre_archivo_entrada]" -metadata title=[título] -metadata author=[artista_o_autor] -metadata album=[álbum] -metadata grouping=[agrupamiento] -metadata composer=[compositor] \
                  -metadata year=[fecha] -metadata track=[nº pista] -metadata comment=[comentario] -metadata genre=[género] -metadata copyright=[derechos de autor] -metadata description=[descripción] \
                  -metadata synopsis=[sinopsis o argumento] -metadata show=[espectáculo o programa] -metadata episode_id=[episodio] -metadata network=[canal de emisión] -metadata lyrics=[lírica] \
                  -c:v copy -c:a copy "[nombre_archivo_salida]"
 
 
 - añadir metadatos a archivos MKV:
 
      ffmpeg -i "[nombre_archivo_entrada]" -metadata title=[título] -metadata description=[descripción] -metadata language=[idioma] -c:v copy -c:a copy "[nombre_archivo_salida]"
 
        * NOTA: Matroska acepta la asignación de cualquier tipo de metadato
 
 
 - añadir metadatos a archivos WMV, VMA y ASF:
 
      ffmpeg -i "[nombre_archivo_entrada]" -metadata title=[título] -metadata author=[autor] -metadata copyright=[derechos de autor] -metadata comment=[comentarios] -metadata rating=[clasificación] \
                  -c:v copy -c:a copy "[nombre_archivo_salida]"
 
 
 - añadir metadatos a archivos MP3:
 
      ffmpeg -i "[nombre_archivo_entrada]" -metadata title=[título] -metadata author=[autor] -metadata album=[álbum] -metadata year=[año] -metadata comment=[comentario] -metadata track=[nº pista] \
                  -metadata genre=[género] -c copy "[nombre_archivo_salida]"
 
 
 - añadir metadatos a cada una de las pistas de un archivo:
 
      ffmpeg -i "[nombre_archivo_entrada]" -map 0:0 -c:v copy -map 0:1 -c:a copy -map 0:2 -c:a copy -map 0:3 -c:s copy -metadata:s:v:0 title="[título de la pista de vídeo]" \
                  -metadata:s:a:0 title="[título de la primera pista de audio]" -metadata:s:a:0 language=[código de idioma de la primera pista de audio] -metadata:s:a:1 title="[título de la segunda pista de audio]" \
                  -metadata:s:a:1 language=[código de idioma de la segunda pista de audio] -metadata:s:s:0 title="[título de la primera pista de subtítulos]" -metadata:s:s:0 \
                  language=[código de idioma de la primera pista de subtítulos]  "[nombre_archivo_salida]"
 
        * NOTA: en archivos AVI y MP4 no se acepta simultáneamente "title" y "language" y en algunos reproductores pueden mostrarse erróneamente los caracteres especiales (tildes, letra "ñ", diéresis, símbolos, etc.)
 
        * Algunos códigos de idioma:
 
                    spa = español
                    eng = inglés
                    fre = francés
                    ita = italiano
                    ger = alemán
                    arg = aragonés
                    ast = asturiano
                    baq = euskera
                    cat = catalán
                    chi = chino
                    fin = finlandés
                    glg = gallego
                    gre = griego
                    heb = hebreo
                    hin = hindi
                    ind = indonesio
                    jpn = japonés
                    lat = latín
                    por = portugués
                    rum = rumano
                    rus = ruso
                    swe = sueco
                    tur = turco
                    ukr = ucraniano
                    
 
- borrar todos los metadatos:
 
      ffmpeg -i "[nombre_archivo_entrada]" -map_metadata -1 -c:v copy -c:a copy "[nombre_archivo_salida]"
 
 
- extraer pistas de vídeo, audio y subtítulos en formato texto:
 
    * primero comprobar qué índice de pistas hay en el archivo:
 
      ffmpeg -i "[nombre_archivo_entrada]"
 
    * aparecerá algo parecido a esto:
 
[...]
Stream #0:0: Video: h264 (High), yuv420p, 1920x800, SAR 1:1 DAR 12:5, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Metadata:
title : Video @ 9727 Kbps
Stream #0:1(spa): Audio: ac3, 48000 Hz, 5.1(side), s16, 384 kb/s (default) (forced)
Metadata:
title : Spanish (Spain)
Stream #0:2(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), s16, 1536 kb/s
Metadata:
title : English (USA)
Stream #0:3(eng): Audio: vorbis, 48000 Hz, stereo, s16
Metadata:
title : English commentaries (USA)
Stream #0:4(spa): Subtitle: ass (default) (forced)
Metadata:
title : Spanish Forced
Stream #0:5(spa): Subtitle: ass
Metadata:
title : Spanish
Stream #0:6(eng): Subtitle: subrip
Metadata:
title : English
Stream #0:7(spa): Subtitle: subrip
Metadata:
title : Spanish commentaries
[...]
 
    * para extraer sin codificar en archivos independientes:
 
       ffmpeg -i "[nombre_archivo_entrada]" -map 0:0 -c:v copy "[nombre_archivo_salida].mp4" -map 0:1 -c:a:0 copy "[nombre_archivo_salida].ac3" -map 0:4 -c:s:0 copy "[nombre_archivo_salida].ass"
 

       NOTA: los subtítulos contenidos en un archivo MP4 no pueden extraerse directamente. Es necesario extraerlos codificándolos a formato SRT, ASS o VTT

 

    * para extraer codificando en archivos independientes:
 
       ffmpeg -i "[nombre_archivo_entrada]" -map 0:1 -c:a:0 libmp3lame -b:a 128k -ar 44100 "[nombre_archivo_salida].mp3" -map 0:4 -c:s:0 srt "[nombre_archivo_salida].srt"  -map 0:5 \
                   -c:s:1 webvtt "[nombre_archivo_salida].vtt" -map 0:7 -c:s:3  ass "[nombre_archivo_salida].ass"
 
    * para extraer sin codificar y guardando en un contenedor MKV:
 
       ffmpeg -i "[nombre_archivo_entrada]" -map 0:0 -map 0:1 -map 0:7 -c copy "[nombre_archivo_salida].mkv"
 
 
    * para extraer de varias fuentes sin codificar y guardando en un contenedor MKV:
 
       ffmpeg -i "[nombre_archivo_entrada01].mp4" -i "[nombre_archivo_entrada02].ac3" -i "[nombre_archivo_entrada03].srt" -map 0:0 -map 1:0 -map 2:0 -c copy "[nombre_archivo_salida].mkv"
 
 
    * para extraer un pcm_bluray con sonido multicanal:
 
        > para 16bits:
 
       ffmpeg -i "[nombre_archivo_entrada].m2ts" -map 0:2 -c:a pcm_s16le "[nombre_archivo_salida].wav"
 
        > para 24bits:
 
       ffmpeg -i "[nombre_archivo_entrada].m2ts" -map 0:2 -c:a pcm_s24le "[nombre_archivo_salida].wav"
 
        > para 32bits:
 
       ffmpeg -i "[nombre_archivo_entrada].m2ts" -map 0:2 -c:a pcm_s32le "[nombre_archivo_salida].wav"
 
 
- guardar sin codificar una emisión en streaming de formato M3U8:
 
       ffmpeg -i [url_de_emisión_streaming].m3u8 -c copy -f mpegts "[nombre_archivo_salida].mp4"
 
 
- unir 2 o más archivos de mismas características sin codificar [NOTA: los archivos deben coincidir en códec de audio y vídeo, dimensiones de vídeo y canales de audio]:
 
       ffmpeg -i "concat:[nombre_archivo_entrada01]|[nombre_archivo_entrada02]" -c copy "[nombre_archivo_salida]"
 
 
- unir 2 o más archivos de mismas características sin codificar [NOTA: los archivos deben coincidir en códec de audio y vídeo, dimensiones de vídeo y canales de audio]:
 
      * Primero crear una lista con los archivos a unir presentes en el directorio:
 
       for f in *.wav; do echo "file '$f'" >> mylist.txt; done
 
      * A continuación realizar la unión usando los datos de la lista:
 
       ffmpeg -f concat -i mylist.txt -c copy "[nombre_archivo_salida].wav"
 
 
- crear un bucle repetitivo de un solo archivo sin codificar:
 
      * Primero crear una lista con las veces que se repetirá el archivo (10 veces en este ejemplo):
 
       for i in {1..10}; do printf "file '%s'\n" "[nombre_archivo_entrada]" >> mylist.txt; done
 
      * A continuación crear el bucle usando los datos de la lista:
 
       ffmpeg -f concat -i mylist.txt -c copy "[nombre_archivo_salida]"
 
 
- usar filtros de imagen:
 
      * valores iniciales (no realizan cambios):
 
          gamma: 1.0

          contraste: 1.0

          brillo: 0.0

          saturación de colores: 1.0

          color rojo: 1.0

          color verde: 1.0

          color azul: 1.0
 
       ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 18 -preset veryslow -vf \
                   mp=eq2=(nºgamma):(nºcontraste):(nºbrillo):(nºsaturación colores):(nºcolor rojo):(nºcolor verde):(nºcolor azul) -tune film -maxrate 5000k \
                   -bufsize 1835k -c:a aac -b:a 320k -ac 6 "[nombre_archivo_salida].mp4"

 
 
- cambiar solo saturación de colores:
 
    * Valor inicial (no realiza cambios): 1.0
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 18 -preset veryslow -vf hue=s=(nºsaturación) -tune film -maxrate 5000k -bufsize 1835k -c:a aac \
                     -b:a 320k -ac 6 "[nombre_archivo_salida].mp4"
 
 
- cambiar solo brillo:
 
    * valor inicial (no realiza cambios): 1.0
 
      ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 18 -preset veryslow -vf lutyuv=y=val*(nºbrillo) -tune film -maxrate 5000k -bufsize 1835k -c:a aac \
                     -b:a 320k -ac 6 "[nombre_archivo_salida].mp4"

 
 
- capturar pantalla completa del PC sin sonido:
 
    ***NOTA: si no se usan las mismas dimensiones en píxeles que tiene configurada la pantalla la grabación no mostrará toda la pantalla. No se puede grabar con más dimensiones de las que tiene configurada la pantalla
 
    * para una pantalla de 1920x1080 píxeles:
 
      ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -c:v libx264 -crf 18 "[nombre_archivo_salida].mp4"
 
    * para una pantalla de 1280x720 píxeles:
 
      ffmpeg -video_size 1280x720 -framerate 25 -f x11grab -i :0.0 -c:v libx264 -crf 18 "[nombre_archivo_salida].mp4"
 
 
- capturar una porción de la pantalla del PC sin sonido:
 
    * capturar una dimensión de 1024x768 píxeles a partir de la coordenada x=100,y=200 siendo la coordenada inicial x=0,y=0 la esquina superior izquierda de la pantalla:
 
      ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -c:v libx264 -crf 18 "[nombre_archivo_salida].mp4"
 
 
- crear un GIF animado de calidad estándar a partir de una porción de un vídeo:
 
      ffmpeg -i "[nombre_archivo_entrada]" -vf scale=350:-1 -ss 00:15:05 -t 5 "[nombre_archivo_salida].gif"
 
 
- crear un GIF animado de alta calidad a partir de una porción de un vídeo [NOTA: requiere la instalación previa de la aplicación "imagemagick"]:
 
      ffmpeg -i "[nombre_archivo_entrada]" -ss 00:15:05 -t 5 -vf scale=350:-1:flags=lanczos,fps=25 -f image2pipe -vcodec ppm - | convert -delay 5 -loop 0 - "[nombre_archivo_salida].gif"
 
 
- convertir un GIF animado en vídeo:
 
      ffmpeg -i "[nombre_archivo_entrada].gif" -c:v libx264 -crf 18 "[nombre_archivo_salida].mp4"
 
 
- crear un vídeo con una foto fija añadiendo audio:
 
      ffmpeg -loop 1 -i "[nombre_imagen_fija_entrada]" -i "[nombre_archivo_audio_entrada]" -t (nºsegundos duración del vídeo) -map 0:0 -c:v libx264 -vf fps=25 -crf 18 \
                     -tune stillimage -map 1:0 -c:a copy "[nombre_archivo_salida].mp4"
 
 
- crear una presentación en vídeo con fotos fijas añadiendo audio [NOTA: las fotos deben tener el mismo tamaño y formato]:
 
      ffmpeg -framerate 1/5 -pattern_type glob -i '*.jpg' -i "[nombre_archivo_audio_entrada]" -map 0:0 -c:v libx264 -vf fps=25 -crf 18 -tune stillimage -map 1:0 -c:a copy "[nombre_archivo_salida].mp4"
 
           * Donde:
 
                  -framerate 1/5 = tiempo de exposición para cada foto en el vídeo (5 segundos en este caso)
                  -pattern_type glob -i '*.jpg' = extensión de las fotos que se usarán por orden alfanumérico para crear el vídeo (fotos JPEG en este caso)
 
 
- capturar una imagen fija en una posición predeterminada de un vídeo:
 
    * Calidad media:
 
       ffmpeg -i "[nombre_archivo_entrada]" -ss 00:10:14.435 -vframes 1 -qscale 1 "[nombre_archivo_salida].jpg"
 
    * Alta calidad:
 
       ffmpeg -i "[nombre_archivo_entrada]" -ss 00:10:14.435 -vframes 1 "[nombre_archivo_salida].png"
 
 
- capturar varias imágenes fijas cada periodo de tiempo predeterminado de un vídeo:
 
       ffmpeg -i "[nombre_archivo_entrada]" -vf fps=1/600 img%04d.png
 
             * Donde:
 
                    -vf fps=1/600 = se capturará una imagen cada 600 segundos (10 minutos)
                    img%04d.png = las imágenes se guardarán con el siguiente patrón de nombre: "img0001.png", "img0002.png", "img0003.png", etc.
 
 
- crear un mosaico de imágenes capturadas de un vídeo:
 
       ffmpeg -ss 00:05:00 -i "[nombre_archivo_entrada]" -frames 1 -vf "select=not(mod(n\,5000)),scale=350:-1,tile=2x3" "[nombre_archivo_salida].png"
 
             * Donde:
 
                    -ss 00:05:00 = posición del vídeo en donde comenzará la captura (en el minuto 5 en este caso)
                    (n\,5000) = intervalo de fotogramas en los que se capturarán las siguientes imágenes (cada 5000 fotogramas en este caso)
                    scale=350:-1 = cada imagen capturada se redimensionará a 350 píxeles de anchura, manteniéndose la relación de altura de la original
                    tile=2x3 = el mosaico se conformará con 2 columnas y 3 filas
 
 
TifbaMG.png
 
 
 
- crear un vídeo mosaico a partir de cuatro vídeos independientes:
 
       ffmpeg -i "[nombre_vídeo_entrada01]" -i "[nombre_vídeo_entrada02]" -i "[nombre_vídeo_entrada03]" -i "[nombre_vídeo_entrada04]" -filter_complex "nullsrc=size=640x480 [base]; \
                   [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft]; [3:v] \
                   setpts=PTS-STARTPTS, scale=320x240 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=320 [tmp2]; [tmp2][lowerleft] \
                   overlay=shortest=1:y=240 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=320:y=240"
-c:v libx264 -crf 18 -an "[nombre_archivo_salida].mp4"
 
              * Donde:
 
                      nullsrc=size=640x480 [base] = dimensiones que tendrá el vídeo mosaico (640x480 píxeles en este caso)
                      scale=320x240 = el tamaño que tendrá cada ventana del mosaico (320x240 píxeles en este caso)
                      [0:v] ..... [upperleft] = el vídeo 01 se situará arriba a la izquierda
                      [1:v] ..... [upperright] = el vídeo 02 se situará arriba a la derecha
                      [2:v] ..... [lowerleft] = el vídeo 03 se situará abajo a la izquierda
                      [3:v] ..... [lowerright] = el vídeo 04 se situará abajo a la derecha
 
               > EJEMPLO:
 
                     


 
 
 
- codificar aumentando o disminuyendo la velocidad de reproducción:
 
    * Aumentar la velocidad de reproducción al doble (x2):
 
       ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -c:a ac3 -b:a 384k \
                      -ar 48000 -ac 6 "[nombre_archivo_salida].mkv"
 
           > Donde:
 
                    setpts=0.5 = aumenta la velocidad de reproducción del vídeo al doble
                    atempo=2.0 = aumenta la velocidad de reproducción del audio al doble
 
    * Aumentar la velocidad de reproducción al cuádruple (x4):
 
      ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -c:a ac3 -b:a 384k \
                     -ar 48000 -ac 6 "[nombre_archivo_salida].mkv"
 
           > Donde:
 
                   setpts=0.25 = aumenta la velocidad de reproducción del vídeo al cuádruple
                   atempo=2.0,atempo=2.0 = aumenta la velocidad de reproducción del audio al cuádruple ("atempo" está limitado a un máximo de 2.0)
 
    * Disminuir la velocidad de reproducción a la mitad (x0.5):
 
      ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "[0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -c:a ac3 -b:a 384k \
                     -ar 48000 -ac 6 "[nombre_archivo_salida].mkv"
 
           > Donde:
 
                    setpts=2.0 = disminuye la velocidad de reproducción del vídeo a la mitad
                    atempo=0.5 = disminuye la velocidad de reproducción del audio a la mitad
 
    * Disminuir la velocidad de reproducción a la cuarta parte (x0.25):
 
      ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "[0:v]setpts=4.0*PTS[v];[0:a]atempo=0.25[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -c:a ac3 -b:a 384k \
                     -ar 48000 -ac 6 "[nombre_archivo_salida].mkv"
 
           > Donde:
 
                   setpts=4.0 = disminuye la velocidad de reproducción del vídeo a la cuarta parte
                   atempo=0.25 = disminuye la velocidad de reproducción del audio a la cuarta parte
 
 
 
- codificar invirtiendo el sentido de reproducción:
 
    * Extraer todos los fotogramas de la fuente de vídeo en formato imagen fija:
 
        ffmpeg -i "[nombre_archivo_entrada]" -an -sn -qscale 1 reverse_%06d.jpg
 
    * Extraer el audio de archivo de vídeo invirtiendo su reproducción [NOTA: se requiere la instalación previa de "sox"]:
 
        ffmpeg -i "[nombre_archivo_entrada]" -f sox - | sox --multi-threaded -S -V -p -b 16 "[nombre_archivo_salida].wav" reverse
 
    * Comprobar cuáles son los fotogramas por segundo (fps) del vídeo original para indicarlo en el paso posterior:
 
        ffmpeg -i "[nombre_archivo_entrada]"
 
         Aparecerá algo parecido a esto (los fps aparecen en el renglón "Stream"):
 
[...]
 
Metadata:
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
MINOR_VERSION : 0
ENCODER : Lavf57.57.100
Duration: 00:04:57.98, start: -0.007000, bitrate: 1300 kb/s
Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x720 [sAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
 
[...]
 
 
    * Codificar los fotogramas extraídos de forma revertida y el audio extraído:
 
        cat $(ls -r reverse_*.jpg) | ffmpeg -f image2pipe -vf fps=(nºfotogramas por segundo) -i - -i "[nombre_archivo_audio].wav" -c:v libx264 -preset slow -crf 18 -tune film -c:a libmp3lame -b:a 320k \
               "[nombre_archivo_salida]"
 
 
- codificar añadiendo márgenes difuminados:
 
* Codificar ampliando a las dimensiones deseadas sin audio:
 
        > Ejemplo: un vídeo de 406x720 píxeles ampliarlo a 1280x720 píxeles:
 
        ffmpeg -i "[nombre_archivo_entrada]" -vf scale=1280:720,setdar=16:9 -c:v libx264 -preset slow -crf 18 -tune film -an -sn "[nombre_archivo_salida]"
 
7MioikK.png
 
up52Kua.png
 
* Codificar el vídeo ampliado difuminándolo en su totalidad:
 
      ffmpeg -i "[nombre_archivo_entrada]" -filter_complex "[0:v]crop=1280:720:0:0,boxblur=20[fg];[0:v][fg]overlay=0:0[v]" -map "[v]" -c:v libx264 -preset slow -crf 18 -tune film "[nombre_archivo_salida]"
 
               > Donde:
 
                         boxblur=20 = Asigna un difuminado de 20
 
omN0csI.png
 
* Combinar el vídeo original con el vídeo difuminado superponiendo el original al difuminado copiando el audio:
 
       ffmpeg -i "[nombre_vídeo_difuminado]" -i "[nombre_vídeo_original]" -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -c:v libx264 -preset slow -crf 18 -tune film -c:a copy \
                   "[nombre_archivo_salida]"
 
* Muy probablemente el archivo de salida anterior no pueda reproducirse, salvo con algunos reproductores. En ese caso habrá que realizar un re-encapsulamiento del mismo sin codificar:
 
       ffmpeg -i "[nombre_vídeo_combinado]" -c copy "[nombre_archivo_salida]"
 
j8urTOZ.png
 

 
- codificar rotando la imagen:
 
* Rotar 90 grados en el sentido de la agujas del reloj:
 
      ffmpeg -i "[nombre_archivo_entrada]" -vf transpose=clock -c:v libx264 -preset slow -crf 18 -tune film -c:a copy "[nombre_archivo_salida]"
 
* Rotar 90 grados en el sentido contrario de la agujas del reloj:
 
      ffmpeg -i "[nombre_archivo_entrada]" -vf transpose=cclock -c:v libx264 -preset slow -crf 18 -tune film -c:a copy "[nombre_archivo_salida]"
 
* Rotar 180 grados:
 
      ffmpeg -i "[nombre_archivo_entrada]" -vf transpose=clock,transpose=clock -c:v libx264 -preset slow -crf 18 -tune film -c:a copy "[nombre_archivo_salida]"
 
* Modo espejo (invertir horizontalmente):
 
      ffmpeg -i "[nombre_archivo_entrada]" -vf hflip -c:v libx264 -preset slow -crf 18 -tune film -c:a copy "[nombre_archivo_salida]"
 
* Rotar 180 e invertido (invertir verticalmente):
 
      ffmpeg -i "[nombre_archivo_entrada]" -vf vflip -c:v libx264 -preset slow -crf 18 -tune film -c:a copy "[nombre_archivo_salida]"
 
 
- codificar realizando fundidos:
 
* Fundido desde negro hasta despejar al inicio y fundido de silencio de audio hasta recuperar volumen al principio:

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=in:st=0:d=(nºsegundos duración) -af afade=t=in:st=0:d=(nºsegundos duración) -c:v libx264 -preset slow -crf 18 \
       -tune film -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
      > Ejemplo: realizar el fundido en los 5 primeros segundos del vídeo:

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=in:st=0:d=5 -af afade=t=in:st=0:d=5 -c:v libx264 -preset slow -crf 18 -tune film -c:a libmp3lame -b:a 320k \
       "[nombre_archivo_salida]"

 
 
* Fundido desde blanco hasta despejar al inicio y fundido de silencio de audio hasta recuperar volumen al principio:

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=in:st=0:d=(nºsegundos duración):c=white -af afade=t=in:st=0:d=(nºsegundos duración) -c:v libx264 -preset slow \
       -crf 18 -tune film -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
* Fundido a negro desde otra posición y fundido de volumen de audio hasta silenciar volumen desde otra posición:

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=out:st=(nºsegundos posición)=(nºsegundos duración) -af afade=t=out:st=(nºsegundos posición)=(nºsegundos duración) \
       -c:v libx264 -preset slow -crf 18 -tune film -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
       > Ejemplo: realizar el fundido en los últimos 5 segundos de un video de 33 segundos de duración. Nº de segundos como posición: 33-5=28

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=out:st=28:d=5 -af afade=t=out:st=28:d=5 -c:v libx264 -preset slow -crf 18 -tune film -c:a libmp3lame -b:a 320k \
       "[nombre_archivo_salida]"

 
 
* Fundido a blanco desde otra posición y fundido de volumen de audio hasta silenciar volumen desde otra posición:

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=out:st=(nºsegundos posición)=(nºsegundos duración):c=white -af \
       afade=t=out:st=(nºsegundos posición)=(nºsegundos duración) -c:v libx264 -preset slow -crf 18 -tune film -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"

 
 
* Fundido desde negro hasta despejar al inicio, fundido de silencio de audio hasta recuperar volumen al principio, fundido a negro desde otra posición y fundido de volumen de audio hasta silenciar volumen desde otra posición:

ffmpeg -i "[nombre_archivo_entrada]" -vf fade=t=in:st=0:d=(nºsegundos duración),fade=t=out:st=(nºsegundos posición)=(nºsegundos duración) -af \
       afade=t=in:st=0:d=(nºsegundos duración),afade=t=out:st=(nºsegundos posición)=(nºsegundos duración) -c:v libx264 -preset slow -crf 18 -tune \
       film -c:a libmp3lame -b:a 320k "[nombre_archivo_salida]"
Editado por elmohino

Compartir este post


Enlace al post
Compartir en otros sitios

Esta muy bien toda la información, y viene a completar la que ya teníamos disponible en el foro, también hay disponibles unos ppa para Ubuntu y derivadas para los que somos vagos y no nos gusta compilar :jojojo:

 

Enviado desde mi Aquaris E4 mediante Tapatalk

Compartir este post


Enlace al post
Compartir en otros sitios
On 6/10/2017 at 0:07, Shiba87 dijo:

ffmpeg -i archivo-imagen -i archivo-audio -acodec copy -vcodec mjpeg archivo-salida

El resto dependerá de los formatos de audio a utilizar y del archivo de salida, pero básicamente es eso

 

 

 

¿que formato debe tener el audio? porque he probado con wav, mp3 y aac, y en todos los casos me lo rechaza youtube al procesar el video con el mensaje "video no compatible"

¿y al archivo de salida que extensión debo poner, avi, mp4...?

 

Cita

Se ha producido un fallo al procesar el vídeo. Asegúrate de que estás subiendo un tipo de archivo compatible.

 

Editado por alguien

Compartir este post


Enlace al post
Compartir en otros sitios
hace 2 horas, Shiba87 dijo:

ffmpeg -loop 1  -i archivo-magen -i archivo-audio -shortest -vcodec libx264 -acodec copy archivo-salida

 

 

 

Esta mañana encontré otros parametros googleando que tambien me funcionaron:

 

ffmpeg -loop 1 -y -i imagen.jpg -i audio.mp3 -shortest video.mp4

 

En este enlace: https://salmorejogeek.com/2015/09/18/como-crear-un-video-partiendo-de-una-imagen-y-un-archivo-de-audio-linux-ffmpeg/

 

yo he leido aquí algo sobre este blog " Salmorejo Geek"

 

y el resultado

 

 

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!

Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.

Iniciar Sesión