Escolhendo o áudio do computador

Escolhendo o áudio do computador

Estou usando este script:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/para transmitir para o Twitch. Funciona, mas não quero transmitir meu microfone, apenas o áudio do computador. Como devo alterar o script para conseguir isso?

Responder1

Escolhendo o áudio do computador

PulsoÁudio

Isso pode ser feito com PulseAudio e pavucontrol. DeCOMO FAZER: Screencasting adequado no Linux:

Instalar pavucontrol. Comece a gravar com ffmpeg. Começar pavucontrol. Vá para a guia “Gravação” e você encontrará ffmpeg uma lista lá. Altere a captura de áudio de “Áudio Estéreo Analógico Interno” para “Monitor de Áudio Estéreo Analógico Interno“. Agora ele deve gravar o áudio do sistema e do aplicativo em vez do microfone.

Esta configuração será lembrada. Na próxima vez que você quiser capturar com ffmpeg, ele iniciará automaticamente a gravação do áudio do sistema. Se você quiser reverter isso, use pavucontrolnovamente para voltar à entrada de microfone.

ALSA

Alternativamente, o ALSA pode capturar o áudio do sistema se o seu sistema de áudio suportar um dispositivo de loopback frequentemente rotulado:Mistura estéreo,Mistura de onda,Mistura Mono, ouO que você ouve. Verifique alsamixerse você tem um desses, masloopback de hardware não é tão comum hoje em dia. Então consulteFFmpeg Wiki: Capturando áudio com ALSApara obter a sintaxe correta se o seu sistema suportar esse recurso.

Caso contrário, acredito que você pode fazer um loopback de software com ALSA, mas posso estar incorreto e não ter experiência com isso.


Roteiro de baixa qualidade

O ffmpegcomando naquele script horrível e recorrente tem alguns problemas:

  • -presetdeve ser usado em vez de-vpre
  • -qscaleé ignorado pela libx264 (use -crfor -b:v)
  • O grupo de fotos não está definido (use -g)
  • VBV deve ser usado (use -maxratee -bufsize)
  • A saída pode não usar um esquema de subamostragem de croma compatível (use -pix_fmt yuv420p)
  • A entrada x11grab deve usar -framerate, não-r
  • -threads 6parece um número arbitrário e nem todos usam o mesmo hardware. Você deve usar o padrão (removendo -threads, mas é "ganancioso") ou definir um valor apropriado que permita codificar a uma taxa satisfatória e ainda assim permitir energia suficiente para executar as outras coisas que você está gravando.

O comando deve ser algo assim:

ffmpeg \
-f alsa -ac 2 -i "$INAUD" \
-f x11grab -video_size "$INRES" -framerate "$FPS" -i :0.0 \
-vcodec libx264 -s "$OUTRES" -preset "$QUAL" -maxrate 1000k -bufsize 2000k -g 50 -pix_fmt yuv420p \
-acodec libmp3lame -ar 44100 -b:a 128k \
-f flv "$STREAM_URL"

Observação:Não use cegamente meus valores de exemplo para -maxrate, -bufsize, -ge -b:a. Você deve ajustá-los de acordo com suas necessidades, conforme descrito emCodificação para sites de streaming com FFmpeg. Veja tambémGuia de codificação de vídeo FFmpeg H.264.

informação relacionada