Videobitrate (auf Kommandozeile) und Qualität

  • Ich bin beim Probieren mit meiner Webcam und habe verschiedene Einstellungen auf Kommandozeile (...vb= ...) probiert.
    Ein ideales, flüssiges, immer stimmiges Bild habe ich noch nicht. Sicher kann man die Hardware auch überfordern...
    Aber ich habe mal vb und die Overallbitrate (im folgenden Ovbr bezeichnet) [kbps] (aus mediainfo) gegenübergestellt und kam zu einer überraschenden Feststellung:
    - Größere vb erzeugt nicht stetig ansteigende Ovbr
    - vb=0 erzeugte in meinen Versuchen die größte Ovbr, nämlich 12,1 Mbps (vermutlich so was wie variable Bitrate ???)


    folgende Resultate
    vb - Ovbr
    0 - 12,1 Mbps
    256 - 669
    512 - 793
    564 - 967
    1024 - 1176
    2048 - 2747
    4096 - 1456
    6144 - 1937
    8000 - 10,2 Mbps
    9000 - 2050


    Welche Bitrate sollte denn die beste sein und wie ermittelt man sie?


    Danke für Anregungen

  • Hallo Pit,


    woher hast Du den Begriff "Overallbitrate"? Ich kann damit nichts anfangen. Ich kenne die konstandte, die variable und die maximale Bitrate, aber von einer Overallbitrate höre ich zum ersten Mal.


    Dann sollst Du wissen, dass der VLC nahezu immer einen Nullwert nicht als "0" interpretiert sondern als "keine Vorgabe" - ergo bleibt es ihm überlassen, welchen Wert er dafür als den besten erachtet und verwendet. So gesehen geben Deine Zahlen einen etwas anderen Sinn.


    Die beste Bitrate kann man nicht ermitteln, denn es steht offen, was mit der "besten" gemeint ist, für die beste Qualität, für die kleinste Größe. Ich habe heute zwei Videos, beide von zwei Reisen in das selbe Land, auf eine BD gebrannt. Zuvor hatte ich jedes der Videos auf einer eigenen BD. So wie ich sie dafür gerendert hatte, passten sie nun nicht mehr beide auf eine BD. Ich musste also das Maximum für die variable Bitrate geringfügig herabsetzen und hatte damit für mich die beste Bitrate, mit der ich beide Videos auf die BD brachte, ohne dass es einen erkennbaren Qualitätsverlust gegeben hat.


    In Deinem Fall ware vermutlich das Beste, wenn Du die Videos von der Webcam überhaupt nicht transcodieren, sondern so wie sie kommen speichern würdest. Jede Veränderung des Originals ist in den meisten Fällen mit einem "relativen" Qualitätsverlust verbunden.


    MdF, kodela

  • Hallo kodela,
    Ich schrieb eingangs, dass die "Ovbr" ich von mediainfo bekam (siehe Anlage).
    Dass die Interpretation von "vb=0" von mir anders aufgefaßt werden kann als von VLC, ist mir schon einleuchtend.
    Deshalb wollte ich überhaupt wissen, was eine Videobitrate eigentlich bewirkt.


    Meine Tabelle (leider nicht füllig genug, denn eigentlich sollte man auch die resultierende Dateigröße dazu aufführen) stellte lediglich den Zusammenhang von Videobitrate und resultierender Ovbr da und diese Kurve war schon interessant genug, um Fragen zu stellen.


    In der Hilfe steht noch, dass man für vb Ganzzahlen von [-2147483648 .. 2147483647] nehmen könne. Was bewirken negative Videobitzahlen? Ich kann mir ohne Definition nichts drunter vorstellen.

  • Ich schrieb eingangs, dass die "Ovbr" ich von mediainfo bekam (siehe Anlage).
    ...
    In der Hilfe steht noch, dass man für vb Ganzzahlen von [-2147483648 .. 2147483647] nehmen könne. Was bewirken negative Videobitzahlen?


    Hallo Pit,


    wo bitte ist die Anlage?


    Bei MediaInfo habe ich gesucht und nichts gefunden.


    Welche "Hilfe" meinst Du? Mit dem Hinweis: "Ganzzahlen von [-2147483648 .. 2147483647]" ist lediglich der Begriff "Ganzzahlen" definiert. Das bedeutet ja nicht, dass es sinnvoll ist, diesen Rahmen auszuschöpfen. Es kann aber zum Beispiel sinnvoll sein, einen negativen Wert anzugeben, wenn man dem VLC sagen will, dass man ihm die Entscheidung lässt. Davon macht der VLC sehr häufig Gebrauch.


    Einen Rahmen für die Bitrate anzugeben ist keinesfalls sinnvoll. Wo soll die Untergrenze sein, bei 100 mit Sicherheit nicht, bei 800000 - vielleicht. Mir wäre das noch zu wenig, wenn ich eine einigermaßen gute Qualität haben möchte.


    Wenn Du wissen willst, was eine Videobitrate eigentlich bewirkt, dann empfehle ich Dir, Dich einmal bei Wikipedia oder einer der vielen sonstigen Infoquellen schlau zu machen.


    MfG, kodela

  • Mit Hilfe meinte ich die "erweiterte":


    Streamausgabe transkodieren (stream_out_transcode)
    "Video:
    --sout-transcode-vb=<Ganzzahl [-2147483648 .. 2147483647]> Videobitrate"

    Eine solche Erklärung ist, sofern sie Ganzzahl erklärt, Unsinn. Dort gehört die Angabe hin, die den zulässigen Bereich beschreibt und der wiederum muss in der Regel durch das Programm sinnvoll eingegrenzt werden.


    Ich habe mich schon in den einfachen Quellen mit vb beschäftigt. Aber ich finde kaum eine Erklärung für Zusammenhänge. Ich hätte gedacht , dass die Ovbr irgendwie der Summe aus vb und Audiobitrate nahekäme. Aber was ist dann bei vb = 4096 bzw. 6144 bzw. 9000 zu beobachten? Übrigens sind alle meine Zahlen im Beispiel hier im Forum in kbps, also Deine 800000 ist (rund oder genau, je nachdem ob 1024 oder 1000 als Teiler?) 800 kbps und meine beiden Beobachtungen vb=0 bzw. 8000 erbrachten sogar Mbps, also noch 1000fach. Oder wolltest Du 800000 kbps foordern? Ich versuch es mal...

  • Hallo Pit,


    ok, mit Hilfe meinst Du die vom VLC über einen der Parameter -h, --help, -H, --full-help oder --longhelp, erzeugte Hilfedatei.


    Was Du zur Definition von "Ganzzahl" schreibst mag schon richtig sein, die Entwickler sehen das allerdings anders, denn Programmierer unterscheiden bei Ganzzahlen sehr wohl zwischen solchen mit 8, 16, 32 und 64 Bit und das noch signiert und unsigniert, also mit oder ohne negativen Zahlenbereich. Sie gehen weiterhin vermutlich davon aus, dass das was Du "Hilfe" nennst keine Hilfe für den VLC ganz allgemein ist, sondern ein Nachschlagwerk für solche, die den VLC über eine Kommandozeile ansteuern wollen.


    So etwas ist ja nicht ganz trivial und daher gehen die Entwickler vermutlich davon aus, dass Leute, die sich Kommandozeilen basteln können, wissen was mit der Angabe <Ganzzahl [-2147483648 .. 2147483647]> gemeint ist.


    Nun zu "Deiner" Ovbr. Dies Abkürzung steht ja für "Overallbitrate".


    Wenn Du Dir das Tool MediaInfo auf Deutsche Sprache einstellst, dann findest Du dort an Stelle von "Overallbitrate" die deutsche Entsprecheung "Geamte Bitrate". Da diese Information nicht im Video-Abschnit sondern im allgemeinen Bereich zu finden ist dürfte klar sein, was damit ausgedrückt werden soll. Es gibt eine Video- und eine Audio-Bitrade und das hier ist eben die Summe beider Bitrates. Du hast Dir das ja schon irgend wie gedacht.


    Übrigens empfehle ich für die Ausgabe von Infos durch MediaInfo die Textansicht.


    Übrigens, wenn ich von der Bitrate 800000 ohne besondere Größenangabe spreche, dann meine ich natürlich auch 800000 und nicht 800000 kbps oder sonst etwas. Gefordert habe ich hinsichtlich der Bitrate überhaupt nichts.


    MfG, kodela

  • Also fangen wir noch mal von vorne an:
    1) In der Gui will mir eine keine Datei (Verkapselung .ts, Originalvideo, Originalaudio) mit mehr als 0 Byte gelingen. Also was sollte man als ersten Versuch einstellen?
    2a) Mit Batchdatei


    "c:\Program Files\VideoLAN\VLC\vlc" dshow:// :dshow-vdev="USB2.0 Camera" :dshow-adev="Mikrofon (Realtek High Definiti" :dshow-size=1280 :dshow-aspect-ratio=16:9 --sout=#transcode{vcodec=x264,vb=25,acodec=mpga,ab=256,channels=2,samplerate=44100}:file{dst=c:\\users\\Peter\\VLC\\test_vb_25.mp4}


    habe ich verschiedene mp4-Dateien (mit verschiedenen vb-Vorgaben, zwei auch mit dshow-fps-Vorgabe) erzeugen können, jedoch mit sehr unterschiedlichen Resultaten
    - die meisten sind verpixelt,
    - alle bleiben videomäßig nach wenigen Sekunden stehen, obwohl der Ton weiter geht.
    2b) Eine Auswertung mit mediainfo ergab nie eine Übereinstimmung, dass vb+ab = Gesamtbitrate wäre.
    Die Tabelle füge ich bei.
    Gruß

  • 1) In der Gui will mir eine keine Datei (Verkapselung .ts, Originalvideo, Originalaudio) mit mehr als 0 Byte gelingen. Also was sollte man als ersten Versuch einstellen?


    Hallo Pit,


    was erwartest Du, soll ich Dir im "Blindflug", ohne zu wissen mit was Du was machen willst, erklären, wie Du das machen sollst? Das geht leider nicht. Du musst Deine Zielvorstellung unter Einbeziehung der Ausgagsposition ziemlich genau beschreiben, damit man dazu etwas sagen kann.


    Zu Deinem Punkt 2a):


    Dieser Kommandozeilenstring


    Code
    1. "c:\Program Files\VideoLAN\VLC\vlc" dshow:// :dshow-vdev="USB2.0 Camera" :dshow-adev="Mikrofon (Realtek High Definiti" :dshow-size=1280 :dshow-aspect-ratio=16:9 --sout=#transcode{vcodec=x264,vb=25,acodec=mpga,ab=256,channels=2,samplerate=44100}:file{dst=c:\\users\\Peter\\VLC\\test_vb_25.mp4}


    und Deine Aussage, Du hättest [damit] verschiedene mp4-Dateien (mit verschiedenen vb-Vorgaben, zwei auch mit dshow-fps-Vorgabe) erzeugen können, sagen mir auch nicht viel. Eines kann ich Dir allerdings sagen, eine Videobitrate von 25 - D wundert mich, wie Du hier überhaupt noch ein Bild bekommen hast.


    Es macht einfach keinen Sinn, wenn Du Einstellungen verwendest, von denen Du nicht weißt, für was sie eigentlich stehen. Mache es doch so, wie ich in dem Thema "Kommandozeile - Aufruf und Parameterübergabe" empfohlen habe. Also gehe zurück zum Punkt eins und erst wenn Du damit Erfolg hast, kannst Du Dich mit der Kommandozeile beschäftigen.


    Zu Deinem Punkt 2b) bewundere ich Deine "Fleißarbeit", aber was bringt das, dass die Summe der einzelnen Bitraten nicht genau der Gesamtsumme entsprechen? Das ist mir schon längst aufgefallen, aber ich halte das für unwichtig, über die Anzeige von Bitraten Buch zu führen. Wenn es Dir so wichtig ist, dann frage doch einmal den Autor von Mediainfo. Das ist zwar kein Deutscher, aber er versteht, wenn man ihm in Deutsch etwas schreibt, antwortet dann aber auf Englisch und das kann man entweder selbst entziffern oder man lässt sich dabei helfen.


    MfG, kodela

  • Hallo kodela,
    Du mußt meine letzte Antwort im Kontext Deiner mir gewidmeten Antworten sehen. Ausgangspunkt war der Versuch die Webcam (?) meines Notebooks mit VLC zu nutzen, um daran auch zu lernen, was man kann.
    Derzeit kann ich diese Cam sinnvoll nur mit Skype nutzen. Ich besitze noch eine USB-MS-Lifecam, zu der man nach Anschluß an dieses Notebook zwar kostenlos eine proprietäre Software geladen bekommt, aber diese läßt keine Einstellung zu, die eingebaute (!) Kamera zu nutzen. Mit VLC kann ich beide alternativ ansprechen.
    Zurück zum Ursprung: Du schlugst mir vor, per GUI eine raw-Datei Typ .ts zu erzeugen. Gerade das gelingt mir nicht!
    Deshalb wich ich auf .mp4 aus. Nun besteht mein Wunsch natürlich, die maximale Auflösung der Kamera zu nutzen. Um Versuche serienweise zu testen, ging ich auf die Kommandozeile.


    Aber warum bei einem befriedigendem Bild (letzte Spalte) schließlich das Bild bei fortlaufendem Ton einfriert, kannst Du nicht kommentieren?
    Mit welchen Parametern kann man die Kamera zu ihrer maximalen möglichen Auflösung zwingen, ohne dass in VLC irgendwelche Automatismen sie runterregeln?

  • Hallo Pit,


    es ist schwer für mich, aus einer Reihe von Beiträgen / Antworten immer das "rauszufischen" was ein Themenersteller gerade meint. Zum einen habe ich mich ja nicht nur mit einem Thema von einem User zu beschäftigen und dann habe ich selbst auch eine ganze Menge eigener Probleme (Python lernen, Buch schreiben, Fotobuch erstellen, Urlaubsvideo erstellen und und und). Da wäre es sehr hilfreich, wenn auf alles was für eine Antwort wesentlich ist, in dem Beitrag, der zu beantworten ist, hingewiesen würde.


    Unabhängig davon ergibt sich aus Deinem vorvorletzten Beitrag nur, dass es Dir mit der GUI nicht gelingt und was das genau ist, habe ich bis jetzt auch in Deinen anderen Beiträgen nicht gefunden. Dass es Dir einmal um Deine Web-Cam ging, ist mir schon klar, aber mir ist nicht klar, was Du da unter der GUI machst. Du schriebst zum Beispiel:


    Code
    1. ... habe ich verschiedene mp4-Dateien (mit verschiedenen vb-Vorgaben, zwei auch mit dshow-fps-Vorgabe) erzeugen können, jedoch mit sehr unterschiedlichen Resultaten ...


    Was haben MP4-Dateien mit Deiner Web-Cam zu tun, damit sorgst Du doch nur für Verwirrung. Man muss schon wissen was genau Du machst und bitte nicht fünf Dinge auf einmal. Nur wenn man das weiß, kann man sagen, das ist richtig und jenes muss so gemacht werden.


    Du beschäftigst Dich in dem Bemühen, alles richtig zu machen, viel zu sehr mit ziemlich unwichtigen Dingen. Wichtig ist, schrittweise vorzugehen. Ein einziges Ziel ins Auge fassen uns sich auf das Wesentliche zu konzentrieren und wenn es dabei Probleme gibt, dann mit genauen Informationen fragen.


    Auf Aussagen wie:


    Code
    1. Du schlugst mir vor, per GUI eine raw-Datei Typ .ts zu erzeugen. Gerade das gelingt mir nicht!


    kann ich nichts antworten, weil sie nichts über Dein Vorgehen sagen. Wenn jemand Dir sagen würde, es gelinge ihm nicht, den VLC zu starten, dann würdest Du darauf doch fragen, "Wie versuchst Du es denn?" Un erst wenn Du das weißt, kannst Du ihm eventuell helfen.


    Fragen wie:


    Quote

    Aber warum bei einem befriedigendem Bild (letzte Spalte) schließlich das Bild bei fortlaufendem Ton einfriert, kannst Du nicht kommentieren?


    kann ich beantworten. Aber was hilft es, wenn ich Dir sage, dass bei der Erzeugung dieser Datei etwas schief gelaufen ist. Das weiß Du ja selbst. Mehr kann ich nicht sagen, weil Du ja kein Wort darüber verlierst, wie genau diese Datei entstanden ist.


    Auf Deine Frage:


    Quote

    Mit welchen Parametern kann man die Kamera zu ihrer maximalen möglichen Auflösung zwingen, ohne dass in VLC irgendwelche Automatismen sie runterregeln?


    kann ich Dir sagen, dass Du bei einer Aufnahme im RAW-Modus keine Verluste hast. Hier entspricht das Zielobjekt dem Quellobjekt. Deine Frage nach der maximalen Auflösung, Dein Bemühen, etwas zu erzwingen, das alles bringt Dir nichts.


    Wenn es mit dem RAW-Modus nicht funktionieren sollte, dann musst Du Transcodieren und Dich davor über die Quelle informieren. In welcher Auflösung sendet die Web-Cam und wie sind Audio- und Videostream codiert. Dementsprechend entscheidet man sich dann für eine Auflösung, die der Quelle entspricht, was der VLC in der Regel schon automatisch so macht und man kann sich entscheiden, welche Codecs man einsetzt.


    Mein Vorschlag: Konzentriere Dich auf die Aufnahme von Deiner Web-Cam. Wenn Du Über Menü - Medien - Konvertieren/Speichern ... gehst, hast Du im Dialog "Konvertieren" die Option "Raw-Input speichern".


    MfG, kodela