ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -tune zerolatency -f mpegts udp://127.0.0.1:5000ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -x264opts "repeat-headers=1:keyint=25" -tune zerolatency -f mpegts udp://127.0.0.1:5000 |
| parameter | meaning
| -f v4l2
| Especifica el formato de entrada, que en este caso es un dispositivo V4L2 (una webcam en Linux).
| -i /dev/video0:
| Define la entrada, que es tu dispositivo de webcam.
| -c:v libx264
| Elige el códec de video H.264 para la compresión. -tune zerolatency optimiza la compresión para reducir la latencia, algo clave para transmisiones en tiempo real.
| -f mpegts:
| Empaqueta el video en un formato de Transport Stream, que es ideal para transmisiones.
| -x264opts "repeat-headers=1:keyint=25"
| Esta es la opción clave. Le dice al codificador H.264 (libx264) que repita los encabezados SPS (Sequence Parameter Set) y PPS (Picture Parameter Set) en cada fotograma clave (I-frame). Esto asegura que el receptor siempre tenga los parámetros de configuración necesarios, incluso si se pierde el inicio del flujo. | x264opts "keyint=25": Esta opción establece el intervalo entre fotogramas clave. Un valor de 25 significa que se insertará un fotograma clave cada 25 fotogramas. Combinado con repeat-headers=1, esto asegura que los parámetros SPS/PPS se envíen cada segundo (si la tasa de fotogramas es de 25 fps). udp://127.0.0.1:5000
| Esta es la dirección y el puerto de destino. Le dice a FFmpeg que envíe el flujo de datos a través de UDP al puerto 5000 en la misma máquina (localhost).
| |
|---|

| UDP source |
UDP sink
|
|
|
|
| Parameter | Meaning
| -probesize 1000000
|
| -pkt_size 188
| El formato Transport Stream (TS), que estás usando para empaquetar el video, está compuesto por paquetes de datos de tamaño fijo. Normalmente, este tamaño es de 188 bytes o 204 bytes.
| -f matroska
| En el comando de FFmpeg significa que el programa debe usar el formato de contenedor Matroska para el flujo de salida. Es una parte crucial del comando que le dice a FFmpeg cómo "empaquetar" los datos de video que está recibiendo.
| |
|---|
| pseudocode | Meaning
| MP4 (.mp4)
| Uno de los más populares. Es muy compatible con casi todos los dispositivos y plataformas, ideal para streaming web, móviles y redes sociales. Es el contenedor estándar para los códecs de video H.264 y H.265.
| MOV (.mov)
| El formato de Apple QuickTime. Aunque fue desarrollado por Apple, es compatible con muchos otros sistemas.
| AVI (.avi)
| Un formato antiguo de Microsoft. Es muy versátil, pero no tiene soporte nativo para funciones modernas como el streaming o los subtítulos avanzados.
| WebM (.webm)
| Un formato de código abierto desarrollado por Google. Está diseñado para ser usado en la web con códecs de video como VP9 y AV1.
| MPEG-TS (.ts)
| Es el Transport Stream, un contenedor optimizado para transmisiones de video en vivo y televisión digital (como DVB-T y ATSC). Es robusto contra la pérdida de datos, lo que lo hace ideal para la transmisión de señales de radiofrecuencia (RF).
| |
|---|
|