Ir para o conteúdo principal

ffmpeg

A maioria das pessoas transmite para Owncast com software como OBS. Se você preferir transmitir diretamente da linha de comando, o ffmpeg pode capturar uma câmera ou uma placa de captura e enviá-la para seu servidor via RTMP. Este é um caminho avançado e pressupõe que você esteja confortável na linha de comando.

O exemplo abaixo é para Linux, capturando a câmera /dev/video2 e o dispositivo de áudio 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>

O que as principais opções fazem:

  • -i /dev/video2 e -i hw:1,0: as entradas de vídeo e áudio. Estas são as partes que você muda para seu hardware e plataforma (veja abaixo).
  • -c:v libx264 -preset veryfast: codifica o vídeo com x264. veryfast troca um pouco da eficiência de compressão por menor uso da CPU. Presets mais lentos parecem melhores na mesma taxa de bits, mas usam mais CPU.
  • -b:v 1984k -maxrate 1984k -bufsize 3968k: busque uma taxa de bits de vídeo de cerca de 1984 kbps e limite-a lá. Veja escolhendo a qualidade do vídeo para escolher uma taxa de bits para seu conteúdo e velocidade de upload.
  • -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: áudio AAC a 128 kbps e 44,1 kHz.
  • -f flv rtmp://.../live/<sua-chave-de-streaming>: envie o resultado para seu servidor Owncast. Mantenha o caminho /live/ e use sua chave de stream.

Entradas em outras plataformas

Apenas os flags de entrada mudam entre os sistemas operacionais. As opções de codificação e saída acima permanecem as mesmas.

macOS usa avfoundation. Liste seus dispositivos e escolha-os pelo índice na ordem vídeo:áudio:

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

Windows usa dshow. Liste seus dispositivos e escolha-os pelo nome:

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

Para a maioria das configurações, um aplicativo de transmissão dedicado é mais fácil do que manter um comando do ffmpeg. Veja a visão geral do software de transmissão para as opções comuns.


Improve this page

See something missing or incorrect? Edit this page and improve the documentation for everyone.

Contributors to this documentation