Auswählen des Computer-Audios

Auswählen des Computer-Audios

Ich verwende dieses Skript:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/um zu Twitch zu streamen. Es funktioniert, aber ich möchte nicht mein Mikrofon streamen, sondern nur den Computerton. Wie muss ich das Skript ändern, um das zu erreichen?

Antwort1

Auswählen des Computer-Audios

PulseAudio

Dies kann mit PulseAudio und erfolgen pavucontrol. VonHOWTO: Richtiges Screencasting unter Linux:

Installieren Sie pavucontrol. Starten Sie die Aufnahme mit ffmpeg. Starten Sie pavucontrol. Gehen Sie auf die Registerkarte „Aufnahme“ und Sie finden ffmpeg dort eine Liste. Ändern Sie die Audioaufnahme von „Internes Audio Analog Stereo“ in „Monitor von internem Audio Analog Stereo“. Jetzt sollte System- und Anwendungsaudio statt Mikrofon aufgezeichnet werden.

Diese Einstellung wird gespeichert. Wenn Sie das nächste Mal mit aufnehmen ffmpeg, wird automatisch Systemaudio aufgezeichnet. Wenn Sie dies rückgängig machen möchten, verwenden Sie pavucontrolerneut, um wieder zum Mikrofoneingang zu wechseln.

ALSA

Alternativ kann ALSA System-Audio erfassen, wenn Ihr Audiosystem ein Loopback-Gerät unterstützt, das oft mit der folgenden Bezeichnung versehen ist:Stereo-Mix,Wellenform-Mix,Mono-Mix, oderWas du hörst. Schauen Sie nach alsamixer, ob Sie eines davon haben, aberHardware-Loopback ist heutzutage nicht mehr so ​​üblich. Dann sieheFFmpeg Wiki: Audio aufnehmen mit ALSAfür die richtige Syntax, wenn Ihr System diese Funktion unterstützt.

Ansonsten bin ich der Meinung, dass man mit ALSA einen Software-Loopback erstellen kann, aber ich kann mich auch irren und habe damit keine Erfahrung.


Schlechtes Drehbuch

Der ffmpegBefehl in diesem schrecklichen, immer wiederkehrenden Skript weist einige Probleme auf:

  • -presetsollte verwendet werden anstelle von-vpre
  • -qscalewird von libx264 ignoriert (verwenden Sie -crfoder -b:v)
  • Die Bildergruppe ist nicht festgelegt (verwenden Sie -g)
  • VBV sollte verwendet werden (verwenden Sie -maxrateund -bufsize)
  • Die Ausgabe verwendet möglicherweise kein kompatibles Chroma-Subsampling-Schema (verwenden Sie -pix_fmt yuv420p)
  • Die x11grab-Eingabe sollte verwenden -framerate, nicht-r
  • -threads 6scheint eine willkürliche Zahl zu sein, und nicht jeder verwendet die gleiche Hardware. Sie sollten entweder die Standardeinstellung verwenden (indem Sie entfernen -threads, aber das ist „gierig“) oder einen geeigneten Wert festlegen, der Ihnen eine zufriedenstellende Codierungsrate ermöglicht und dennoch genügend Leistung für die anderen Dinge bietet, die Sie aufnehmen.

Der Befehl sollte stattdessen etwa so lauten:

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"

Notiz:Verwenden Sie meine Beispielwerte für -maxrate, -bufsize, -g, und nicht einfach blind -b:a. Sie müssen diese Ihren Bedürfnissen entsprechend anpassen, wie in beschriebenKodierung für Streaming-Sites mit FFmpeg. Siehe auchFFmpeg H.264-Videokodierungshandbuch.

verwandte Informationen