Schlechte Bildqualität und hohe CPU-Auslastung beim Streaming in hoher Auflösung mithilfe von Webcam und VLC unter Linux

2849
Jeroen Jacobs

Ich versuche ein wenig Streaming mit einer Webcam zu machen, aber bisher sind die Ergebnisse nicht gut: Alles, was ich in 320x240 streame, sieht gut aus, aber sobald ich eine höhere Auflösung wähle, wird die Bildqualität schrecklich und die CPU-Auslastung steigt durch das Dach.

Ich verwende eine Logitech C525-Kamera, die behauptet, HD zu sein, und eine native Auflösung von 1280x720 hat.

Wenn 1280x720 die native Auflösung ist, frage ich mich, warum die Qualität so schrecklich ist.

Ich verwende VLC für das Streaming und verwende die folgende vlm-Konfigurationsdatei:

new camNumber2 broadcast enabled setup camNumber2 input v4l2:///dev/video2:width:320:heigth:240 setup camNumber2 output #transcode:standard control camNumber2 play 

Wie ich schon sagte, sobald ich mit der Auflösung etwas höher gehe, fällt die Qualität in ein großes Durcheinander.

Ich vermute, dass mit meinen Videoeingabeeinstellungen etwas nicht stimmt, und VLC versucht, das Bild auf die von mir angeforderte Auflösung zu skalieren, anstatt die Bilder mit der angeforderten Auflösung zu erfassen.

4
Ich habe es jetzt geschafft, bessere Qualität zu erzielen, indem ich die Bitrate auf 4096 erhöhte. Die CPU-Auslastung ist jedoch immer noch recht hoch. Ich frage mich, ob ich einen anderen Videocodec wählen sollte? Es wird nur in meinem eigenen Netzwerk verwendet, sodass ich mich nicht zu sehr um die Bandbreite kümmern muss ... Jeroen Jacobs vor 12 Jahren 0
Videocodierung ist häufig ein sehr CPU-intensiver Prozess. Wenn Sie 1280 x 720 in Echtzeit machen, könnte dies die Belastung der CPU erklären. Ein weiterer Videocodec ist einen Versuch wert. Slizzered vor 9 Jahren 0

1 Antwort auf die Frage

0
tbenz9

Ich habe ein paar Anmerkungen und Vorschläge. Ich sehe nicht unbedingt etwas Falsches an Ihren Befehlen, aber versuchen wir eine Lösung zu finden.

  1. Es sieht aus wie Ihr mit mpeg4, würde ich empfehlen, sich ein Blick auf DIESER Liste der unterstützten VLC - Codecs. Ich empfehle Ihnen, H265 oder MP4V auszuprobieren. Bei genauerer Betrachtung sehe ich mpeg4 nicht wirklich auf dieser Liste, daher könnte dies Ihr Problem sein.
  2. Welche CPU verwendest du? Möglicherweise ist Ihr System nicht stark genug, um 1280x720 zu streamen. Sie erwähnen nicht, welchen Computer Sie verwenden, und ich möchte nur sicherstellen, dass Sie dies nicht auf einem Raspberry Pi versuchen.
  3. Versuchen Sie, es über die GUI zum Laufen zu bringen. Ich bin mir bewusst, dass die GUI nicht die Endlösung ist, aber wenn wir sie dort zum Laufen bringen können, wissen wir, dass dies möglich ist, und können mit den CLI-Argumenten fortfahren.
  4. Versuchen Sie es mit einem anderen Betriebssystem und einem anderen Computer. Können Sie es unter Windows und Linux zum Laufen bringen, funktioniert es besser? Auch dies hilft dabei, einige Variablen zu beseitigen, die das Problem betreffen.
  5. Unwahrscheinlich, aber es ist möglich, dass der USB-Bus überlastet ist. Möglicherweise ist der Anschluss nur USB 1 oder Sie haben eine externe Festplatte an demselben Bus, die die gesamte Bandbreite beansprucht.

Probieren Sie einige der oben genannten Optionen aus, wenn Sie herausfinden, welche Lösungen für Sie geeignet sind. Wenn es immer noch nicht funktioniert, posten Sie das, was Sie entdeckt haben.