Soundproblem - Krachen/Noise bei Jitsi im Chromium Browser

  • Moin,


    ich bin noch relativer Raspberry-Anfänger, kann aber ein bisschen programmieren - und Internetsuche. Ich habe das Forum schon mal nach einer Lösung für mein Problem durchforscht, aber weder so ein Projekt noch eine Antwort auf meine konkrete Frage gefunden. Trotzdem vorab schon mal Respekt für das Engagement und die Geduld von vielen Experten hier!


    Ich bastele an einer Oma-tauglichen Lösung für ein Videotelefoniesystem mit einem Raspberry 3 B+. Das Prinzip ist einfach und schon vor Jahren in einem Forum beschrieben worden: Video Calling on Raspberry Pi 3. Die beschriebene Lösung basiert auf dem Chromium-Browser und Jitsi als webbasiertem Videotelefonieprogramm. Allerdings scheint der Autor mit einer Bildübertragung zufrieden zu sein - dazu gleich mehr.


    Hardware neben dem RasPi: Netzteil HN-5258 (5V, 2500 mA), Highspeed HDMI-Kabel, billige Webcam mit eingebautem Mikrofon, ein Taster und eine ganz einfache USB-Soundkarte.


    Um es seniorentauglich zu machen, fehlt die Steuerung des Fernsehers über das HDMI-Kabel mittels CEC sowie ein Knopf zum Ein- und Ausschalten. Außerdem habe ich das Versenden einer Email an meine Emailadresse per msmtp integriert, um zu erfahren, wenn die Oma "online geht". An all diesen Themen habe ich mehr oder weniger lange herumgeforscht und -gebastelt. Mit Unterstützung des Suchmaschinenmonopolisten ließ sich das auch alles umsetzen. Ich habe letztlich ein eigenes Bash-Skript beim Starten ausführen lassen (.desktop) und darin dann alle Aktionen abarbeiten lassen. Der Ein-Ausschalter ist ein Taster, der bei Druck PIN 5 mit GND verbindet. Tasterdruck im Betrieb wird mit einem kleinen Python-Programm überwacht, das ggf. den Fernseher auf das vorherige Signal zurückschaltet und den RasPi sicher herunterfährt.


    Jetzt stehe ich allerdings vor dem Problem, dass die Übertragung von Tönen nicht nur etwas versetzt ist - damit könnte ich leben - sondern dass der Ton vom Raspi auch sehr noisy ist. Es handelt sich dabei nicht um ein Rauschen, sondern um richtiges Krachen, das das eigentliche Tonsignal sehr laut überlagert. Versucht habe ich schon einiges. Ich habe alle Komponenten der Hardware getauscht. Eine andere (billige) Webcam führte dazu, dass der Raspberry sich über zu wenig Leistung aus dem Netzteil beschwerte, aber nicht zu besserem Ton. Eine andere Soundkarte änderte gar nichts. Und schließlich habe ich sogar einen anderen RasPi 3 B+ probiert, ohne Erfolg.


    Mikrofon und Soundkarte arbeiten auch fehlerfrei zusammen, das habe ich getestet:

    arecord --format=S16_LE --rate=16000 | aplay --format=S16_LE --rate=16000


    Ich habe auch verschiedene Jitsi-Server probiert, um auszuschließen, dass es daran liegt. Man kann in Jitsi auch im Browser alle möglichen sprachverbessernde Prozesse ausschalten, die eigentlich den Ton verbessern sollen. Hat mich auch nicht weiter gebracht.

    #config.p2p.enabled=false&config.disableAP=true&config.disableAEC=true&config.disableNS=true&config.disableAGC=true&config.disableHPF=true


    Eine für Oma akzeptable Lösung wäre sicher, einfach das Bild zu übertragen und für den Ton zum Telefon zu greifen. Aber das macht mich nicht glücklich: Ich möchte eine runde Lösung!


    Es gibt natürlich immer noch die Möglichkeit, dass ich als Einsteiger irgendetwas einfaches falsch mache. Das wäre mir echt sogar das Liebste! Aber jeden anderen Lösungsvorschlag nehme ich auch gerne auf.


    Vielen Dank im Voraus für Eure Ideen!

    PuMa

  • * Vielleicht hilft ein eigenständiges Mikrofon mit besserer Qualität, das nicht in die Webcam eingebaut ist?

    * evtl. USB-Soundkarte mit Audio-In zum Anschluss eines Mikrofons mit Klinkenstecker verwenden (z.B. sowas, von mir nicht getestet)

    * Taucht das Mikrofon der Webcam softwareseitig im Alsamixer als Aufnahmegerät auf? Kann man den Aufnahmepegel einstellen?

  • Also ich tippe auf den Taster und das Pyton Script. Also Gpio Problem.

    Bei Volumio war es so wenn ich in der /boot/config.text zuerst den Hfiberry starte und dann das gpio Modul für die den ir empfänger lade ohne rauschen durch GPIO. Oder war es die PWD Steuerung für den Lüfter. Es lag an der Reihenfolge in der /boot/config.text. Aber ehrlich das ist so lange her.

  • Ich habe hier auch eine billige WebCam (Generalplus Technology Inc. 808 Camera) mit eingebautem Mikro über USB (kein seperates Kabel). Unter Windows funktioniert das Mikro mehr schlecht als recht im Vergleich zu einer Logitech HD720. Es gibt die Sprache nur dumpf, leise und ziemlich schlecht zu verstehen wieder.

    Unter Raspian wird das Mikrofon gar nicht erkannt, daher habe ich mir eine günstige USB-Soundkarte von UGREEN bestellt. Externe Mikros hatte ich noch. Damit funktioniert das Ganze auch unter Raspian.

    Wenn du dir einen Gefallen tun willst, installiere eine USB-Soundkarte und verwende ein externes Mikro.....

    Edited once, last by Urs-1956 ().

  • Hallo zusammen,


    vielen Dank für die vielen Rückfragen. Ich werde das einzeln nachprüfen, hatte gestern leider keine Zeit und vor Donnerstag wird es leider auch nix.


    Was ich schon sagen kann, ist, dass die Soundkarte und das Mikro zusammen klaren Ton an den Fernseher übertragen, wenn ich den o.a. Code direkt starte. D.h. für mich, dass es eher kein Hardwareproblem ist. Das eingebaute Mic ist sicher nicht toll, aber wie geschrieben habe ich dasselbe Thema auch bei der zweiten Webcam mit eingebautem Mic. Wäre ja schon merkwürdig, wenn bei unterschiedlichen Marken und Modellen derselbe Hardwarefehler auftreten würde.


    Also eher Software. Das Python-Programm hatte ich bisher nicht verdächtigt. Aber wenn die GPIO-Überwachung da eine Wechselwirkung haben kann?!

    Mein Python-Skript sieht so aus:

    Das habe ich mir natürlich nicht selbst ausgedacht, Quelle ist [Tutorial] Ausschalter für den Raspberry Pi. Das Skript wird als .desktop-Prozess gestartet. Ist das vielleicht ein Problem? Es gibt ja verschiedene Wege, Prozesse bei Systemstart automatisch zu starten.

    Falls ich da etwas probieren kann, würde mir ein Tipp sehr helfen! Danke im Voraus!


    Ansonsten gebe ich in der zweiten Wochenhälfte ein Update, was ich noch versucht habe und was dabei heraus gekommen ist.

  • Womit ist denn nun die Tonqualität shice? Mit der USB-Soundkarte und daran angeschlossenem Mikrofon oder mit der Webcam mit eingebautem Mikrofon?

    Welche Produkte hast du genau? Bitte Typbezeichnungen oder Links!

    Qualitiativ höherwertige Produkte schaden nie: Nur weil der RPi billig preisgünstig ist, darf die restliche Hardware trotzdem ruhig einigermaßen hochwertig sein, damit man am Ende Freude mit dem Gesamtergebnis hat.

  • Tut mir leid, wenn ich nicht klar genug geschrieben habe, was ich einsetze. Die Hardware ist eine Webcam mit Mic, bei der das Mikrofon als Klinkenstecker über eine Soundkarte an den Raspi angeschlossen wird. Ich kann auch noch mal ein hochwertiges Mikrofon testen, aber da die Hardware funktioniert und ein Mic eigentlich ein einfaches Gerät ist, habe ich keine Hoffnung, dass die berichteten Soundprobleme damit verschwinden.

    Mini HD 12MP Webcam Webkamera Mit Mikrofon USB LED Für Laptop PC Windows 10/XP

    USB 2.0 zu 3.5mm Virtuell 7.1 Ch Kopfhörer 3D Externe Sound Karte Audio

    Wie schon berichtet, habe ich auch eine andere Webcam mit Mic und eine andere Soundkarte probiert.


    Es geht (mir) nicht um tolle Qualität, sondern erstmal darum, es hinzubekommen. Die Webcam ist übrigens erstaunlich gut. Wenn es dann läuft, kann ich die Komponenten einsetzen, die ein Ergebnis liefern, das alle glücklich macht.

  • Hardware neben dem RasPi: Netzteil HN-5258 (5V, 2500 mA), Highspeed HDMI-Kabel, billige Webcam mit eingebautem Mikrofon, ein Taster und eine ganz einfache USB-Soundkarte.


    Jetzt stehe ich allerdings vor dem Problem, dass die Übertragung von Tönen nicht nur etwas versetzt ist - damit könnte ich leben - sondern dass der Ton vom Raspi auch sehr noisy ist. Es handelt sich dabei nicht um ein Rauschen, sondern um richtiges Krachen, das das eigentliche Tonsignal sehr laut überlagert. Versucht habe ich schon einiges.

    Um hier Klarheit zu schaffen bevor wir weitermachen: Wie erfolgt die Audioausgabe ab dem RPi?

    1) über dessen Klinkenbuchse

    2) über HDMI zum Fernseher

    3) über die USB-Soundkarte

    4) über eine GPIO-Soundkarte über I2S (wie z.B. HifiBerry). Diese Variante fällt wohl weg.

    5) sonstige analoge Verbindung mittels Klinken-/Cinchkabel zwischen RPi/RPi-Komponenten und Fernseher/Stereoanlage/Audioverstärker/PC-Boxen


    Meine persönliche Beurteilung der Audioqualität dazu:

    1) shice*), Deine Schilderung würde dazu am ehesten passen

    2) prinzipiell gut, Übertragung läuft digital und wird im Endgerät (Fernsehgerät) nach analog gewandelt

    3) prinzipiell gut, da ebenfalls Digitalübertragung. Hängt stark vom konkret verwendeten Produkt ab

    4) mittlerweile mein Favorit

    5) stark abhängig von der konkreten Umsetzung und der verwendeten Komponenten


    *)

    Insbesondere die fest verbaute Klinkenbuchse des RPi ist immer wieder für diesbezügliche negative Überraschungen gut. Das analoge Audiosignal wird am RPi hierfür mittels einer äußerst windig umgesetzten PWM erzeugt.

  • Die Ausgabe erfolgt über HDMI an den Fernseher (bei Dir 2).


    asound.conf sieht bei mir so aus:

    Hab ich mir natürlich auch nicht selbst ausgedacht, sondern gefunden bei Connect, Configure and Test USB Microphone and Speaker with Raspberry Pi


    Das funktioniert im Test tadellos. Der Test ist: Jitsi-Meeting starten, Raspi auf stumm schalten (also Mic aus), Laptop mit Kamera und eingebautem Mic in dieselbe Jitsi-Konferenz und dann "Hallo! Hallo!" am Laptop. Latency ist spürbar, aber der Ton vom Fernseher ist klar und sauber.

    Der Test andersherum: Am Laptop stumm, Mic am Raspi auf. Krachen und Knirschen auf dem Laptop, bevor das erste Wort gesprochen wurde. Tatsächlich wird aber auch "Hallo! Hallo!" übertragen, nur eben hinter lauten Nebengeräuschen. Jitsi beschwert sich übrigens: "Your Microphone seems to be noisy". Es liegt also am Signal vom Raspi.


    Das Problem ist eindeutig irgendwo auf der Tonstrecke vom Mikrofon über die Soundkarte durch den Raspi zu Jitsi. Da der Sound direkt vom Mic and den Fernseher gut ist, sollten Mic und Soundkarte von der Hardware und technischen Funktion okay sein.

    Kann es am Codec liegen, der zur Digitalisierung des analogen Signals verwendet wird?

    Kann es tatsächlich an der Reihenfolge gestarteter Prozesse liegen?

    Kann es am Netzteil des Raspi liegen? (Das einzige Hardware-Teil, dass ich noch nicht wirklich tauschen konnte, weil vorhandene Micro-USB Ladegeräte nur 2,1A schaffen. Damit läuft es zwar, aber mit dem "Blitz" in der Ecke, also zu wenig Leistung.)

    Oder liegt es an etwas anderem?


    Ich werde ab Donnerstag testen, was ich testen kann.

  • Die Ausgabe erfolgt über HDMI an den Fernseher (bei Dir 2).

    Hast Du als Quercheck mal eine qualitativ vernünftige Audiodatei oder zur Not mit Chromium z.B. ein Youtube-Video über den RPi abspielen lassen und über den Fernseher den Ton angehört? Falls dies ok ist, dann ist der Audioausgabepfad schon mal fehlerfrei.


    Und bitte unbedingt die Spannungsversorgung auf feste Beine stellen, ohne Wenn und Aber! Wenn der gelbe Blitz erscheint, bist Du vor dem Mysterium™ nicht sicher und solange brauchen wir nicht weitermachen! Hat die Webcam außer USB noch einen anderen Stromanschluss? Dann bitte unbedingt diesen verwenden.


    Jetzt ist der Audioeingang an der Reihe:

    * Wie genau wird das Mikrofonsignal zum RPi übertragen?

    - Über den USB-Anschluss der Webcam?

    - Über ein separates 3,5mm-Audiokabel, mit dem Du die Webcam an der AudioIn-Buchse der USB-Soundkarte ansteckst?

    Bei der ersten Variante bräuchtest Du die USB-Soundkarte gar nicht.

    * Ist am Laptop, wo es funktioniert, ebenfalls die externe ebay-Webcam am Werke oder verwendest Du dort eine interne Webcam des Laptops? Im letzteren Falle wäre Dein Quercheck nicht aussagekräftig, da zu viele ungleiche Parameter. Gegebenenfalls die gleiche dieselbe externe Webcam am Laptop anschließen und dieses Gespiel testen.

    * Hast Du ein analoges Mikrofon mit 3,5mm-Klinkenstecker? Das könntest Du an Deiner USB-Soundkarte anschließen und die Audioqualität dieser Kombination testen. Siehe auch den Beitrag von Urs-1956


    Softwareseitige Einstellungen:

    * Wie hyle hier bereits schrieb: Ist es möglich, den Mikrofonpegel per ALSA einzustellen? Falls ja, hast Du damit schon gespielt?

    * Hast Du mal versucht, mit dem Mikrofon eine Aufnahme zu erstellen und die daraus resultierende Audiodatei dann angehört?

    * Auch die softwareseitigen Tests mit den verschiedenen Hardwarekonstellationen (siehe oben) durchspielen.


    Wie Du siehst, existieren hier viele Fehlermöglichkeiten. Daher ist es spätestens jetzt wichtig, die Fehlersuche überlegt und strukturiert anzupacken. Mein Verdacht ist zwar, dass eines Deiner beiden China-Gadgets die schlechte Audioqualität verursacht, aber um dies zu verifizieren oder auch sicher auszuschließen, muss man hier systematisch vorgehen. Den RPi selbst schließe ich als Fehlerquelle aus, denn es gibt unzählige Projekte mit einwandfreier Audioqualität. Zumal Du bereits einen zweiten RPi getestet hast.

  • Hallo schlizbäda,


    danke dafür, dass Du Dich so ausführlich mit dem Problem beschäftigst. Es tut mir leid, wenn die Konfiguration immer noch nicht klar ist.


    Das Mikrofon der Webcam kommt als 3,5mm Kinkenstecker aus dem Gerät und ist in den Mikrofoneingang der Soundkarte eingesteckt. Am Raspi sind die Webcam und die Soundkarte jeweils an USB eingesteckt. Die Webcam hat keine weitere externe Stromversorgung.

    Außerdem gibt es das HDMI-Kabel zum Fernseher. Nur während der Bastelei ist auch noch eine Tastatur mit Touchpad angeschlossen, die später nicht da sein wird. Getestet habe ich alles mit und ohne die Tastatur.


    Soundinput und -output habe ich im letzten Post schon beschrieben. Die Webcam wird vom Raspi erkannt und ohne Problem verwendet. Da die Kamera über Jitsi funktioniert, braucht die hier wohl nicht weiter betrachtet werden.


    In der gegebene Konfiguration erscheint der Blitz NICHT. Ich gehe also erst einmal davon aus, dass die Stromversorgung ausreicht. Oder tritt das "Mysterium" auch auf, wenn der Raspi sich nicht beschwert? Ich hatte geschrieben, dass der Blitz auftrat, als ich die zweite Webcam getestet habe. Aber einen Einfluss auf das Krachen hatte das nicht. Also entweder ist zu wenig Leistung schon vorher das Problem (ohne Blitz) oder das Netzteil ist allgemein nicht für mein Soundproblem verantwortlich.


    Ich konnte das Mikrofon mit der Soundkarte heute nur am Laptop testen. Da funzt es tadellos, kein Krachen oder Rauschen. Aber das Mikrofon hatte ich ja am Raspi auch schon getestet. An der Stelle, wo Urs-1956 hing, war ich da auch schon. Da der Raspi keinen Mikrofoneingang hat, kann er das Signal des Klinkensteckers ohne Soundkarte nicht verarbeiten. Mit Soundkarte wird durch den Raspi vom Mic zum Fernseher klarer Ton übertragen.

    arecord --format=S16_LE --rate=16000 | aplay --format=S16_LE --rate=16000

    Ich weiß allerdings nicht, ob das angegebene "Format" nicht letztlich einen Unterschied zu Jitsi macht, also das Analogsignal anders digitalisiert wird.


    Morgen kann ich dann endlich am Raspberry weiter testen!

  • Hallo PuMa,


    wenn der gelbe Blitz nicht erscheint (und auch die rote Power-LED des RPi konstant leuchtet, das ist dasselbe), dann hast Du eine ausreichende Stromversorgung. Damit bist Du vor dem Mysterium eigentlich sicher.


    Mit Deinem angegebenen Pipe-Kommando (arecord | asound) kannst Du also mit dem RPi vom Mikrofon Audiosignale aufnehmen und über HDMI an das Fernsehgerät weiterleiten. Und damit läuft das Ganze auf dem RPi mit ausreichender/vernünftiger Tonqualität?


    In diesem Fall sollte es dann ein Problem sein, das sich auf die verwendete Software eingrenzen lässt:

    * Wie Du selber schreibst, solltest/musst Du zunächst herausfinden, ob die Soundkarte das Audioformat liefert, das Jitsi erwartet bzw. dort eingestellt ist. Ggf entweder bei arecord (empfohlen) oder bei Jitsi anpassen.

    * Die arecord | asound-Pipe arbeitet mit unkomprimierten PWM-Audiodateien (*.wav-Format). Erwarten die Jitsi-Einstellungen auf Deinem RPi einen anderen Audiocodec? (Glaube ich jedoch eher nicht)

    * Wenn das nicht zum Erfolg führt, musst Du die einzelnen Softwarekomponenten "abklopfen" (aber da bin ich raus):

    - Jitsi

    - Chromium-Browser (evtl. testweise mal einen anderen Browser verwenden, auch wenn Video dann ruckelt)

    - sonstige beteiligte Softwarekomponenten überprüfen.


    Viel Glück! Du bist kurz vor dem Ziel.

    schlizbäda

  • Hallo schlizbäda,


    Der Test von Soundkarte und Fernseher ergibt eine laute (hängt natürlich von der Lautstärke am Fernseher ab) und klare Übertragung. Ich habe auch die Soundkarte am Laptop getestet: geht. Aber dass die angeschlossenen Geräte nicht das Problem sind, ist inzwischen, glaube ich, ohnehin klar.


    Ich habe also erst einmal die Themen abgearbeitet, die hier noch so genannt wurden.


    Eine subjektiv deutliche Verbesserung hat det_lev_da mit seinem Hinweis bewirkt, die Reihenfolge des Startens der Prozesse zu prüfen. Ich habe das Python-Skript für den Shutdown, das ich oben schon mal angegeben hatte, jetzt aus der rc.local gestartet, was nach meinem Verständnis sicherstellt, dass es vor der grafischen Oberfläche läuft. In dem Skript wird die GPIO-Überwachung eingeschaltet. Das Krachen ist deutlich leiser - aber leider nicht weg. Danke für den Tipp!


    Leider scheine ich doch ab und zu ein Spannungsproblem zu haben, dass dann immer wieder mal ein Krachen und Knirschen auslöst. Manchmal blitzt der Blitz kurz auf, manchmal kracht es auch ohne Blitz. Aber offensichtlich bin ich leistungsmäßig am Limit. Ich habe zwei Netzteile mit 3A ausprobiert, aber mit dem Netzteil am Raspi werde ich das nicht ganz weg bekommen. Webcam (obwohl besser als die zweite) und Soundkarte gemeinsam ziehen scheinbar bei Peakbelastung (also wenn wirklich beides zu übertragen ist) so viel Leistung, dass die Versorgung durch den Raspi nicht ausreicht. Die einzige mir einfallende Lösung dafür braucht Zeit: Ein USB-Hub mit separater Stromversorgung, Mal sehen, ob da Webcam und Soundkarte gemeinsam ran können. Ist aber eigentlich egal: Wenn die Webcam daran funktioniert, sollte der Saft vom Raspi für die Soundkarte ausreichen.


    Blöd wäre, wenn es dann doch nicht daran liegt, sondern am Codec o.ä. Aber das Thema Codec in Jitsi ist mir derzeit noch zu hoch. Diese Bastelei ist damit erst einmal stillgelegt. Ich berichte, sobald ich die Stromversorgung stehen habe, ob das wirklich endgültig die Lösung war. Ich hoffe es! Danke auf jeden Fall soweit, insbesondere an Dich, schlizbäda.

  • Soundkarte und WebCam am externen USB-Hub mit eigener Stromversorgung ist eine gute Idee. Sollte die Stromversorgung des Raspi deutlich entlasten.

  • halb-OT:

    Nur weil auf unterschiedlicher Hardware die scheinbar gleiche Software installiert ist, heißt das mitnichten, dass es auch auf beiden Systemen gleich funktioniert: Bei mir läuft mpd auf dem RPi (dort als Bestandteil meiner Phoniebox) und auf meinem Linux-Mint-PC. Beide Male wird mit apt-get das von der Linux-Distribution beigestellte Programmpaket installiert.

    Um auf der Phoniebox einen Suchlauf ("fast-forward", "rewind") wie bei einem CD-Spieler umzusetzen, habe ich dann in ein Phoniebox-Skript die mpd-Funktion seekthrough implementiert. Prinzipiell hat's funktioniert, doch der Rückwärtslauf funktioniert nicht. Auch nicht nackig vom Terminalfenster aus mit dem Kommando mpc seekthrough -5. Letztlich habe ich dann den Sourcecode des mpd auf den RPi heruntergeladen und neu kompiliert. Damit funktioniert es dann.


    Das muss man jetzt nicht verstehen! Aber nur mal so als Hinweis, dass es immer wieder Sachen gibt, die es eigentlich nicht geben dürfte. Sorry für den Halb-Offtopic.

  • Hallo zusammen,


    ich habe einen USB-Hub mit externer Stromversorgung und ein neues, besseres 3A-Netzteil getestet. Tatsächlich funktioniert beides, um das Krachen dauerhaft los zu werden. Der Ton hat noch eine spürbare Latenz (und das Videobild auch), aber die Technik steht schon mal. Die CPU-Auslastung liegt "nur" bei 70%. Trotzdem hilft gegen die Latenz, die Videoauflösung runter zu stellen - vielleicht hätte das auch schon gegen die Soundprobleme geholfen, weil das sicher auch den Stromverbrauch runter bringt.


    Also das "Mysterium" hat wieder zugeschlagen.


    Danke für die Unterstützung soweit!


    Ich will das gesamte Projekt beschreiben, sobald es ein zufriedenstellendes Stadium erreicht hat. Ich weiß aber noch nicht, wo und wie. So oder so werde ich das ggf. hier verlinken, sollte ich erfolgreich sein.

  • Nachtrag: Es hat sich ergeben, dass die Redaktion von Raspberry Pi Geek an dem Thema Interesse hatte. Der Artikel ist in der aktuellen Ausgabe erschienen: Videotelefonie-Artikel in Raspberry Pi Geek

    Falls es dazu Fragen gibt, schicke ich die Beschreibung, Skripte etc. gerne auch per Email zu. Das ist dann nicht der Text des Artikels und nicht so hübsch im Layout, aber als Anleitung ausreichend.