Ir al contenido

Buscar en La Comunidad

Mostrando resultados por etiquetas 'ffmpeg'.

  • Buscar Por Etiquetas

    Añade etiquetas separadas por comas.
  • Buscar Por Autor

Tipo de Contenido


Foros

  • Contacto con el staff
    • Novedades / Anuncios del foro
    • Sugerencias
    • Problemas relacionados con el foro
  • Zona general de charla
    • Presentaciones
    • Charla
    • Zona de Humor, Curiosidades y Otros
    • Mascotas Vagos
    • Noticias del Mundo
    • Tecnología
    • Ayuda y consultas de carácter general
  • Zona GNU/Linux
    • Ayuda, consultas y soporte GNU/Linux
    • Distribuciones GNU/Linux
    • Repositorios. Software GNU/Linux
    • Personalización
    • Raspberry Pi
    • Arduino
    • Manuales / Tutoriales / Guías GNU/Linux
    • Programación
    • Noticias GNU/Linux
    • Hablando de GNU/Linux
  • Zona Gaming
    • Juegos GNU/Linux
    • Noticias Gamer
    • Charla Gamer
  • Zona Móvil
    • Ayuda y soporte para dispositivos móviles
    • Apps Móviles
    • Manuales / Tutoriales / Guías Móviles
    • Roms para dispositivos Móviles
    • Noticias sobre dispositivos Móviles
    • Hablando sobre dispositivos Móviles
  • Zona Mozilla
    • Ayuda, consultas y soporte Mozilla
    • Aplicaciones Mozilla
    • Roms Firefox OS
    • Manuales / Tutoriales / Guías Mozilla
    • Noticias Mozilla
    • Hablando de Mozilla
  • Microsoft
    • Papelera del Foro

Encontrar resultados en...

Encontrar resutados que...


Fecha de Creación

  • Start

    Fin


Última Actualización

  • Start

    Fin


Filtrar por numero de...

Joined

  • Start

    Fin


Grupo


Página Web


Diaspora


Pump


GNU Social


Google +


Twitter


Facebook


Xmpp


Skype


Steam


Desura


MediaGoblin


Youtube


Vimeo


Picasa


Flickr


Email


Lugar


Intereses

