informatica:software:ffmpeg
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:software:ffmpeg [2021/01/24 19:19] – [Grabación de segmentos] tempwin | informatica:software:ffmpeg [2025/02/05 13:20] (actual) – [FFplay] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== ffmpeg ====== | ====== ffmpeg ====== | ||
| + | |||
| + | ===== FFplay ===== | ||
| + | |||
| + | Con la instalación de FFmpeg se incluye FFplay, un sencillo reproductor multimedia que suele usarse para probar filtros de FFmpeg. | ||
| + | |||
| + | < | ||
| + | ffplay -vf " | ||
| + | </ | ||
| + | |||
| + | Durante la reproducción: | ||
| + | |||
| + | ^ Acción | ||
| + | | Alterna pantalla completa | ||
| + | | Pausa/ | ||
| + | | Alternar silenciar | ||
| + | | Salir | < | ||
| + | | Avanzar fotograma a fotograma | ||
| + | |||
| + | ===== ffprobe ===== | ||
| + | |||
| + | La instalación de FFmpeg también incluye la herramienta '' | ||
| + | |||
| + | < | ||
| + | ffprobe video.mp4 | ||
| + | </ | ||
| + | |||
| + | Ejemplo de salida: | ||
| + | |||
| + | < | ||
| + | Input #0, mov, | ||
| + | Metadata: | ||
| + | [...] | ||
| + | title : Big Buck Bunny, Sunflower version | ||
| + | artist | ||
| + | [...] | ||
| + | Stream # | ||
| + | [...] | ||
| + | Stream # | ||
| + | [...] | ||
| + | Stream # | ||
| + | </ | ||
| + | |||
| + | Si queremos obtener la información en formato JSON: | ||
| + | |||
| + | < | ||
| + | ffprobe -v error -hide_banner -print_format json -show_streams video.mp4 | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | ===== Soporte de códecs y formatos ===== | ||
| + | |||
| + | Para saber qué códecs soporta la compilación de ffmpegque tengamos en nuestro sistema: | ||
| + | |||
| + | < | ||
| + | ffmpeg -codecs | ||
| + | </ | ||
| + | |||
| + | Ejemplos de códecs: | ||
| + | |||
| + | * H.264 (AVC, MPEG-4) | ||
| + | * H.265 (HEVC) | ||
| + | * AAC | ||
| + | * MP3 | ||
| + | * OGG | ||
| + | |||
| + | Para saber los formatos de ficheros: | ||
| + | |||
| + | < | ||
| + | ffmpeg -formats | ||
| + | </ | ||
| + | |||
| + | Ejemplos de formatos: | ||
| + | |||
| + | * AVI | ||
| + | * Matroska (MKV) | ||
| + | * Ogg | ||
| ==== Convertir vídeos a MP4 ==== | ==== Convertir vídeos a MP4 ==== | ||
| Línea 30: | Línea 109: | ||
| < | < | ||
| - | ffmpeg -t 00:10:00 -i rtsp:// | + | ffmpeg -t 00:10:00 -i rtsp:// |
| </ | </ | ||
| Línea 49: | Línea 128: | ||
| El anterior comando creará ficheros de 30 segundos con el formato '' | El anterior comando creará ficheros de 30 segundos con el formato '' | ||
| + | |||
| + | ===== Edición ===== | ||
| + | |||
| + | ==== Cortar fragmento ==== | ||
| + | |||
| + | Si queremos cortar un trozo de cierto vídeo sin realizar una recodificación: | ||
| + | |||
| + | < | ||
| + | ffmpeg -i video.mp4 -ss 02:00 -to 10:00 -c copy resultado.mp4 | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== Casos de uso ===== | ||
| + | |||
| + | * Procesamiento de vídeo: | ||
| + | * Rotar | ||
| + | * Extracción de frames | ||
| + | * Extracción de segmentos | ||
| + | * Extracción de audio | ||
| + | * Extracción de subtítulos | ||
| + | * Conversión de colores | ||
| + | * Reducción de tamaño | ||
| + | * Conversión de formatos | ||
| + | * Convertir GIF en vídeo | ||
| + | * Procesamiento de audio: | ||
| + | * Compresión de vídeo | ||
| + | * Normalización | ||
| + | * Ganancia | ||
| + | * Remuxing | ||
| + | * Empaquetado de vídeo | ||
| + | * HLS | ||
| + | * MPEG-DASH | ||
| + | * RTMP | ||
| + | |||
| + | ===== Webcam ===== | ||
| + | |||
| + | Para ver el fichero asociado con la webcam: | ||
| + | |||
| + | < | ||
| + | v4l2-ctl --list-devices | ||
| + | </ | ||
| + | |||
| + | Para ver los formatos soportados por la webcam: | ||
| + | |||
| + | < | ||
| + | v4l2-ctl --list-formats-ext --device /dev/video0 | ||
| + | </ | ||
| + | ==== Grabar un fragmento ==== | ||
| + | |||
| + | El siguiente comando activará la webcam y grabará durante 10 segundos. El resultado se almacenará en el fichero '' | ||
| + | |||
| + | < | ||
| + | ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -t 10 -i /dev/video0 10seconds_of_webcam.webm | ||
| + | </ | ||
| + | |||
| + | ==== Streaming ==== | ||
| + | |||
| + | Para hacer streaming del vídeo de la webcam y el audio del micro, suponiendo que además tenemos un servidor RTMP (el que se encargará de hacer la transmisión): | ||
| + | |||
| + | < | ||
| + | ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:1,0 -c:v libx264 -pix_fmt yuv420p -framerate 15 -g 30 -b:v 500k -c:a aac -b:a 128k -ar 44100 -ac 2 -preset ultrafast -tune zerolatency -f flv rtmp:// | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | Los protocolos más habituales para streaming son: | ||
| + | |||
| + | * RTMP | ||
| + | * HLS | ||
| + | * DASH | ||
| + | * UDP | ||
| + | * RTP | ||
| + | * RTSP | ||
| ====== Recursos ====== | ====== Recursos ====== | ||
| Línea 58: | Línea 221: | ||
| * http:// | * http:// | ||
| * http:// | * http:// | ||
| + | * [[https:// | ||
informatica/software/ffmpeg.1611512356.txt.gz · Última modificación: por tempwin
