Elegir el audio de la computadora

Elegir el audio de la computadora

Estoy usando este script:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/para transmitir a Twitch. Funciona pero no quiero transmitir mi micrófono, solo el audio de la computadora. ¿Cómo debo cambiar el guión para lograrlo?

Respuesta1

Elegir el audio de la computadora

PulsoAudio

Esto se puede hacer con PulseAudio y pavucontrol. DeCÓMO: Screencasting adecuado en Linux:

Instalar pavucontrol. Comience a grabar con ffmpeg. Comenzar pavucontrol. Vaya a la pestaña "Grabación" y lo encontrará ffmpeg allí. Cambie la captura de audio de "Audio interno analógico estéreo" a "Monitor de audio interno analógico estéreo". Ahora debería grabar el audio del sistema y de la aplicación en lugar del micrófono.

Esta configuración será recordada. La próxima vez que desee capturar con ffmpeg, comenzará automáticamente a grabar el audio del sistema. Si desea revertir esto, use pavucontrolnuevamente para volver a la entrada de micrófono.

ALSA

Alternativamente, ALSA puede capturar el audio del sistema si su sistema de audio admite un dispositivo de bucle invertido a menudo etiquetado:Mezcla estéreo,Mezclar con la mano,Mezcla monocromática, oLo que escuchas. Consulte alsamixerpara ver si tiene uno de estos, peroEl loopback de hardware no es tan común hoy en día.. Luego consulteFFmpeg Wiki: Captura de audio con ALSApara obtener la sintaxis adecuada si su sistema admite esta función.

De lo contrario, creo que se puede hacer un loopback de software con ALSA, pero puede que me equivoque y no tenga experiencia con eso.


guión de mierda

El ffmpegcomando en ese horrible script recurrente tiene algunos problemas:

  • -presetdebe usarse en lugar de-vpre
  • -qscalees ignorado por libx264 (use -crfo -b:v)
  • El grupo de imágenes no está configurado (use -g)
  • Se debe usar VBV (usar -maxratey -bufsize)
  • Es posible que la salida no utilice un esquema de submuestreo de croma compatible (use -pix_fmt yuv420p)
  • La entrada x11grab debe usarse -framerate, no-r
  • -threads 6Parece un número arbitrario y no todos usan el mismo hardware. Deberías usar el valor predeterminado (eliminando -threads, pero es "codicioso"), o establecer un valor apropiado que te permita codificar a un ritmo satisfactorio y aun así permitir suficiente energía para realizar las otras cosas que estás grabando.

En su lugar, el comando debería ser algo como esto:

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"

Nota:No use ciegamente mis valores de ejemplo para -maxrate, -bufsize, -gy -b:a. Debe ajustarlos según sus necesidades como se describe enCodificación para sitios de streaming con FFmpeg. Ver tambiénGuía de codificación de vídeo FFmpeg H.264.

información relacionada