elmohino

​Miembro
  • Contenido

    9
  • Registrado

  • Última Visita

1 Seguidor

Sobre elmohino

  • Rango
    Recién llegado

Género

  • Género
    Hombre

Características del sistema

  • Distribución
    Debian
  • Entorno gráfico
    Gnome
  • Navegador Web
    Iceweasel
  • Distribución secundaria
    Sin_especificar
  • Entorno gráfico secundario
    Lxde
  • Navegador Web secundario
    Chromium
  1. Efectivamente, era eso. Muchas gracias. Salud.
  2. Problema al intentar guardar el editado de alguno de mis post: solicita introducir nombre del tema y etiquetas pero ambas solicitudes ya están introducidas de antemano: Salud.
  3. mpv es un reproductor de audio/vídeo basado en MPlayer y MPlayer2. Si el script youtube-dl está presente en la distribución, mpv obtiene soporte nativo para reproducir vídeo de alta definición en Youtube y en más de 300 servidores de vídeo. Esto permite a mpv reemplazar los reproductores de vídeo específicos de las páginas web basados en Adobe Flash o HTML5. Incluso no es necesario indicarle a mpv la URL directa del vídeo, sino solamente la página web en el que está alojado: mpv revisará, buscará y reproducirá secuencial todos los vídeos contenidos que sean compatibles con youtube-dl. mpv además es capaz de reproducir DVD's (funciones completas), Blu-ray Disc (funciones limitadas) y CD Audio. # INSTALACIÓN EN DEBIAN, UBUNTU Y DERIVADOS: sudo apt-get install mpv Para un mejor aprovechamiento de mpv, es recomendable instalar el script en python "youtube-dl". # INSTALACIÓN DE YOUTUBE-DL: sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl *NOTA: youtube-dl es un script que sufre frecuentes actualizaciones. Una vez instalado, para una rápida actualización, ejecutar: sudo youtube-dl -U # USO HABITUAL POR LÍNEA DE COMANDOS: - Reproducir un archivo o URL: mpv [nombre_archivo_ó_URL] - Reproducir una lista de reproducción: mpv --playlist [nombre_lista] - Reproducir un archivo guardando su posición de interrupción para empezar a reproducir por ella la próxima vez: mpv --save-position-on-quit [nombre_archivo] - Descargar un vídeo, audio o radio en streaming: mpv [url_de_vídeo_audio_o_radio_en_streaming] --stream-dump "[nombre_archivo_salida]" - Extraer el audio de un archivo o streaming en formato WAV: mpv --no-video [nombre_archivo_ó_streaming] --audio-channels (nº canales audio) --ao pcm:file="[nombre_archivo_salida].wav" - Reproducir un archivo deshabilitando su audio: mpv --no-audio [nombre_archivo] - Reproducir un archivo a pantalla completa: mpv --fs [nombre_archivo] - Capturar fotogramas manualmente de un archivo de vídeo en formato PNG (durante la reproducción pulsar la tecla "s" una vez para obtener una captura con subtítulos, o pulsar "S" una vez para obtener una captura sin subtítulos) [NOTA: si no se usa estas opciones, la captura se realiza en formato JPG]: mpv --screenshot-format png --screenshot-png-compression 9 [nombre_archivo_vídeo] *NOTA: las capturas se guardarán en el mismo directorio donde se encuentra el vídeo y con el patrón "mpv-shot0001.png", "mpv-shot0002.png" ..... - Reproducir el título principal de un DVD: mpv dvd:// - Reproducir un título determinado de un DVD: mpv dvd://(nº título) - Reproducir el título más largo de un DVD: mpv dvdnav://longest - Reproducir un DVD en un directorio o ISO: mpv dvd://(nº título) --dvd-device [nombre_directorio_ó_imagen_.iso] - Extraer un título completo de un DVD [NOTA: se extraerá todo el contenido del título sin posibilidad de seleccionar pistas ni capítulos] mpv dvd://(nº título) --stream-dump "[nombre_archivo_salida]" - Reproducir el título principal de un Blu-ray: mpv bd:// - Reproducir un título determinado de un Blu-ray: mpv bd://(nº título) - Reproducir el título más largo de un Blu-ray: mpv bd://longest - Reproducir un Blu-ray en un directorio o ISO: mpv bd://(nº título) --bluray-device [nombre_directorio_ó_imagen_.iso] - Extraer un título completo de un Blu-ray [NOTA: se extraerá todo el contenido del título sin posibilidad de seleccionar pistas ni capítulos] mpv bd://(nº título) --stream-dump "[nombre_archivo_salida]" - Reproducir un VCD ó SVCD: mpv vcd:// - Reproducir un VCD ó SVCD en un archivo: mpv vcd://[ruta_archivo] - Extraer un VCD ó SVCD [NOTA: se extraerá todo el contenido del VCD/SVCD sin posibilidad de seleccionar pistas] mpv vcd:// --stream-dump "[nombre_archivo_salida]" - Reproducir un CD Audio [NOTA: para saber cuántas pistas tiene el CD ejecutar "mplayer cdda://"): mpv cdda:// (para reproducir todo el CD) mpv cdda://(nº pista a reproducir) (para reproducir sólo una pista determinada) mpv cdda://(nº pista donde empezar a reproducir)-(nº pista donde terminar de reproducir) (para reproducir un determinado rango de pistas) - Extraer una pista o pistas de CD Audio a formato WAV [NOTA: pasa saber cuántas pistas tiene el CD ejecutar "$ mplayer cdda://"): mpv cdda:// --ao pcm:file="[nombre_archivo_salida].wav" (para extraer todo el CD en un solo archivo WAV) mpv cdda://(nº pista a extraer) --ao pcm:file="[nombre_archivo_salida].wav" (para extraer sólo una pista determinada) mpv cdda://(nº pista donde empezar a extraer)-(nº pista donde terminar de extraer) --ao pcm:file="[nombre_archivo_salida].wav" (para extraer un determinado rango de pistas en un solo archivo WAV) - Repetir reproducción: mpv --loop=(nº repeticiones {inf equivale a infinitas}) [nombre_archivo] - Reproducir eligiendo pista de audio (NOTA: para comprobar qué pistas de audio lleva el archivo, ejecutar 'mpv --frames 0 dvd://(nº título)'{para un DVD}, 'mpv --frames 0 dvd://(nº título) --dvd-device "[nombre_directorio_ó_imagen_.iso]"'{para un DVD en directorio o ISO}, 'mpv --frames 0 [nombre_archivo]'{para otros archivos}): mpv --aid (nº pista) [nombre_archivo] - Reproducir eligiendo pista de idioma de audio (NOTA: para comprobar qué idiomas de audio lleva el archivo, ejecutar 'mpv --frames 0 dvd://(nº título)'{para un DVD}, 'mpv --frames 0 dvd://(nº título) --dvd-device "[nombre_directorio_ó_imagen_.iso]"'{para un DVD en directorio o ISO}, 'mpv --frames 0 [nombre_archivo]'{para otros archivos}): mpv --alang (código de letras) [nombre_archivo] Ejemplos: mpv --alang jpn película.mkv (reproduce un MKV en japonés) mpv dvd://1 --alang es,en (reproduce un DVD en castellano; y si no está disponible en castellano lo reproduce en inglés) - Adelantar o retrasar la reproducción del audio: mpv --audio-delay (nº segundos) [nombre_archivo] (para retrasar el audio) mpv --audio-delay -(nº segundos) [nombre_archivo] (para adelantar el audio) - Reproducir eligiendo pista de subtítulos (NOTA: para comprobar qué pistas de subtítulos lleva el archivo, ejecutar 'mpv --frames 0 dvd://(nº título)'{para un DVD}, 'mpv --frames 0 dvd://(nº título) --dvd-device "[nombre_directorio_ó_imagen_.iso]"'{para un DVD en directorio o ISO}, 'mpv --frames 0 [nombre_archivo]'{para otros archivos}): mpv --sid (nº pista) [nombre_archivo] - Reproducir eligiendo pista de idioma de subtítulos (NOTA: para comprobar qué idiomas de subtítulos lleva el archivo, ejecutar 'mpv --frames 0 dvd://(nº título)'{para un DVD}, 'mpv --frames 0 dvd://(nº título) --dvd-device "[nombre_directorio_ó_imagen_.iso]"'{para un DVD en directorio o ISO}, 'mpv --frames 0 [nombre_archivo]'{para otros archivos}): mpv --slang (código de letras) [nombre_archivo] Ejemplos: mpv --slang jpn película.mkv (reproduce un MKV con subtítulos en japonés) mpv dvd://1 --slang es,en (reproduce un DVD con subtítulos en castellano; y si no están disponibles en castellano lo reproduce con subtítulos en inglés) - Reproducir un vídeo usando como audio un archivo externo (sea sólo audio o de audio/vídeo): mpv --audio-file [nombre_archivo_externo] [nombre_archivo_vídeo_a_reproducir] - Reproducir añadiendo un archivo externo de subtítulos de DVD (VobSub) .sub: mpv --sub-file [nombre_base_archivo_subtítulos].sub [nombre_archivo_a_reproducir] - Reproducir añadiendo un archivo externo de subtítulos de Bluray (SUP): mpv --sub-file [nombre_archivo_subtítulos] [nombre_archivo_a_reproducir] - Reproducir añadiendo un archivo externo de subtítulos de texto en formato SRT, ASS o VTT: mpv --sub-file [nombre_archivo_subtítulos] [nombre_archivo_a_reproducir] - Reproducir deshabilitando el uso de subtítulos: mpv --no-sub [nombre_archivo_a_reproducir] - Adelantar o retrasar la reproducción de subtítulos: mpv --sub-delay (nº segundos) [nombre_archivo] (para adelantar los subtítulos) mpv --sub-delay -(nº segundos) [nombre_archivo] (para retrasar los subtítulos) - Reproducir eligiendo verticalmente la posición de reproducción de los subtítulos: mpv --sub-pos (nº porcentaje del tamaño de pantalla{entre 0 y 100}) [nombre_archivo] Ejemplos: mpv --sid 2 --sub-pos 50 película.mkv (muestra los subtítulos al 50% de altura {es decir, a la mitad}) mpv --sid 2 --sub-pos 100 película.mkv (muestra los subtítulos al 100% de altura {es decir, abajo del todo}) - Reproducir a partir de un determinado capítulo (solamente en DVD, Blu-ray y archivos que dispongan de capítulos): mpv --chapter (nº capítulo) [nombre_archivo] - Reproducir a partir de un determinado capítulo y terminar en otro (solamente en DVD, Blu-ray y archivos que dispongan de capítulos): mpv --chapter (nº capítulo de comienzo)-(nº capítulo a finalizar) [nombre_archivo] - Reproducir a partir de un determinado intervalo o porcentaje de tiempo: mpv --start (nº segundos) [nombre_archivo] mpv --start (nº horas):(nº minutos):(nº segundos).(nº milisegundos) [nombre_archivo] mpv --start (nº porcentaje)% [nombre_archivo] - Reproducir unos determindos últimos segundos o determinadas últimas horas:minutos:segundos:milisegundos: mpv --start -(nº segundos) [nombre_archivo] mpv --start -(nº horas):(nº minutos):(nº segundos).(nº milisegundos) [nombre_archivo] - Reproducir hasta un determinado intervalo o porcentaje de tiempo: mpv --length (nº segundos) [nombre_archivo] mpv --end (nº segundos) [nombre_archivo] mpv --length (nº horas):(nº minutos):(nº segundos).(nº milisegundos) [nombre_archivo] mpv --end (nº horas):(nº minutos):(nº segundos).(nº milisegundos) [nombre_archivo] mpv --length (nº porcentaje)% [nombre_archivo] mpv --end (nº porcentaje)% [nombre_archivo] - Reproducir un determinado intervalo o porcentaje de tiempo: mpv --start (tiempo desde donde empezar) --length (tiempo que se reproducirá, que no posición) [nombre_archivo] mpv --start (tiempo desde donde empezar) --end (tiempo hasta el que se reproducirá) [nombre_archivo] mpv --start (porcentaje desde donde empezar)% --length (porcentaje que se reproducirá, que no posición)% [nombre_archivo] mpv --start (porcentaje desde donde empezar)% --end (porcentaje hasta el que se reproducirá)% [nombre_archivo] - Aumentar velocidad de reproducción: mpv --speed (nº velocidad {entre 1.01 y 100}) [nombre_archivo] - Ralentizar velocidad de reproducción: mpv --speed (nº velocidad {entre 0.99 y 0.01}) [nombre_archivo] - Reproducir eligiendo tipo de información en pantalla: mpv --osd-level 0 [nombre_archivo] (no muestra posición de tiempo) mpv --osd-level 2 [nombre_archivo] (muestra posición de tiempo de reproducción) mpv --osd-level 3 [nombre_archivo] (muestra posición de tiempo de reproducción y tiempo total de reproducción) - Guardar cada fotograma de un determinado trozo de un vídeo en formato JPEG: mpv --start (tiempo desde donde empezar) --length (tiempo que se guardará, que no posición) --vo image [nombre_vídeo] mpv --start (tiempo desde donde empezar) --end (tiempo hasta el que se guardará) --vo image [nombre_vídeo] ***NOTA: las capturas se guardarán en el mismo directorio donde se encuentra el vídeo y con el patrón "00000001.jpg", "00000002.jpg" ..... - Guardar cada fotograma de un determinado trozo de un vídeo en formato PNG: mpv --start (tiempo desde donde empezar) --length (tiempo que se guardará, que no posición) --vo image:format=png:png-compression=9 [nombre_vídeo] mpv --start (tiempo desde donde empezar) --end (tiempo hasta el que se guardará) --vo image:format=png:png-compression=9 [nombre_vídeo] ***NOTA: las capturas se guardarán en el mismo directorio donde se encuentra el vídeo y con el patrón "00000001.png", "00000002.png" ..... - Guardar en un GIF animado un determinado trozo de archivo: mpv --start (tiempo desde donde empezar) --length (tiempo que se guardará, que no posición) -o "[nombre_archivo_salida].gif" \ --vf crop=(nº píxeles anchura a recortar):(nº píxeles altura a recortar):(nº píxeles donde empezar recorte anchura):(nº píxeles donde empezar recorte altura),scale=(nº píxeles anchura):(nº píxeles altura) \ [nombre_archivo_a_reproducir] mpv --start (tiempo desde donde empezar) --end (tiempo hasta el que se guardará) -o "[nombre_archivo_salida].gif" \ --vf crop=(nº píxeles anchura a recortar):(nº píxeles altura a recortar):(nº píxeles donde empezar recorte anchura):(nº píxeles donde empezar recorte altura),scale=(nº píxeles anchura):(nº píxeles altura) \ [nombre_archivo_a_reproducir] Ejemplo: mpv --start 00:05:15 --end 00:05:20 -o atardecer.gif --vf crop=1917:1079:3:1,scale=360:240 video.mkv - Reproducir rotando la visualización: mpv --video-rotate 90 [nombre_archivo] (rotar 90 grados en el sentido de las agujas del reloj) mpv --video-rotate 180 [nombre_archivo] (rotar 180 grados en el sentido de las agujas del reloj) mpv --video-rotate 270 [nombre_archivo] (rotar 270 grados en el sentido de las agujas del reloj) - Reproducir girando la visualización 180 grados: mpv --vf flip [nombre_archivo] - Reproducir girando la visualización a modo de espejo: mpv --vf mirror [nombre_archivo] - Intentar reducir ruido de imagen al reproducir: mpv --vf hqdn3d=luma_spatial=4:chroma_spatial=3:luma_tmp=6 [nombre_archivo] - Reproducir solamente el audio de un archivo: mpv --no-video [nombre_archivo] - Reproducir un archivo contenido en un archivo RAR 4 ó inferior SIN contraseña y SIN grado de compresión: mpv [nombre_archivo_RAR] Ejemplo: mpv elmohino.part001.rar - Reproducir un archivo contenido en un archivo RAR 4 ó inferior CON contraseña o CON grado de compresión o un RAR 5 ó superior CON o SIN contraseña (NOTA: se requiere la instalación previa de las aplicaciones "unrar" ó "rar"): unrar -p(contraseña{si tiene}) p -inul [nombre_archivo_RAR] | mpv --force-seekable yes - rar -p(contraseña{si tiene}) p -inul [nombre_archivo_RAR] | mpv --force-seekable yes - Ejemplo: unrar -pelmohino p -inul elmohino.part001.rar | mpv --force-seekable yes - - Intentar extraer un archivo contenido en un archivo RAR dañado o incompleto (NOTA: se requiere la instalación previa de las aplicaciones "unrar" ó "rar"): unrar -p(contraseña{si tiene}) p -inul [nombre_archivo_RAR] | mpv - --stream-dump "[nombre_archivo_salida]" rar -p(contraseña{si tiene}) p -inul [nombre_archivo_RAR] | mpv - --stream-dump "[nombre_archivo_salida]" - Reproducir un archivo contenido en un archivo ZIP unitario completamente descargado: unzip -P (contraseña{si tiene}) -p [nombre_archivo_ZIP] | mpv --force-seekable yes - - Intentar extraer un archivo contenido en un archivo ZIP dañado o incompleto: unzip -P (contraseña{si tiene}) -p [nombre_archivo_ZIP] | mpv - --stream-dump "[nombre_archivo_salida]" - Reproducir un archivo contenido en un archivo 7-Zip, ZIP, Gzip, Bzip2 ó Tar completamente descargado (NOTA: se requiere la instalación previa de la aplicación "p7zip-full"): 7z e -p(contraseña{si tiene}) -so [nombre_archivo_a_reproducir] | mpv --force-seekable yes - Ejemplo: 7z e -pelmohino -so elmohino.7z.001 | mpv --force-seekable yes - - Intentar extraer un archivo contenido en un archivo 7-Zip, ZIP, Gzip, Bzip2 ó Tar dañado o incompleto (NOTA: se requiere la instalación previa de la aplicación "p7zip-full"): 7z e -p(contraseña{si tiene}) -so [nombre_archivo_entrada] | mpv - --stream-dump "[nombre_archivo_salida]" - Reproducir un archivo cortado con "split", "lxsplit", "hoz", "dalle", "HJ-Split & Joiner", "Hacha" u otras aplicaciones similares: cat [nombre_base_de_los_trozos]* | mpv --force-seekable yes - Ejemplo: (Los trozos son: elmohino.mkv.001, elmohino.mkv.002, .....) cat elmohino.mkv.* | mpv --force-seekable yes - - Reproducir un vídeo de Youtube y otros servidores de vídeo (NOTA: se requiere la instalación previa del script "youtube-dl"): mpv [url_del_vídeo_o_página_que_contiene_la_url_del_vídeo] ***NOTA: por defecto de reproducirá el vídeo en su mejor calidad audio-vídeo disponible ***NOTA: para ver la lista de servidores de vídeo compatibles, ejecutar 'youtube-dl --list-extractors' - Reproducir un vídeo de Youtube y otros servidores de vídeo compatibles eligiendo la calidad de reproducción (NOTA: se requiere la instalación previa del script "youtube-dl"): mpv --ytdl-format (código de formato de calidad) [url_del_vídeo] ***NOTA: para conocer cuáles son los códigos de formato disponibles para un vídeo, ejecutar 'youtube-dl -F [url_del_vídeo]' Ejemplos: mpv --ytdl-format bestvideo+bestaudio/best [url_del_vídeo] (con la mejor calidad disponible) mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" [url_del_vídeo] (con la mejor calidad disponible sin superar los 1080 píxeles de altura de vídeo) mpv --ytdl-format bestvideo[vcodec=vp9]+bestaudio[acodec=opus]/webm [url_del_vídeo] (con la mejor calidad disponible, pero solo con formatos de código libre) mpv --ytdl-format bestvideo/best --no-audio [url_del_vídeo] (solo vídeo con la mejor calidad disponible) mpv --ytdl-format bestaudio/best --no-video [url_del_vídeo] (solo audio con la mejor calidad disponible) mpv --ytdl-format bestaudio[acodec=opus]/webm --no-video [url_del_vídeo] (solo audio con la mejor calidad disponible, pero solo con formatos de código libre) mpv --ytdl-format worstvideo+worstaudio/worst [url_del_vídeo] (con la peor calidad disponible) mpv --ytdl-format worstvideo/worst --no-audio [url_del_vídeo] (solo vídeo con la peor calidad disponible) mpv --ytdl-format worstaudio/worst --no-video [url_del_vídeo] (solo audio con la peor calidad disponible) mpv --ytdl-format best [url_del_vídeo] (con la mejor calidad audio-vídeo en archivo unitario) mpv --ytdl-format worst [url_del_vídeo] (con la peor calidad audio-vídeo en archivo unitario) mpv --ytdl-format mp4 [url_del_vídeo] (con la mejor calidad audio-vídeo en formato MP4 en archivo unitario) mpv --ytdl-format webm [url_del_vídeo] (con la mejor calidad audio-vídeo en formato WebM en archivo unitario {solamente para Youtube}) mpv --ytdl-format 3gp [url_del_vídeo] (con la mejor calidad audio-vídeo en formato 3GP en archivo unitario {solamente para Youtube}) mpv --ytdl-format m4a [url_del_vídeo] (solo audio con la mejor calidad en formato AAC en archivo unitario {solamente para Youtube}) - Buscar y reproducir vídeos secuencialmente de Youtube (NOTA: se requiere la instalación previa del script "youtube-dl"): ***NOTA: en el "texto a buscar" no usar caracteres especiales no presentes en el inglés ***NOTA: la búsqueda se ordenará por los resultados más relevantes, los cuales irán reproduciéndose secuencialmente mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" ytdl://ytsearch(nº máximo de resultados):"[texto a buscar]" mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" ytdl://ytsearchall:"[texto a buscar]" (busca todos los resultados) Ejemplo: mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" ytdl://ytsearch10:"madonna jump" - Buscar y reproducir solo el audio secuencialmente de vídeos de Youtube (NOTA: se requiere la instalación previa del script "youtube-dl"): ***NOTA: en el "texto a buscar" no usar caracteres especiales no presentes en el inglés ***NOTA: la búsqueda se ordenará por los resultados más relevantes, los cuales irán reproduciéndose secuencialmente mpv --ytdl-format bestaudio/best --no-video ytdl://ytsearch(nº máximo de resultados):"[texto a buscar]" mpv --ytdl-format bestaudio/best --no-video ytdl://ytsearchall:"[texto a buscar]" (busca todos los resultados) Ejemplo: mpv --ytdl-format bestaudio/best --no-video ytdl://ytsearch10:"madonna jump" - Buscar en Google Vídeos y reproducir vídeos secuencialmente (NOTA: se requiere la instalación previa del script "youtube-dl"): ***NOTA: en el "texto a buscar" no usar caracteres especiales no presentes en el inglés ***NOTA: la búsqueda se ordenará por los resultados más relevantes, los cuales irán reproduciéndose secuencialmente mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" ytdl://gvsearch(nº máximo de resultados):"[texto a buscar]" mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" ytdl://gvsearchall:"[texto a buscar]" (busca todos los resultados) Ejemplo: mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=?1080]" ytdl://gvsearch10:"madonna jump" - Buscar en Google Vídeos y reproducir solo el audio secuencialmente de vídeos (NOTA: se requiere la instalación previa del script "youtube-dl"): ***NOTA: en el "texto a buscar" no usar caracteres especiales no presentes en el inglés ***NOTA: la búsqueda se ordenará por los resultados más relevantes, los cuales irán reproduciéndose secuencialmente mpv --ytdl-format bestaudio/best --no-video ytdl://gvsearch(nº máximo de resultados):"[texto a buscar]" mpv --ytdl-format bestaudio/best --no-video ytdl://gvsearchall:"[texto a buscar]" (busca todos los resultados) Ejemplo: mpv --ytdl-format bestaudio/best --no-video ytdl://gvsearch10:"madonna jump" - Buscar en SoundCloud y reproducir audios secuencialmente (NOTA: se requiere la instalación previa del script "youtube-dl"): ***NOTA: en el "texto a buscar" no usar caracteres especiales no presentes en el inglés ***NOTA: la búsqueda se ordenará por los resultados más relevantes, los cuales irán reproduciéndose secuencialmente mpv --ytdl-format bestaudio/best ytdl://scsearch(nº máximo de resultados):"[texto a buscar]" mpv --ytdl-format bestaudio/best ytdl://scsearchall:"[texto a buscar]" (busca todos los resultados) Ejemplo: mpv --ytdl-format bestaudio/best ytdl://scsearch10:"madonna jump" ***NOTA: si se desea ejecutar lo anterior de forma rápida con un solo comando, añadir lo siguiente al archivo '/home/[nombre_directorio_usuario]/.bashrc': function mm() { mpv --ytdl-format bestaudio/best --no-video ytdl://gvsearch10:"$@" } (Guardar el archivo '/home/[nombre_directorio_usuario]/.bashrc' y ejecutar '. ~/.bashrc'. Para buscar y reproducir, ejecutar 'mm "[texto a buscar]"' - Crear y usar archivo de configuración: * Crear el archivo de configuración en '~/.config/mpv/mpv.conf' * Una vez creado añadir las configuraciones que se desean usar automáticamente en mpv (una configuración por cada línea y SIN espacios en blanco). Ejemplo: ytdl-format="bestvideo[height<=?1080]+bestaudio" loop=inf alang=es slang=es screenshot-format=png screenshot-png-compression=9 * Una vez añadidas las configuraciones deseadas, guardar el archivo. A partir de ahora, mpv usará automáticamente las configuraciones guardadas en el archivo 'mpv.conf' sin necesidad de asignárselas por la línea de comandos - Deshabilitar el uso del archivo de configuración: mpv --no-config "[nombre_archivo]" # TECLAS DE CONTROL DURANTE LA REPRODUCCIÓN: DERECHA Avanzar en la reproducción 5 segundos IZQUIERDA Rebobinar en la reproducción 5 segundos MAYÚ.+DERECHA Avanzar en la reproducción 1 segundos MAYÚ.+IZQUIERDA Rebobinar en la reproducción 1 segundos ARRIBA Avanzar en la reproducción 1 minuto ABAJO Rebobinar en la reproducción 1 minuto MAYÚ.+RE.PÁG. Avanzar en la reproducción 10 minutos MAYÚ.+AV.PÁG. Rebobinar en la reproducción 10 minutos (Rueda ratón) Hacia arriba: avanzar en la reproducción 10 segundos; hacia abajo: rebobinar en la reproducción 10 segundos ] Aumentar la velocidad de reproducción actual en un 10% [ Reducir la velocidad de reproducción actual en un 10% } Doblar la velocidad de reproducción actual { Reducir a la mitad la velocidad de reproducción actual RETROCESO Volver a la velocidad normal de reproducción RE.PÁG. Reproducir el capítulo siguiente AV.PÁG. Reproducir el capítulo anterior > ó ENTER Reproducir el archivo siguiente < Reproducir el archivo anterior ESPACIO ó P Activar/Desactivar pausa de reproducción (Botón der. ratón) Activar/Desactivar pausa de reproducción . Pausa la reproducción y va avanzando de fotograma en fotograma con cada posterior pulsación (pulsar ESPACIO o "P" para volver a la velocidad normal de reproducción) , Pausa la reproducción y va retrocediendo de fotograma en fotograma con cada posterior pulsación (pulsar ESPACIO o "P" para volver a la velocidad normal de reproducción) Q Detiene la reproducción y sale de la aplicación MAYÚ.+Q Detiene la reproducción, sale de la aplicación y guarda la posición para empezar a reproducir por ella la próxima vez CTRL++ Adelanta la reproducción de audio en 0,1 segundos CTRL+- Retrasa la reproducción de audio en 0,1 segundos * ó 0 Aumentar volumen / ó 9 Disminuir volumen M Activar/Desactivar silenciado de audio _ Desactivar/Activar la imagen # Alternar entre pistas de audio disponibles F Activar/Desactivar modo de pantalla completa (Doble clic) Activar/Desactivar modo de pantalla completa ESC Desactivar modo de pantalla completa O Ver, hasta que se suelta la tecla, el tiempo de reproducción transcurrido, tiempo de reproducción total, porcentaje de reproducción trasncurrido y barra de progreso MAYÚ.+O Cambiar información en pantalla: posición de tiempo de reproducción, tiempo total de reproducción y porcentaje de posición de reproducción --> posición de tiempo desactivada V Desactivar/Activar los subtítulos (activados por defecto) J ó MAYÚ.+J Alternar entre subtítulos disponibles R Sube la posición de los subtítulos T Baja la posición de los subtítulos X Aumenta la reproducción de subtítulos en 0,1 segundos Z Retrasa la reproducción de subtítulos en 0,1 segundos L Primera pulsación marca el punto de inicio A de repetición de un fragmento; segunda pulsación marca el punto final B de repetición de un fragmento; tercera pulsación desactiva la repetición y borra los puntos A y B S Realizar una captura de imagen con subtítulos (en formato JPG si no se ha configurado lo contrario) MAYÚ.+S Realizar una captura de imagen sin subtítulos (en formato JPG si no se ha configurado lo contrario) MAYÚ.+I Mostrar, hasta que se suelta la tecla, el nombre de archivo reproducido en pantalla 1 Disminuir contraste 2 Aumentar contraste 3 Disminuir brillo 4 Aumentar brillo 5 Disminuir gamma 6 Aumentar gamma 7 Disminuir saturación de colores 8 Aumentar saturación de colores # USANDO MPV EN EL NAVEGADOR FIREFOX: > Copiar el texto abajo indicado y pegarlo en un archivo de texto: #!/bin/bash mpv --ytdl-format "bestvideo[height<=?1080]+bestaudio/best[height<=1080]" "$@" > Guardar el archivo de texto y renombrarlo, por ejemplo, con "mpv_v2" > Instalar el script creado: sudo install mpv_v2 /usr/local/bin > Instalar en Firefox la extensión "FlashGot Mass Downloader": https://addons.mozilla.org/es/firefox/addon/flashgot/ > Seleccionar "Complementos": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar "Extensiones>FlashGot>Preferencias": (Pinchar sobre la imagen para verla a su tamaño original) > En la ventana emergente que aparecerá, seleccionar "Opciones generales>Añadir": (Pinchar sobre la imagen para verla a su tamaño original) > A continuación introducir el nombre que se desee. Por ejemplo, mpv_v2. Pulsar "Aceptar": (Pinchar sobre la imagen para verla a su tamaño original) > Seguidamente aparecerá el explorador de archivos que corresponda al entorno de Escritorio que se esté usando: (Pinchar sobre la imagen para verla a su tamaño original) > En el explorador habrá que buscar e indicar a FlashGot la ruta del script "mpv_v2" anteriormente instalado ( /usr/local/bin/mpv_v2 ): (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) > Una vez seleccionado el script "mpv_v2", pulsar en "Abrir": (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) > Marcar la casilla "Mostrar en menú contextual" y pulsar "Aceptar" para terminar: (Pinchar sobre la imagen para verla a su tamaño original) - Buscar cualquier vídeo o página que sean compatibles con youtube-dl, y posicionando el cursor del ratón sobre su enlace, hacer clic con el botón derecho del ratón y seleccionar en el menú emergente "mpv_v2": (Pinchar sobre la imagen para verla a su tamaño original) - Unos instantes después (según la velocidad que tenga la conexión de Internet) comenzará la reproducción del vídeo en una ventana emergente independiente de Firefox: (Pinchar sobre la imagen para verla a su tamaño original)
  4. En mi opinión, sí. Se obtiene un resultado idéntico al mío. Salud.
  5. Yo he utilizado exactamente las mismas opciones que el compañero HugoLinux (difuminado de 20 puntos) y, como se ve, la imagen resultante respeta la tonalidad del blanco. En cuanto a su versión de FFmpeg, está Vd. usando la versión de desarrollo N-77455-g4707497. Son versiones de desarrollo que se publican diariamente (la de hoy, 20 de agosto de 2016, es la N-81400-g15dd56c). La de Ud. apareció en algún día a finales de 2015. Su instalación debe haber sido por repositorio (quizás PPA) o por código fuente. El 4.8 es la versión del software que se ha usado para compilar ese FFmpeg: GCC (GNU Compiler Collection). Salud.
  6. Acabo de reproducir su proceso de manipulación de la imagen y este es el resultado que me arroja a mí: ¿Podría ser que esté Vd. usando una versión antigua de FFmpeg? Yo estoy usando la última, la 3.1.2, en formato binario, tal y como explico en mi tutorial: http://gnulinuxvagos.es/topic/5789-ffmpeg-codificación-audiovídeo-por-línea-comandos-uso-avanzado/ Salud.
  7. QEMU es un emulador y virtualizador de hardware y sistemas operativos hecho en código libre. Cuando se usa como emulador, QEMU puede ejecutar sistemas operativos y programas compilados para una arquitectura (por ejemplo, un sistema ARM) en una máquina diferente (por ejemplo, un PC). Cuando se utiliza como virtualizador, QEMU alcanza casi el mismo rendimiento que el hardware anfitrión, ya que ejecuta el sistema operativo invitado directamente en el CPU anfitrión. QEMU solamente puede virtualizar cuando se ejecuta bajo los conocidos como hipervisores, tal y como es KVM. **IMPORTANTE: por el momento, QEMU-KVM no es capaz de funcionar con la aceleración 3D de las modernas tarjetas gráficas (necesaria para algunos programas y videojuegos) **NOTA: este tutorial solamente se centrará en la emulación/virtualización básica de sistemas operativos Windows y GNU/Linux. QEMU-KVM es capaz de emular/virtualizar otros sistemas operativos (Mac OS, Android), pero el que aquí escribe no conoce el correcto funcionamiento de esos sistemas ejecutándose en QEMU-KVM - Para comprobar si el procesador central del PC (CPU) soporta virtualización de hardware, ejecutar: cat /proc/cpuinfo | egrep --color '(vmx|svm)' - Si lo anterior arroja como resultado: > flags: vmx (significa que el procesador soporta virtualización Intel VT) > flags: svm (significa que el procesador soporta virtualización AMD-V) - También cabe la posibilidad que la virtualización esté desactivada en la BIOS del PC aunque la línea de comandos anterior confirme la capacidad de virtualización. En este caso habría que acceder a la referida BIOS para comprobarlo. - En los kernels (núcleos) modernos de Linux (a partir de la versión 2.6.20) el módulo KVM suele venir activado por defecto. No obstante, se puede comprobar que lo esté: lsmod | grep kvm - Si lo anterior arroja algo parecido a lo siguiente, significa que el módulo KVM está activado: > En procesadores Intel: kvm_intel 139116 0 kvm 388784 1 kvm_intel > En procesadores AMD: kvm_amd 139116 0 kvm 388784 1 kvm_amd - Si el resultado arrojado es parecido al siguiente, signfica que el módulo KVM no está activado: kvm 388784 0 - Para intentar activar el módulo, ejecutar lo siguiente: > Para procesadores Intel: sudo modprobe kvm_intel > Para procesadores AMD: sudo modprobe kvm_amd - Si finalmente no es posible usar la virtualización KVM, cabrá la opción de usar la emulación QEMU sustituyendo el comando "kvm" por "qemu-system-x86_64" y suprimiendo las opciones "-enable-kvm" y "-cpu host". Esto hará que el sistema operativo emulado funcione sensiblemente más lento que con la virtualización y también supondrá que algunos sistemas operativos (Windows 8 y 10) no puedan ser instalados ni ejecutados # INSTALACIÓN - En Debian, Ubuntu y derivados: sudo apt-get install qemu-kvm # CREACIÓN DE LA IMAGEN DE DISCO DURO - Creación de imagen QEMU de disco duro: qemu-img create -f qcow2 [nombre_imagen_disco].qcow2 16G * Donde: -f qcow2 = indica el formato de disco duro a crear 16G = indica el tamaño máximo que podrá alcanzar el disco duro, 16 GB en este caso **NOTA: la imagen QEMU es una imagen de disco duro dinámica, es decir, aumenta su capacidad según el sistema operativo instalado en ella lo va necesitando. Por esa razón la imagen tendrá solamente un pocas kB de tamaño al principio - Creación de imagen RAW de disco duro [NOTA: con este tipo de imagen el sistema instalado puede funcionar algo más rápido]: qemu-img create -f raw [nombre_imagen_disco].img 16G **NOTA: al contrario que con la imagen QEMU, la imagen RAW será creada desde un principio con su tamaño máximo, 16 GB en este caso # INSTALACIÓN DE SISTEMAS OPERATIVOS ***NOTA: antes de proceder a la instalación, es conveniente saber cuál es el uso máximo permitido de memoria física RAM que puede usar el emulador/virtualizador. Para ello ejecutar: df -h /dev/shm ***NOTA: es recomendable usar algo menos de la memoria total disponible ***NOTA: (en algunos sistemas operativos) para devolver el cursor al sistema anfitrión pulsar sobre el sistema invitado CTRL+ALT ***NOTA: para intercambiar entre pantalla normal y pantalla completa pulsar sobre ella CTRL+ALT+F - Instalación de sistemas Windows: kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 2G -localtime -cdrom "/media/usuario/Elements/es_windows_10_enterprise_x64_dvd_6851399.iso" \ -hda /home/usuario/Win.10.Enterprise.qcow2 -boot once=d,menu=off -net nic,vlan=0 -net user,vlan=0 -name "Windows 10 Enterprise x64" -soundhw hda -usbdevice tablet *Donde: -monitor = asigna el tipo de monitor que se emulará [se recomienda stdio] -cpu host = asigna el tipo de CPU(procesador central) que se emulará; en este caso el mismo tipo que existe físicamente en el sistema operativo anfitrión [requerido en instalaciones y ejecuciones de sistemas operativos Windows 8 y 10] -k es = asigna el tipo de configuración del teclado; en este caso teclado en español -vga std = asigna el tipo de tarjeta gráfica que se emulará; en este caso estándar -enable-kvm = se habilita el módulo aceleración KVM (si está disponible) -m 2G = asigna el máximo de memoria RAM que usará la emulación; en este caso 2 GB -localtime = se usará el reloj del sistema anfitrión como reloj del sistema invitado(sistema emulado) -cdrom = asigna la ruta en la que se encuentra la imagen ISO o unidad CD-ROM con los archivos a instalar -hda = asigna la ruta en la que se encuentra la imagen de disco duro sobre la que se realizará la instalación o, en su caso, se ejecutará el sistema ya instalado -boot once=d = indica a QEMU que la emulación debe arrancar prioritariamente con la unidad CD-ROM o imagen ISO asignadas en -cdrom -boot menu=off = deshabilita el menú inicial de selección manual de dispositivo de arranque -net nic,vlan=0 -net user,vlan=0 = el sistema invitado usará la misma conexión de Internet que el sistema anfitrión -name = asigna un nombre de identificación a la ventana de ejecución de QEMU (opcional) -soundhw = asigna el tipo de tarjeta de sonido que se emulará [se recomienda en Windows usar "hda"] -usbdevice tablet = permite que el puntero del ratón pueda pasar del sistema anfitrión al sistema invitado y viceversa simplemente moviendo el ratón (Pinchar sobre la imagen para verla a su tamaño original) - Instalación de sistemas GNU/Linux: kvm -monitor stdio -k es -enable-kvm -m 1024 -localtime -cdrom /media/sdc1/Win7AIO/Knoppix.7.5.0.iso -hda /home/usuario/knoppix750.qcow2 -boot once=d,menu=off \ -net nic,vlan=0 -net user,vlan=0 -name "Knoppix 7.5.0" -soundhw all -show-cursor *Donde: -m 1024 = asigna el máximo de memoria RAM que usará la emulación; en este caso 1024 MB (1 GB) -soundhw all = emula todos los tipos disponibles de tarjetas de sonido (Pinchar sobre la imagen para verla a su tamaño original) # EJECUCIÓN DE SISTEMAS OPERATIVOS YA INSTALADOS - Ejecución estándar de un sistema Windows: kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 2G -localtime -hda /home/usuario/Win.7.UL-Lite.qcow2 -boot once=c,menu=off -net nic,vlan=0 \ -net user,vlan=0 -name "Windows 7 Ultimate x86" -soundhw hda -usbdevice tablet *Donde: -boot once=c = indica a QEMU que la emulación debe arrancar prioritariamente con la imagen de disco asignada en -hda - Ejecución estándar de un sistema GNU/Linux: kvm -monitor stdio -k es -enable-kvm -m 1G -localtime -hda /home/usuario/knoppix750.qcow2 -boot once=c,menu=off -net nic,vlan=0 -net user,vlan=0 -name "Knoppix 7.5.0" -soundhw all -show-cursor - Ejecución seleccionando el nº de núcleos de cada CPU e hilos de procesado por cada núcleo (opción -smp) [ATENCIÓN: si se seleccionan unos valores superiores a los que realmente existen físicamente, el sistema invitado puede ralentizarse]: kvm -monitor stdio -cpu host -smp cores=2,threads=2 -k es -vga std -enable-kvm -m 2G -localtime -hda /home/usuario/Win.7.UL-Lite.qcow2 -boot once=c,menu=off -net nic,vlan=0 \ -net user,vlan=0 -name "Windows 7 Ultimate x86" -soundhw hda -usbdevice tablet ***NOTA: el nº de hilos de procesado disponibles se calcula multiplicando el número de núcleos del CPU por 2. Ej.: CPU Intel i7 (4 núcleos) --> 4x2 = 8 hilos de procesado disponibles. *Donde: cores=2 = indica el nº de núcleos a emular por cada CPU threads=2 = indica el nº de hilos de procesado a emular por cada núcleo - Ejecución deshabilitando la conexión a Internet: kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 2G -localtime -hda /home/usuario/Win.7.UL-Lite.qcow2 -boot once=c,menu=off -net none -name "Windows 7 Ultimate x86" \ -soundhw hda -usbdevice tablet - Ejecución de un sistema Windows preparándolo para compartir un directorio con el sistema anfitrión (se requiere la instalación previa de 'samba'): kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 2G -localtime -hda /home/usuario/Win.7.UL-Lite.qcow2 -boot once=c,menu=off -net nic,vlan=0 -net user,vlan=0 \ -name "Windows 7 Ultimate x86" -soundhw hda -usbdevice tablet -smb /ruta/directorio/a/compartir * En Windows 7: (Una vez dentro del sistema invitado seleccionar 'Inicio>Equipo>Desinstalar o cambiar un programa>Conectar a una unidad de red', escribir en el recuadro 'Carpeta'): \\10.0.2.4\qemu (Pinchar sobre la imagen para verla a su tamaño original) * En Windows 10: (Una vez dentro del sistema invitado seleccionar 'Inicio>Explorador de archivos>Este equipo>Equipo>Conectar a unidad de red>Conectar a unidad de red', escribir en el recuadro 'Carpeta'): \\10.0.2.4\qemu (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) - Ejecución de un sistema GNU/Linux preparándolo para compartir un directorio con el sistema anfitrión: kvm -monitor stdio -k es -enable-kvm -m 512 -localtime -boot once=c,menu=off -net nic,vlan=0 -net user,vlan=0 -name "Debian Live 8.1.0" -soundhw all -show-cursor \ -drive file=/home/usuario/DebianLive8.1.0.qcow2,if=virtio -fsdev local,security_model=passthrough,id=fsdev0,path=/directorio/a/compartir \ -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare *Donde: -drive file=/home/usuario/DebianLive8.1.0.qcow2 = asigna la ruta en la que se encuentra la imagen de disco duro con el sistema invitado instalado path=/directorio/a/compartir = ruta del directorio del sistema anfitrión a compartir con el sistema invitado (Una vez dentro del sistema invitado ejecutar lo siguiente): sudo mount -t 9p -o trans=virtio,version=9p2000.L hostshare /punto/de/montaje *Donde: /punto/de/montaje = indica la ruta del directorio vacío del sistema invitado que se usará como punto de montaje del directorio compartido (Para que el directorio compartido se monte automáticamente en cada arranque del sistema invitado, añadir al archivo '/etc/fstab' del sistema invitado la siguiente línea): hostshare /punto/de/montaje 9p trans=virtio,version=9p2000.L,rw 0 0 - Ejecución de una instalación habilitándole una conexión a uno o más dispositivos USB compatibles con USB 2.0: (Ejecutar en un Terminal del sistema anfitrión lo siguiente para encontrar los dispositivos USB deseados): lsusb (Arrojará un resultado parecido a este): Bus 002 Device 005: ID 1058:10b8 Western Digital Technologies, Inc. Bus 002 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 0951:1665 Kingston Technology Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub (Si se desea conectar al sistema invitado, por ejemplo, los dispositivos "Kingston Technology" y "Western Digital Technologies", fijarse en los datos de su ID [0951:1665 y 1058:10b8 respectivamente]. A continuación asignárselos a la línea de comandos en "vendorid=0x" y "productid=0x". En "-device usb-host,id=" se asigna el nombre que se desee, pero diferente para cada dispositivo): sudo kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 1G -localtime -hda /home/usuario/Win.10.Enterprise.qcow2 -boot once=c,menu=off -net nic,vlan=0 \ -net user,vlan=0 -name "Windows 10 Enterprise x64" -soundhw hda -usbdevice tablet -device usb-ehci,id=ehci \ -device usb-host,id=DEVICE01,bus=ehci.0,vendorid=0x0951,productid=0x1665 -device usb-host,id=DEVICE02,bus=ehci.0,vendorid=0x1058,productid=0x10b8 ***NOTA: mientras el sistema invitado use un dispositivo USB el sistema anfitrión no puede usarlo - Conectar un dispositivo USB compatible con USB 2.0 una vez ejecutado un sistema invitado [NOTA: la instalación debe haberse ejecutado como súper usuario y con la opción "-device usb-ehci,id=ehci"]: (Ejecutar en un Terminal del sistema anfitrión lo siguiente para encontrar los dispositivos USB deseados): lsusb (Arrojará un resultado parecido a este): Bus 002 Device 005: ID 1058:10b8 Western Digital Technologies, Inc. Bus 002 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 0951:1665 Kingston Technology Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub (Si se desea conectar al sistema invitado, por ejemplo, el dispositivo "Kingston Technology", fijarse en los datos de su ID [0951:1665]. A continuación asignárselos en el Terminal donde se esté ejecutando la instalación de la siguiente manera [En "usb-host,id=" se asigna el nombre que se desee, pero debe ser diferente para cada dispositivo]): (qemu) device_add usb-host,id=DEVICE01,bus=ehci.0,vendorid=0x0951,productid=0x1665 > EJEMPLO: usuario@debian:~$ sudo kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 1024 -localtime \ > -hda /home/usuario/Win.10.Enterprise.img \ > -boot once=c,menu=off -net nic,vlan=0 -net user,vlan=0 \ > -name "Windows 10 Enterprise x64" -soundhw hda -smb /home/usuario -usbdevice tablet -device usb-ehci,id=ehci [sudo] password for usuario: QEMU 2.1.2 monitor - type 'help' for more information (qemu) device_add usb-host,id=DEVICE01,bus=ehci.0,vendorid=0x0951,productid=0x1665 (qemu) (Para desconectar el dispositivo anterior ejecutar "device_del [id_del_dispositivo]"): (qemu) device_del DEVICE01 - Ejecución de una instalación habilitándole una conexión a uno o más dispositivos USB compatibles con USB 3.0 [NOTA: solamente funciona si existen puertos USB 3.0]: (Ejecutar en un Terminal lo siguiente para encontrar los dispositivos USB deseados): lsusb (Arrojará un resultado parecido a este): Bus 002 Device 005: ID 1058:10b8 Western Digital Technologies, Inc. Bus 002 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 0951:1665 Kingston Technology Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub (Si se desea conectar al sistema invitado, por ejemplo, los dispositivos "Kingston Technology" y "Western Digital Technologies", fijarse en los datos de su ID [0951:1665 y 1058:10b8 respectivamente]. A continuación asignárselos a la línea de comandos en "vendorid=0x" y "productid=0x". En "-device usb-host,id=" se asigna el nombre que se desee, pero diferente para cada dispositivo): sudo kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 1024 -localtime -hda /home/usuario/Win.10.Enterprise.qcow2 -boot once=c,menu=off -net nic,vlan=0 \ -net user,vlan=0 -name "Windows 10 Enterprise x64" -soundhw hda -usbdevice tablet -device nec-xhci,id=xhci -device usb-ehci,id=ehci \ -device usb-host,id=DEVICE01,bus=xhci.0,vendorid=0x0951,productid=0x1665 -device usb-host,id=DEVICE02,bus=xhci.0,vendorid=0x1058,productid=0x10b8 - Conectar un dispositivo USB compatible con USB 3.0 una vez ejecutada una instalación [NOTA: la instalación debe haberse ejecutado como súper usuario y con la opción "-device nec-xhci,id=xhci", si existen puertos USB 3.0]: (Ejecutar en un Terminal lo siguiente para encontrar los dispositivos USB deseados): lsusb (Arrojará un resultado parecido a este): Bus 002 Device 005: ID 1058:10b8 Western Digital Technologies, Inc. Bus 002 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 0951:1665 Kingston Technology Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub (Si se desea conectar al sistema invitado, por ejemplo, el dispositivo "Kingston Technology", fijarse en los datos de su ID [0951:1665]. A continuación asignárselos en el Terminal donde se esté ejecutando la instalación de la siguiente manera [En "usb-host,id=" se asigna el nombre que se desee, pero debe ser diferente para cada dispositivo]): (qemu) device_add usb-host,id=DEVICE01,bus=xhci.0,vendorid=0x0951,productid=0x1665 (Para desconectar el dispositivo anterior ejecutar "device_del [id_del_dispositivo]"): (qemu) device_del DEVICE01 - Ejecución de una instalación habilitándole una conexión a uno o más dispositivos USB compatibles hasta con USB 1.1: (Ejecutar en un Terminal lo siguiente para encontrar los dispositivos USB deseados): lsusb (Arrojará un resultado parecido a este): Bus 002 Device 005: ID 1058:10b8 Western Digital Technologies, Inc. Bus 002 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 0951:1665 Kingston Technology Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub (Si se desea conectar al sistema invitado, por ejemplo, los dispositivos "Kingston Technology" y "Western Digital Technologies", fijarse en los datos de su ID [0951:1665 y 1058:10b8 respectivamente]. A continuación asignárselos a la línea de comandos en "vendorid=0x" y "productid=0x". En "-device usb-host,id=" se asigna el nombre que se desee, pero diferente para cada dispositivo)): sudo kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 1024 -localtime -hda /home/usuario/Win.10.Enterprise.qcow2 -boot once=c,menu=off -net nic,vlan=0 \ -net user,vlan=0 -name "Windows 10 Enterprise x64" -soundhw hda -usbdevice tablet -device nec-xhci,id=xhci -device usb-ehci,id=ehci \ -device usb-host,id=DEVICE01,bus=usb-bus.0,vendorid=0x0951,productid=0x1665 -device usb-host,id=DEVICE02,bus=usb-bus.0,vendorid=0x1058,productid=0x10b8d (NOTA: si no existen puertos USB 3.0, eliminar la opción "-device nec-xhci,id=xhci") - Conectar un dispositivo USB solo compatible con USB 1.1 una vez ejecutada una instalación [NOTA: la instalación debe haberse ejecutado como súper usuario]: (Ejecutar en un Terminal lo siguiente para encontrar los dispositivos USB deseados): lsusb (Arrojará un resultado parecido a este): Bus 002 Device 005: ID 1058:10b8 Western Digital Technologies, Inc. Bus 002 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 0951:1665 Kingston Technology Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub (Si se desea conectar al sistema invitado, por ejemplo, el dispositivo "Kingston Technology", fijarse en los datos de su ID [0951:1665]. A continuación asignárselos en el Terminal donde se esté ejecutando la instalación de la siguiente manera [En "usb-host,id=" se asigna el nombre que se desee, pero debe ser diferente para cada dispositivo]): (qemu) device_add usb-host,id=DEVICE01,bus=usb-bus.0,vendorid=0x0951,productid=0x1665 (Para desconectar el dispositivo anterior ejecutar "device_del [id_del_dispositivo]"): (qemu) device_del DEVICE01 - Ejecutar una instalación usando una segunda imagen de disco duro como disco esclavo: kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 1G -localtime -hda /home/usuario/Win.7.UL-Lite.qcow2 -hdb /ruta/de/segunda/imagen -boot once=c,menu=off \ -net nic,vlan=0 -net user,vlan=0 -name "Windows 7 Ultimate x86" -soundhw hda -usbdevice tablet ***NOTA: en instalaciones Windows al arrancar se iniciará una comprobación de cada uno de los dos discos virtuales. Se pueden interrumpir sin ningún problema pulsando cualquier tecla en cada comprobación - Ejecutar una imagen LiveCD/DVD: kvm -monitor stdio -k es -enable-kvm -m (nºMB de memoria RAM) -localtime -k es -soundhw all -show-cursor -name "[nombre_que_se_quiera]" -cdrom /ruta/a/la/imagen - Ejecutar un LiveCD/DVD-ROM: kvm -monitor stdio -k es -enable-kvm -m (nºMB de memoria RAM) -localtime -k es -soundhw all -show-cursor -name "[nombre_que_se_quiera]" -cdrom /dev/cdrom - Ejecutar un LiveUSB [NOTA: debe ejecutarse como súper usuario]: ***NOTA: previamente debe localizarse la ruta raíz del dispositivo USB en donde se encuentre el LiveUSB. Para ello ejecutar el siguiente comando: df -h (Arrojará un resultado parecido a este): S.ficheros Tamaño Usados Disp Uso% Montado en /dev/dm-1 642G 607G 2,1G 100% / udev 10M 0 10M 0% /dev tmpfs 791M 9,4M 782M 2% /run tmpfs 2,0G 260K 2,0G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup /dev/sda3 134M 34M 90M 28% /boot tmpfs 396M 8,0K 396M 1% /run/user/117 tmpfs 396M 16K 396M 1% /run/user/1000 /dev/sr0 6,6G 6,6G 0 100% /media/cdrom0 /dev/sdb1 932G 929G 2,6G 100% /media/usuario/SAMSUNG1TB /dev/sdd1 932G 200G 732G 22% /media/usuario/Elements /dev/sde1 60G 23G 38G 38% /media/usuario/KNOPPIX (En el ejemplo anterior la ruta del LiveUSB corresponde a '/dev/sde1'. Por tanto su ruta raíz será '/dev/sde' [sin el número]): sudo kvm -monitor stdio -k es -enable-kvm -m 1024 -localtime -k es -soundhw all -show-cursor -name "Knoppix 7.6.1" -hda /dev/sde # MANIPULACIÓN DE IMÁGENES DE DISCO DURO - Montar una imagen RAW: sudo fdisk -l [nombre_imagen_raw] (Arrojará un resultado parecido a este): Disco win.7.img: 16 GiB, 17179869184 bytes, 33554432 sectores Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x1f686792 Device Boot Start End Sectors Size Id Type win.7.img1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT win.7.img2 206848 33552383 33345536 15,9G 7 HPFS/NTFS/exFAT (Observar el tamaño de sector, que en el ejemplo es 512, y en qué sector comienza la partición de la imagen que se desea montar, que en el ejemplo sería 206848. Multiplicar a continuación el tamaño de sector por el sector de comienzo de la partición deseada, que en el ejemplo sería: 512 x 206848 = 105906176) (Usar el cálculo obtenido para montar): sudo mount -o loop,offset=105906176 [nombre_imagen_raw] /punto/de/montaje - Desmontar una imagen RAW: sudo umount /punto/de/montaje - Aumentar tamaño de una imagen qcow2 o raw [NOTA: el redimensionado en imágenes con instalaciones GNU/Linux hará que el sistema tarde 1:30 min más en arrancar] qemu-img info [imagen_qcow2_o_raw] (para comprobar el tamaño actual) >EJEMPLO: usuario@debian:~$ qemu-img info Win.7.UL-Lite.qcow2 image: Win.7.UL-Lite.qcow2 file format: qcow2 virtual size: 16G (17179869184 bytes) disk size: 3.8G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false usuario@debian:~$ (En el ejemplo anterior, la imagen QEMU tiene una capacidad total de 16 GB pero solamente está usando 3.8 GB) qemu-img resize [imagen_qcow2_o_raw] +(nº)[G|M|K] (para aumentar el tamaño) >EJEMPLO: usuario@debian:~$ qemu-img resize Win.7.UL-Lite.qcow2 +1G Image resized. usuario@debian:~$ (En el ejemplo anterior, la imagen QEMU es incrementada en 1 GB: 16GB+1GB=17GB): usuario@debian:~$ qemu-img info Win.7.UL-Lite.qcow2 image: Win.7.UL-Lite.qcow2 file format: qcow2 virtual size: 17G (18253611008 bytes) disk size: 3.8G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false usuario@debian:~$ **Para que el sistema operativo reconozca la ampliación de tamaño será necesario previamente redimensionar la imagen con alguna aplicación de particionado (p.e., GParted Live, Knoppix) contenida en una ISO arrancando la ISO con prioridad de CDROM en la máquina virtual (opciones -cdrom y -boot once=d) **Para redimensionar con GParted es necesario que el tamaño añadido esté justo por debajo de la partición principal. En el caso de instalaciones GNU/Linux con memoria de intercambio swap que están justo por debajo de la partición principal será necesario eliminar el swap, redimensionar entonces la partición principal dejando libre a la derecha de la misma el mismo tamaño que tenía el swap, crear una partición extendida con el espacio libre y por último esa partición extendida convertirla en swap > Descarga de la imagen ISO de GParted Live: http://gparted.org/download.php > Ejecutar la imagen QEMU o RAW de tamaño incrementado arrancando con GParted Live como CD-ROM: kvm -monitor stdio -cpu host -k es -vga std -enable-kvm -m 2G -localtime -cdrom "/media/usuario/Elements/gparted-live-0.26.1-5-i686.iso" \ -hda Win.7.UL-Lite.qcow2 -boot once=d,menu=off -name "Windows 7 Ultimate Lite x32" -soundhw hda -usbdevice tablet > Seleccionar y ejecutar "GParted Live (Default settings)": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar y ejecutar "Select keymap for arch list": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar y ejecutar "qwerty": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar y ejecutar "Spanish": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar y ejecutar "Standard": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar y ejecutar "Standard": (Pinchar sobre la imagen para verla a su tamaño original) > Escribir y ejecutar el número que corresponda a "Spanish" (25 en este caso): (Pinchar sobre la imagen para verla a su tamaño original) > Escribir "0" (sin comillas) y ejecutar: (Pinchar sobre la imagen para verla a su tamaño original) > Escribir "0" (sin comillas) y ejecutar: (Pinchar sobre la imagen para verla a su tamaño original) > Aparece el entorno gráfico de GParted. En él se observa el tamaño actual de la segunda partición de la imagen QEMU (15,9 GB) y una partición de 1 GB "Sin asignar": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar la segunda partición y hacer clic en el botón "Redimensionar/mover": (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) > Pinchar sobre la flecha negra superior de la derecha y, manteniéndola pulsada, arrastrarla hacia la derecha hasta el final de su recorrido (el recuadro "Espacio libre a continuación" debe quedar a cero). Seguidamente pulsar en el botón "Redimensionar/mover": (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) > La partición "Sin asignar" desaparece, ya que queda preparada para añadirse a la segunda partición: (Pinchar sobre la imagen para verla a su tamaño original) > Pinchar en el botón "Apply" para hacer efectivos los cambios: (Pinchar sobre la imagen para verla a su tamaño original) > Una vez realizados los cambios, pinchar en el botón "Close". El redimensionado se ha hecho efectivo: (Pinchar sobre la imagen para verla a su tamaño original) (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar en la pestaña "GParted" la opción "Quit" y ejecutarla: (Pinchar sobre la imagen para verla a su tamaño original) > Hacer doble clic en el botón "Exit": (Pinchar sobre la imagen para verla a su tamaño original) > Seleccionar "Shutdown" y pulsar el botón "OK": (Pinchar sobre la imagen para verla a su tamaño original) > Por último, para cerrar la virtualización, pulsar la tecla INTRO: (Pinchar sobre la imagen para verla a su tamaño original) > Opcionalmente se puede ejecutar la imagen redimensionada para comprobar que el cambio ha sido efectivo: (Pinchar sobre la imagen para verla a su tamaño original)
  8. Megatools es una suite de aplicaciones que permite una gestión por línea de comandos bastante completa de cuentas registradas del servidor MEGA. con Megatools están disponibles las siguientes herramientas: - megareg: crear y confirmar nuevas cuentas MEGA - megadf: mostrar espacio total, usado y libre de una cuenta MEGA - megals: mostrar directorios, subdirectorios, archivos, tamaños de estos y enlaces públicos de archivos existentes en una cuenta MEGA - megamkdir: crear nuevos directorios, subdirectorios y añadir nuevas direcciones de correo electrónico al directorio "Contacts" en una cuenta MEGA - megarm: borrar completamente archivos, directorios, subdirectorios y direcciones de correo electrónico en una cuenta MEGA - megaput: subir un/os archivo/s a una cuenta MEGA [ATENCIÓN: NO es posible la reanudación de subidas interrumpidas] - megaget: descargar un/os archivo/s de una cuenta MEGA [ATENCIÓN: NO es posible la reanudación de descargas interrumpidas] - megadl: descargar un/os enlace/s público/s de MEGA [ATENCIÓN: NO es posible la reanudación de descargas interrumpidas] - megacopy: subir/descargar el contenido de un directorio a/desde una cuenta MEGA [ATENCIÓN: NO es posible la reanudación de subidas o descargas interrumpidas] - megafs: montar una cuenta MEGA como sistema de archivos remoto (disco duro virtual) [ATENCIÓN: por el momento NO es posible copiar, pegar o mover archivos; solamente borrar archivos y crear o borrar directorios] - .megarc: archivo de configuración para Megatools * Instalación: - Instalar previamente las dependencias necesarias (en Debian, Ubuntu y derivados): sudo apt-get install build-essentials pkg-config libglib2.0-dev libssl-dev libcurl4-openssl-dev libfuse-dev glib-networking - Descargar el código fuente: https://megatools.megous.com - Desempaquetar el código fuente descargado, ir con un Terminal al directorio desempaquetado y ejecutar: ./configure && make && sudo make install * Cómo usar: # MEGAREG (crear y confirmar cuentas MEGA) - Crear una nueva cuenta: megareg --register --email [dirección_correo_electrónico] --name "[nombre usuario]" --password [contraseña] - Confirmar una cuenta creada a partir del enlace de verificación que se recibirá en el correo electrónico usado para la creación de la nueva cuenta: megareg --verify [enlace_de_verificación] # MEGADF (mostrar espacio total, usado y libre de una cuenta MEGA) - Mostrar espacio total, usado y libre en bytes: megadf --reload -u [dirección_correo_electrónico] -p [contraseña] ó megadf --reload -u [dirección_correo_electrónico] (de esta forma la contraseña no se mostrará a la hora de escribirla) - Mostrar espacio total, usado y libre en bytes, kilobytes, megabytes y gigabytes: megadf --reload -h -u [dirección_correo_electrónico] -p [contraseña] - Mostrar espacio total en bytes, kilobytes, megabytes y gigabytes: megadf --reload --total -h -u [dirección_correo_electrónico] -p [contraseña] - Mostrar espacio libre en bytes, kilobytes, megabytes y gigabytes: megadf --reload --free -h -u [dirección_correo_electrónico] -p [contraseña] - Mostrar espacio usado en bytes, kilobytes, megabytes y gigabytes: megadf --reload --used -h -u [dirección_correo_electrónico] -p [contraseña] - Mostrar espacio total, usado y libre en megabytes: megadf --reload --mb -h -u [dirección_correo_electrónico] -p [contraseña] - Mostrar espacio total, usado y libre en gigabytes: megadf --reload --gb -h -u [dirección_correo_electrónico] -p [contraseña] # MEGALS (mostrar directorios, subdirectorios, archivos, tamaños de estos y enlaces públicos de archivos existentes en una cuenta MEGA) - Mostrar directorios, subdirectorios y archivos con sus respectivas rutas: megals --reload -u [dirección_correo_electrónico] -p [contraseña] - Mostrar directorios y archivos sin sus respectivas rutas: megals /Root --reload -n -u [dirección_correo_electrónico] -p [contraseña] - Mostrar subdirectorios y archivos con sus respectivas rutas de un determinado directorio, subdirectorio o archivo: megals /Root/ruta/del/directorio/o/subdirectorio/o/archivo --reload -u [dirección_correo_electrónico] -p [contraseña] - Mostrar archivos con sus respectivas rutas y sus enlaces públicos: megals --reload -e -u [dirección_correo_electrónico] -p [contraseña] - Mostrar archivos con sus enlaces públicos y sus nombres sin sus rutas de un determinado directorio o subdirectorio: megals /Root/ruta/del/directorio/o/subdirectorio --reload -e -n -u [dirección_correo_electrónico] -p [contraseña] - Mostrar archivos con sus respectivas rutas, su tamaño en bytes y la fecha y hora de su última modificación: megals --reload -l -u [dirección_correo_electrónico] -p [contraseña] - Mostrar archivos con sus respectivas rutas, su tamaño en bytes, kilobytes, megabytes y gigabytes y la fecha y hora de su última modificación: megals --reload -l -h -u [dirección_correo_electrónico] -p [contraseña] # MEGAMKDIR (crear nuevos directorios, subdirectorios y añadir nuevas direcciones de correo electrónico al directorio "Contacts" en una cuenta MEGA) - Crear un/os nuevo/s directorio/s y/o subdirectorio/s: megamkdir /Root/nombre/nuevo/directorio1 /Root/nombre/nuevo/directorio2 --reload -u [dirección_correo_electrónico] -p [contraseña] - Añadir una/s nueva/s dirección/es válida/s de correo electrónico: megamkdir /Contacts/[dirección_correo_electrónico1] /Contacts/[dirección_correo_electrónico2] --reload -u [dirección_correo_electrónico] -p [contraseña] # MEGARM (Borrar completamente archivos, directorios, subdirectorios y direcciones de correo electrónico en una cuenta MEGA) - Borrar completamente un/os archivo/s, directorio/so subdirectorio/s: megarm /Root/directorio/a/borrar /Root/ruta/del/archivo/a/borrar --reload -u [dirección_correo_electrónico] -p [contraseña] - Borrar completamente una/s dirección/es de correo electrónico del directorio "Contacts": megarm /Contacts/[dirección_correo_electrónico1] /Contacts/[dirección_correo_electrónico2] --reload -u [dirección_correo_electrónico] -p [contraseña] # MEGAPUT (subir un/os archivo/s a una cuenta MEGA) [ATENCIÓN: NO es posible la reanudación de subidas interrumpidas] - Subir un/os archivo/s al directorio raíz: megaput "[archivo 1]" "[archivo 2]" --reload -u [dirección_correo_electrónico] -p [contraseña] - Subir un/os archivo/s a un determinado directorio o subdirectorio: megaput --path /Root/directorio/de/destino "[archivo 1]" "[archivo 2]" --reload -u [dirección_correo_electrónico] -p [contraseña] - Subir un archivo a un determinado directorio o subdirectorio cambiándole el nombre: megaput --path /Root/directorio/de/destino/"nuevo nombre" "[archivo a subir]" --reload -u [dirección_correo_electrónico] -p [contraseña] - Ejemplo: subir al directorio raíz todos los archivos con extensión .7z presentes en el directorio: megaput *.7z --reload -u [dirección_correo_electrónico] -p [contraseña] - Ejemplo: igual que el anterior, pero subiendo 4 archivos en paralelo (simultáneamente): ls *.7z | xargs -n1 -P4 -d "\n" megaput --reload -u [dirección_correo_electrónico] -p [contraseña] # MEGAGET (descargar un/os archivo/s de una cuenta MEGA) [ATENCIÓN: NO es posible la reanudación de descargas interrumpidas] - Descargar un/os archivo/s: megaget /Root/ruta/absoluta/del/archivo/a/descargar1 /Root/ruta/absoluta/del/archivo/a/descargar2 --reload -u [dirección_correo_electrónico] -p [contraseña] - Descargar un/os archivo/s a través de un proxy: megaget --proxy (URL_del_proxy):(puerto) /Root/ruta/absoluta/del/archivo/a/descargar1 /Root/ruta/absoluta/del/archivo/a/descargar2 --reload -u [dirección_correo_electrónico] -p [contraseña] - Descargar un/os archivo/s a un determinado directorio: megaget --path /ruta/del/directorio/de/descarga /Root/ruta/absoluta/del/archivo/a/descargar1 /Root/ruta/absoluta/del/archivo/a/descargar2 --reload -u [dirección_correo_electrónico] -p [contraseña] - Descargar un archivo enviándolo a una aplicación externa: megaget --path - /Root/ruta/absoluta/del/archivo/a/descargar --reload -u [dirección_correo_electrónico] -p [contraseña] | [aplicación externa] - Ejemplo: reproducir directamente (streaming) un archivo de audio o vídeo con VLC Media Player: megaget --path - /Root/ruta/absoluta/del/archivo/a/descargar --reload -u [dirección_correo_electrónico] -p [contraseña] | vlc - # MEGADL (descargar un/os enlace/s público/s de MEGA) [ATENCIÓN: NO es posible la reanudación de descargas interrumpidas] ***NOTA: es posible descargar tanto enlaces de archivos (enlaces de 73 caracteres) como de directorios (enlaces de 53 caracteres) ***NOTA: si el enlace pertenece a un directorio, se descargará su contenido - Descargar un/os enlace/s público/s [ATENCIÓN: los enlaces deben ir entre comillas simples]: megadl '[enlace_público_de_MEGA1]' '[enlace_público_de_MEGA2]' - Descargar un/os enlace/s público/s a través de un proxy [ATENCIÓN: los enlaces deben ir entre comillas simples]: megadl --proxy (URL_del_proxy):(puerto) '[enlace_público_de_MEGA1]' '[enlace_público_de_MEGA2]' - Descargar un/os enlace/s público/s a un determinado directorio [ATENCIÓN: los enlaces deben ir entre comillas simples]: megadl --path /ruta/del/directorio/de/descarga '[enlace_público_de_MEGA1]' '[enlace_público_de_MEGA2]' - Descargar un archivo enviándolo a una aplicación externa [ATENCIÓN: el enlace debe ir entre comillas simples]: megadl --path - '[enlace_público_de_MEGA]' | [aplicación externa] - Descargar a partir de una lista de enlaces: megadl $(cat [lista_enlaces.txt]) - Ejemplo: realizar 4 descargas paralelas (simultáneas) a partir de una lista de enlaces: cat lista_enlaces.txt | xargs -n1 -P4 megadl - Ejemplo: reproducir directamente (streaming) un archivo de audio o vídeo con VLC Media Player: megadl --path - '[enlace_público_de_MEGA]' | vlc - # MEGACOPY (subir/descargar el contenido de un directorio a/desde una cuenta MEGA) [ATENCIÓN: NO es posible la reanudación de subidas o descargas interrumpidas] - Subir el contenido de un determinado directorio local a un directorio de la cuenta de MEGA (el directorio raíz de MEGA no es válido): megacopy --reload -l /ruta/directorio/local -r /ruta/directorio/de/MEGA -u [dirección_correo_electrónico] -p [contraseña] - Descargar el contenido de un determinado directorio de MEGA a un directorio local (el directorio raíz de MEGA no es válido): megacopy --reload -d -l /ruta/directorio/local -r /ruta/directorio/de/MEGA -u [dirección_correo_electrónico] -p [contraseña] # MEGAFS (montar el sistema remoto de archivos de una cuenta MEGA en un directorio local) [ATENCIÓN: por el momento NO es posible copiar, pegar o mover archivos; solamente borrar archivos y crear o borrar directorios] - Montar el sistema remoto en un directorio local vacío: megafs /ruta/directorio/local/vacio --reload -p -u [dirección_correo_electrónico] -p [contraseña] ó megafs /ruta/directorio/local/vacio --reload -p -u [dirección_correo_electrónico] (de esta forma la contraseña no se mostrará a la hora de escribirla) - Desmontar el sistema remoto: sudo umount /ruta/directorio/local/montado # .MEGARC (archivo de configuración para identificación (logueo) automática de una cuenta MEGA) - Crear, en el directorio del usuario, un archivo de texto con el nombre de ".megarc" (sin las comillas) - Abrir el archivo y escribir lo siguiente: [Login] Username = [dirección_correo_electrónico_de_cuenta_MEGA] Password = [contraseña_de_cuenta_MEGA] - Guardar el archivo - A partir de ahora se podrán usar las herramientas de Megatools sin necesidad de escribir en la línea de comandos los datos de identificación ***NOTA: si el archivo de configuración no se encuentra en el directorio del usuario, se puede indicar a la línea de comandos dónde se encuenta: megadf --reload --config /ruta/del/archivo/de/configuración ***NOTA: si no se desea usar el archivo de configuración, se puede indicar a la línea de comandos la deshabilitación de su lectura: megadf --reload --ignore-config-file Vídeo de demostración del funcionamiento de Megatools:
  9. 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 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]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 - 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]"