Tente isto:
ffmpeg -f x11grab -video_size 1280x720 -framerate 60 -i :0.0 -f pulse -i default \
-c:v libx264 -preset fast -b:v 4500k -bufsize 9000k -maxrate 5000k -g 120 \
-pix_fmt yuv420p -c:a aac -b:a 128k -f flv "rtmp://foo/your_stream_key"
-
Veja a saída do console durante o processo de codificação. Se a saída fps for menor que
-framerate, diminua-frameratee / ou use um-presetmais rápido. Use o-presetmais lento que ainda fornece a taxa de quadros de saída desejada. -
-b:vé aproximadamente determinado por-video_size. Veja Figura 3 em Configurações de Codificação Recomendadas para HTTP Live Streaming Media para algumas taxas de bits sugeridas (mas experimente e veja o que funciona melhor para você).-bufsizeé determinado por-b:v. Neste exemplo, um buffer de 2 segundos é usado, então-bufsizeé 2x-b:v. -
-gdeve ser 2x-framerate. -
Se você obtiver "
The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it", seuffmpegé antigo e você deve atualizar em vez de usar-strict -2. O codificador FFmpeg AAC foi melhorado e não é mais considerado experimental, mas sua versão não possui essas melhorias. O método mais fácil de atualizar é baixar baixar um% binárioffmpege movê-lo para/usr/local/bin(ou~/binbut you ' Será necessário fazer login novamente ou executarsource ~/.profilepara que funcione).
Veja também:
- documentação do dispositivo de entrada de vídeo x11grab
- documentação do dispositivo de entrada de áudio por pulso
- Wiki do FFmpeg: H.264
- Wiki do FFmpeg: codificando sites de streaming
- Capturando áudio da área de trabalho com o ffmpeg