Ir al contenido principal

ffmpeg

La mayoría de las personas transmiten a Owncast con software como OBS. Si prefieres transmitir directamente desde la línea de comandos, ffmpeg puede capturar una cámara o una tarjeta de captura y enviarla a tu servidor a través de RTMP. Este es un camino avanzado y asume que te sientes cómodo en la línea de comandos.

El ejemplo a continuación es para Linux, capturando la cámara /dev/video2 y el dispositivo de audio ALSA hw:1,0:

ffmpeg -f alsa -ac 2 -i hw:1,0 -thread_queue_size 64 \
-f v4l2 -framerate 60 -video_size 1280x720 -input_format yuyv422 -i /dev/video2 \
-c:v libx264 -preset veryfast -b:v 1984k -maxrate 1984k -bufsize 3968k \
-vf "format=yuv420p" -g 120 -c:a aac -b:a 128k -ar 44100 \
-f flv rtmp://<ip-of-your-server>/live/<your-streaming-key>

Qué hacen las opciones principales:

  • -i /dev/video2 y -i hw:1,0: las entradas de video y audio. Estas son las partes que cambias para tu hardware y plataforma (ver más abajo).
  • -c:v libx264 -preset veryfast: codifica el video con x264. veryfast intercambia algo de eficiencia de compresión por un menor uso de CPU. Los presets más lentos se ven mejor a la misma tasa de bits pero utilizan más CPU.
  • -b:v 1984k -maxrate 1984k -bufsize 3968k: apunta a una tasa de bits de video de aproximadamente 1984 kbps y la limita allí. Consulta elegir calidad de video para seleccionar una tasa de bits para tu contenido y velocidad de subida.
  • -g 120: emit a keyframe every 120 frames. -g counts frames, not seconds, so at 60 fps this is a keyframe every 2 seconds, which is what Owncast needs to segment the stream cleanly. Set -g to twice your framerate.
  • -c:a aac -b:a 128k -ar 44100: audio AAC a 128 kbps y 44.1 kHz.
  • -f flv rtmp://.../live/<tu-clave-de-transmisión>: envía el resultado a tu servidor de Owncast. Mantén la ruta /live/ y usa tu clave de transmisión.

Entradas en otras plataformas

Solo los indicadores de entrada cambian entre sistemas operativos. Las opciones de codificación y salida anteriores se mantienen igual.

macOS usa avfoundation. Enumera tus dispositivos y luego elígelos por índice en el orden video:audio:

ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg -f avfoundation -framerate 30 -i "0:0" ...

Windows usa dshow. Enumera tus dispositivos y luego elígelos por nombre:

ffmpeg -list_devices true -f dshow -i dummy
ffmpeg -f dshow -i video="Your Camera":audio="Your Microphone" ...

Para la mayoría de las configuraciones, una aplicación de transmisión dedicada es más fácil que mantener un comando de ffmpeg. Consulta la visión general del software de transmisión para las opciones comunes.


Improve this page

See something missing or incorrect? Edit the English version of this page or help improve translations.

Contributors to this documentation