Encontramos 8 resultados

  1. 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 MB deseados x 8388.608 BITRATE VÍDEO= -------------------------------- - BITRATE AUDIO - 10 SEG. duración *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 700 x 8388.608 / 5400 - 128 - 10 = 949kbps de bitrate de vídeo - 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 con profundidad de color a 10 bits con HDR10 y contenedor MKV con sonido AC3: * IMPORTANTE: el archivo de entrada debe poseer HDR ffmpeg-10bit -i "[nombre_archivo_entrada]" -c:v libx264 -pix_fmt yuv420p10le -x264-params "level=5.2:colorprim=bt2020:colormatrix=bt2020nc:transfer=smpte2084" -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 8 bits y contenedor MKV con sonido AC3 cuando el archivo de entrada tiene 10 ó 12 bits sin HDR: ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -pix_fmt yuv420p -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 8 bits y contenedor MKV con sonido AC3 cuando el archivo de entrada tiene 10 ó 12 bits con HDR [NOTA: puede que no funcione en algunos FFmpeg de 64 bits]: ffmpeg -i "[nombre_archivo_entrada]" -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p \ -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 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 con profundidad de color a 10 bits con HDR10, contenedor WebM y sonido Vorbis: * IMPORTANTE: el archivo de entrada debe poseer HDR ffmpeg-10bit -i "[nombre_archivo_entrada]" -profile:v 2 -c:v libvpx-vp9 -pix_fmt yuv420p10le -crf 27 -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -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 con profundidad de color a 10 bits con HDR10, contenedor MP4 y sonido AAC: * IMPORTANTE: el archivo de entrada debe poseer HDR ffmpeg -i "[nombre_archivo_entrada]" -c:v libx265 -pix_fmt yuv420p10le -x265-params "cfr=19:level=5.2:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc" -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 Wave64: ffmpeg -i "[nombre_archivo_entrada]" "[nombre_archivo_salida].w64" - convertir un archivo de audio o vídeo a sonido WAV con perfil RF64: ffmpeg -i "[nombre_archivo_entrada]" -rf64 auto "[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 TrueHD [limitado a 6 canales]: ffmpeg -i "[nombre_archivo_entrada]" -c:a truehd -strict -2 "[nombre_archivo_salida].thd" - 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 [NOTA: los subtítulos de texto deben estar en código de caracteres UTF-8]: * 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]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 -ss 00:20:45.25 -t 120.5 -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" * 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 -ss 00:20:45.25 -to 00:22:00.5 -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" * 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" * para extraer un DTS-HD Master Audio y/o DTS:X: ffmpeg -i "[nombre_archivo_entrada]" -map 0:2 -c copy "[nombre_archivo_salida].dts" * para extraer un TrueHD y/o TrueHD+Atmos: ffmpeg -i "[nombre_archivo_entrada]" -map 0:2 -c copy "[nombre_archivo_salida].thd" * para extraer un E-AC3 y/o E-AC3+Atmos: ffmpeg -i "[nombre_archivo_entrada]" -map 0:2 -c copy "[nombre_archivo_salida].eac3" * para extraer el núcleo (core) DTS de un DTS-HD Master Audio y/o DTS:X: ffmpeg -i "[nombre_archivo_entrada].dtshd" -bsf:a dca_core -c:a copy "[nombre_archivo_salida].dts" * para extraer el núcleo (core) AC3 de un E-AC3 y/o E-AC3+Atmos: ffmpeg -i "[nombre_archivo_entrada].eac3" -bsf:a eac3_core -c:a copy "[nombre_archivo_salida].ac3" - 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]" - eliminar entrelazado de imagen: ffmpeg -i "[nombre_archivo_entrada]" -c:v libx264 -crf 18 -preset veryslow -vf yadif -tune film -maxrate 5000k -bufsize 1835k -c:a aac -b:a 320k -ac 6 "[nombre_archivo_salida].mp4" - 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 una imagen fija en una posición predeterminada de un vídeo con HDR [NOTA: puede que no funcione en algunos FFmpeg de 64 bits]: ffmpeg -i "[nombre_archivo_entrada]" -ss 00:10:14.435 -vframes 1 -vf zscale=transfer=linear,tonemap=tonemap=clip:param=1.0:desat=2:peak=0,zscale=transfer=bt709,format=yuv420p "[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 - 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]" * 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 * 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]" - 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]"
  2. Hola Amigos, Muy buenos días, espero que se encuentren bien. Por favor, necesito ayuda con lo siguiente... Estoy desplazando una imagen verticalmente, y veo que el fondo del video es verde... ¿Cómo puedo cambiar este color de fondo? Código de ejemplo: ffmpeg -loop 1 -t 24 -i "image.jpg" -filter_complex "nullsrc=size=640x360[background];[background][0:v]overlay=shortest=1:y='min(0,-(t)*26)'" -qscale 1 -y out.mpg Resultado del video: ¡Espero me pueda ayudar! Desde ya muchas gracias, Un saludo, Hugo PD: Imagen utilizada:
  3. Hace tiempo que llevaba buscando alguna forma de utilizar NVENC (El códec de Nvidia que aprovecha la tarjeta gráfica para screencast). Por desgracia, la instalación en esta distribución (y por desgracia también en otras) es bastante costosa. (Hay que compilar FFMPEG para ello con unas opciones concretas.) por suerte, un par de desarrolladores han creado un par de scripts que permiten realizar este proceso con un par de comandos. Los scripts en cuestión son: #1 https://github.com/lutris/ffmpeg-nvenc/blob/master/build.sh #2 https://gist.github.com/jniltinho/9273dc133796062c13ca739d17862125 Si uno no funciona lo hará en otro. Hace poco que lo probé con 2 distros basadas en ubuntu. En el PC de un amigo y en mi PC de sobremesa antíguo (Elementary OS y Kubuntu). En una funcionó el primer script y en la otra el segundo. Realmente me simplificaron mucho las cosas, me habría costado bastante tiempo instalarlo y dejarlo "a punto" sin estos dos scripts. Cabe recordar que para instalar esto es necesario tener instalados los drivers privativos de Nvidia.
  4. Hola Amigos, Estoy usando FFmpeg para automatizar fotos propocinalmente muy apaisadas... El siguiente ejemplo, el resultado es el esperado, bueno, casi... El problema, es que color blanco se pierde (se torna gris), solo pasa con el blanco... No estoy seguro si, el color blanco tiene un tratamiento, o filtro por default... Explicación, Paso a Paso... Paso 1, creo una imagen estirada de la original: ffmpeg -i ojos.jpg -s 640x360 -qscale 1 fondo.jpg Paso 2, aplico un difuminado de 20 puntos: ffmpeg -i fondo.jpg -filter_complex "[0:v]crop=640:360:0:0,boxblur=20[fg];[0:v][fg]overlay=0:0[v]" -map "[v]" -qscale 1 fondo.jpg -y Paso 3, combino las dos imágenes, el fondo y la original: ffmpeg -i fondo.jpg -i ojos.jpg -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -qscale 1 resultado.jpg Imagen original: Imagen con filtro aplicado: Lo que necesito es que el color blanco, se mantenga y no se torne gris... ¿Alguien me puede ayudar con esto? ¡Desde ya muchas gracias! Un saludo, Hugo
  5. Ffmpeg es un programa sin interfaz gráfica que permite convertir o transformar entre formatos multimedia, tanto de video como de audio. Aunque existen otros programas, algunos sin necesidad de usar comandos, es una de las opciones con más posibilidades y es muy rápida. Quién no lo tenga (que es raro, ya que lo utilizan muchos programas), teclea: sudo apt-get install ffmpegO para la última versión desde: http://www.ffmpeg.org/Esta es una recopilación de ejemplos de cosas útiles que se pueden hacer con ffmpeg, como puede ser convertir vídeos para PSP, iPod o iPhone, extraer el audio de un vídeo o extraer imágenes de un vídeo. -Obtener información de un vídeo ffmpeg -i video.aviCambiar el formato de un vídeo y mantenerlo con la misma calidad (útil por si la tele o un programa no nos reproduce un formato), no funciona con todos los formatos: ffmpeg -i origen.avi -vcodec copy -acodec copy salida.mkv-Combinar una serie de imágenes en un vídeo ffmpeg -f image2 -i imagen%d.jpg video.mpgCon este comando convertiríamos todas las imágenes del directorio actual (con nombres imagen1.jpg, imagen2.jpg, etc…) en un video llamado video.mpg.Convertir un vídeo en imágenes ffmpeg *i video.mpg imagen%d.jpgCon este comando se crearan varias imágenes imagen1.jpg, imagen2.jpg, … Para las imágenes resultantes se pueden usar los formatos PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF o SGI. Convertir un vídeo para verlo en el iPod/iPhone ffmpeg -i entrada.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320×180 -title X salida.mp4* Video original: entrada.avi[* Codec de audio: aac * Bitrate del audio: 128kb/s * Codec de vídeo: mpeg4 * Bitrate del vídeo: 1200kb/s * Tamaño del vídeo: 320×180 * Vídeo generado: salida.mp4 Convertir un vídeo para verlo en la PSP ffmpeg *i entrada.avi *b 300 *s 320×240 *vcodec xvid *ab 32 *ar 24000 *acodec aac salida.mp4* Video original: entrada.avi* Codec de audio: aac * Bitrate del audio: 32kb/s * Codec de vídeo: xvid * Bitrate del vídeo: 1200kb/s * Tamaño del vídeo: 320×180 * Vídeo generado: salida.mp4 Extraer el sonido de un vídeo, y guardarlo como MP3 ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 audio.mp3* Video original: video.avi* Codec de audio: mp3 * Bitrate del audio: 192kb/s * Archivo generado: audio.mp3 Convertir un wav en MP3 ffmpeg -i audio.wav -ar 44100 audio.mp3Convertir un avi a mpg ffmpeg -i entrada.avi salida.mpgConvertir un mpg a avi ffmpeg -i entrada.mpg salida.aviConvertir un avi a gif ffmpeg -i entrada.avi salida.gifAñadir el sonido de un archivo de audio a un vídeo ffmpeg -i audio.wav -i video_entrada.avi video_salida.mpgConvertir avi a flv ffmpeg -i entrada.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320×240 -f flv salida.flvConvertir avi a dv ffmpeg -i entrada.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 salida.dvo bien ffmpeg -i entrada.avi -target pal-dv salida.dvConvertir avi a mpeg para reproductores de dvd ffmpeg -i entrada.avi -target pal-dvd -ps 2000000000 -aspect 16:9 salida.mpeg* target pal-dvd: Formato de salida* ps 2000000000: Tamaño máximo del archivo resultante en bits (en el ejemplo, 2Gb) * aspect 16:9: Panorámico Comprimir avi a divx ffmpeg -i entrada.avi -s 320×240 -vcodec msmpeg4v2 salida.aviComprimir Ogg Theora a Mpeg dvd ffmpeg -i entrada.ogm -s 720×576 -vcodec mpeg2video -acodec mp3 salida.mpgComprimir avi a SVCD mpeg2Para PAL: ffmpeg -i entrada.avi -target pal-svcd salida.mpgPara NTSC: ffmpeg -i entrada.avi -target ntsc-svcd salida.mpgComprimir avi a VCD mpeg2Para PAL: ffmpeg -i entrada.avi -target pal-vcd salida.mpgPara NTSC: fmpeg -i entrada.avi -target ntsc-vcd salida.mpgCodificación con varias pasadas ffmpeg -i entrada -pass 2 -passlogfile ffmpeg2pass salida Para grabar el escritorio con ffmpeg solo basta con ejecutar el siguiente comando: ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq ~/escritorio.mpgDonde:-f x11grab: es la opción de ffmpeg para grabar el escritorio -r: después de -r se pone el número de tasa de fps que quieren que se grabe. ~/escritorio.mpg: es el archivo de salida, pueden cambiar el formato del archivo modificando la extensión. Para parar la grabación presionan Ctrl+C o Q en la terminal que lo ejecutaron. Ejecutando ese comando se va a generar un archivo llamado escritorio.mpg en la carpeta que estén situados. -s: lo que va despues de -s es la resolución de pantalla, wxga es 1366x768. Se puede poner como anchoxalto, por ejemplo 1024x768, 800x600 o sino así: wsxga: 1600x1024 wuxga: 1920x1200 woxga: 2560x1600 wqsxga: 3200x2048 wquxga: 3840x2400 whsxga: 6400x4096 whuxga: 7680x4800 cga: 320x200 ega: 640x350 hd480: 852x480 hd720: 1280x720 hd1080: 1920x1080 16cif: 1408x1152 qqvga: 160x120 qvga: 320x240 vga: 640x480 svga: 800x600 xga: 1024x768 uxga: 1600x1200 qxga: 2048x1536 sxga: 1280x1024 qsxga: 2560x2048 hsxga: 5120x4096 wvga: 852x480 wxga: 1366x768 sqcif: 128x96 qcif: 176x144 cif: 352x288 4cif: 704x576 También se puede cambiar el codec, bitrate y demás, solo mirar el manual de ffmpeg. Otros ejemplos: ffmpeg -t 00:00:30 -r 30 -g 300 -s 1024x768 -f x11grab -i :0.0 -vcodec qtrle escritorio-1.mov ffmpeg -an -s 1200x900 -r 25 -f x11grab -i :0.0 -s 1200x900 -r 25 -vcodec libxvid -aspect 1.3333 -sameq video-sinsonido.avi ffmpeg -y -t 30 -f x11grab -qscale 2 -r 15 -s 1024x768 -i :0.0 -s 800x600 -vcodec libx264 -vpre hq -crf 22 -threads 0 x11grab.mp4 ffmpeg -vframes 100 -r 30 -g 300 -s 1024x768 -f x11grab -i :0.0 -vcodec libx264 -vpre hq -crf 22 -threads 0 test.mp4 ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg Algunos más por Elmohino: - Codificar a XviD y MP3 en contenedor AVI: ffmpeg -i [vídeo_a_codificar] -f avi -vcodec libxvid -vtag XVID -b 700k -acodec libmp3lame -ab 128kb [archivo_destino].avi - Codificar a XviD y AC3 en contenedor AVI: ffmpeg -i [vídeo_a_codificar] -f avi -vcodec libxvid -vtag XVID -b 700k -acodec ac3 -ab 224kb -ac 6 [archivo_destino].avi - Codificar a x264 y AAC en contenedor MP4: ffmpeg -i [vídeo_a_codificar] -f mp4 -vcodec libx264 -b 500kb -acodec libfaac -ab 128kb [archivo_destino].mp4 - Codificar a WMV y WMA en contenedor WMV: ffmpeg -i [vídeo_a_codificar] -b 600kb -vcodec wmv2 -acodec wmav2 -ab 64kb [archivo_destino].wmv - Codificar a MP4 y AAC en contenedor MP4 para móviles/celulares modernos: ffmpeg -i [vídeo_a_codificar] -b 500kb -vcodec mpeg4 -s 352x288 -acodec libfaac -ab 64kb [archivo_destino].mp4 - Codificar a h263 y AMR-NB en contenedor 3GPP para móviles/celulares antiguos: ffmpeg -i [vídeo_a_codificar] -s qcif -b 400k -acodec libopencore_amrnb -ar 8000 -ac 1 -ab 12.2k [archivo_destino].3gp Por Marisan666: VC1 a MP4 ffmpeg -i [video_VC-1_a_codificar] -f mp4 -vcodec libx264 -b 12000kb -flags +loop -cmp +chroma -deblockalpha 0 -deblockbeta 0 -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libfaac -ab 320kb -ac 6 [archivo_destino].mp4 Yo añado que la opción -b indica el bitrate de vídeo (cuanto más bitrate más calidad, pero más tamaño del archivo resultante), la opción -ab indica el bitrate de audio y la opción -ac indica el nº de canales de audio que se desean (1=mono, 2=stereo, 6=envolvente). También se puede añadir la opción -s, que indica las dimensiones que se desean dar a la imagen del vídeo resultante. Ej.: -s 1280x720 (para HD). Ej.: -s 1920x1080 (para FullHD). Si no se usa la opción -s, FFMpeg usa las dimensiones originales del vídeo original. Fuentes: Revista Linux Latino, http://www.tecno-so.com.ar/2010/10/grabar-escritorio-en-linux-con-ffmpeg.html, yo mismo y los autores citados.
  6. Hola a todos, Para mi PFC estoy usando cURL para descargar un flujo de vídeo desde una cámara web y utilizo la salida estándar stdout para introducir ese flujo de vídeo a la entrada de otro programa llamado ffmpeg. Este programa hará una serie de operaciones y lo enviará a otro servidor. Todo operando desde la terminal. Mi problema es que también quiero descargar el audio de la cámara, que se encuentra en otra parte, y me gustaría juntarlo con el flujo de vídeo. El proceso de juntar ambos flujos lo puede hacer el ffmpeg, pero hay que meterle los dos flujos al mismo tiempo. Para ello lo ideal sería que cURL pudiese descargar los dos flujos a la vez y pasárselos a las entradas del ffmpeg. Por si sirve para que se me entienda mejor pongo el script que utilizo para descargar el vídeo: curl URLdelvideo | ffmpeg -i - URLdelservidorfinal Y lo que yo querría sería algo como esto: curl URLdelvideo URLdelaudio | ffmpeg -i - -i - URLdelservidorfinal ¿Alguien conoce algún método con el que se pueda hacer lo que pretendo? Muchas gracias.
  7. Quería usar avconv en Debian testing y me encontré con que no sabía cómo instalarlo. Para usarlo hay que instalar libav-tools porque parece que ffmpeg está en desuso. Entonces se instala con sudo aptitude install libav-tools Era solamente eso, por si se encontraban con el mismo problema que yo
  8. Un sencillo (y cutre) script que me he hecho para descargar vídeo o audio de youtube, requiere los paquetes youtube-dl y ffmpeg. Pensé que a alguien más le puede ser útil así que lo he "formalizado" un poco Al seleccionar vídeo apareceran los distintos formatos del vídeo disponibles para descargar. Al seleccionar audio, éste se extraera a partir del vídeo con la máxima calidad disponible (normalmente en formato .m4a) Saludos
×