Ideale Bitrate für mp4 errechnen

  • Hallo,

    habe von meinem alten Fotoapparat einige MJPG Clips, wollte diese in MP4 (H264) umwandeln und bin mir nicht sicher welche Ziel-Bitrate ich nehmen sollte. Auflösung ist 640 x 480, derzeit haben die eine Bitrate von 7Mbit/s. Ich dachte 2Mbit/s ev. gut wären, konnte dazu aber sonst im Web nichts finden ausser einer Formel wo im Web...

    Schnelle Bilder zB Sportaufnahmen: b x h / 180 = 1.706 kbit/s in meinem Fall.

    Langsame Bilder zB Sprecher vor konstantem Hintergrund b x h / 600 = 512 kbit/s in meinem Fall.


    Sind meine 2Mbit/s dann (sinnlos) zu viel, oder passt das schon?

  • Eine Zielbitrate muss man eigentlich nur berechnen, wenn man einen Datenträger mit geringerer Kapazität möglichst gut füllen möchte.

    Will man dagegen eher nur "ausreichend Bitrate je nach Bedarf" haben, dann sollte man nicht mehr mit der Bitrate rechnen, sondern nur noch einen Modus verwenden, der einem verspricht, einen gewissen Grad an Qualitätsverlust nicht zu überschreiten. Es gab bereits zu Zeiten von Konvertierungen zu DivX mit GordianKnot Anhaltspunkte durch einen Wert mit der Einheit "bit pro Pixel und Frame" (bppf), allerdings ist der auch nicht in jedem Fall ausreichend, den tatsächlichen Bedarf zu bestimmen, da er die Komprimierbarkeit in Bezug auf Detailgrad und Veränderlichkeit der Videoquelle nicht kennt.

    Der x264-Codec bietet für diesen Zweck einen Encodiermodus mit "konstantem Rate-Faktor" (CRF), der tatsächlich einen Grad des Qualitätsverlustes ermittelt und die Quantisierung so weit verfeinert wie nötig, um unter einem Schwellwert zu bleiben. Die endgültige Größe der Kopie lässt sich damit allerdings nicht vorhersagen. Und es könnte auch zu erheblichen Bitrate-Spitzen kommen, die für bestimmte Abspielgeräte und Medien, von denen der Film gelesen werden soll, zu hoch sein können, wenn man das nicht mit zusätzlichen Parametern einschränkt (z.B. VBV ~ "Decodierpuffer").

    Du müsstest dann nur noch für dich persönlich herausfinden, mit wieviel Verlust du immer noch zufrieden sein kannst. Für einfache Ansprüche kann ein RF von 20 genügen, anspruchsvolle Archivierung verwendet kleinere RF-Werte um etwa 15. Der Standard-Wert von x264 (23) wird im CRF-Verfahren schon auffällige Verluste hinterlassen, mag aber für Web-Videos ausreichen, die man in angenehmer Zeit herunterladen können soll.

    Bei 640×480 Pixeln mit 25 oder 30 fps wirst du mit x264 und CRF 20 wahrscheinlich oft gut unter 2 Mbps bleiben.

  • Super, danke für die ausführliche Erklärung. Ich Encode das mit dem MainConcept Encoder der bei MAGIX Video deluxe onboard ist. Ich werde mir das mal anschauen, ob der diese Option unterstützt (ich weiß nicht ob MAGIX mit dem x264 könnte, müsste ich versuchen).

  • Der CRF-Modus dürfte wohl für x264 speziell gelten; ich glaube nicht, dass MainConcept genau das gleiche zu bieten hat. Ist mir allerdings auch nicht im Detail bekannt. Ein konstanter Quantisierungsfaktor wäre jedenfalls nicht das gleiche...

    Fürs Konvertieren alleine von fertig geschnittenen MJPG-AVI nach AVC-MP4 könnte man aber sicher auch Freeware-Konverter auf Basis von ffmpeg oder AviSynth verwenden, und in denen ist x264 als Encoder sicher enthalten.

  • Hm... Ok, ich schau mal. Sonst schneide ich es mit VirualDub (falls nötig) und konvertiere dann mit was anderem. Spontan hab ich MP4 Box zu hause (mit der grafischen UI) und XMediaRecode. .. Ich schau mal. Danke.

  • Ja, du hast recht - zumindest was die bei mir vorhandene MC-Version betrifft.


    Es gibt da noch sowas:

    Und ich lese gerade dazu hier nach: https://encodingwissen.de/codecs/x264/te…rate-factor-crf

    Das klingt auch sehr nach sowas.. Dh ich geb hier dann als getestetes Beispiel 30-30-30 ein und erhalten dann im fertigen Clip eine Bitrate von 1.405 Mbps. Das klingt doch als Ansatz gut?

    2 Mal editiert, zuletzt von hausl78 (19. September 2016 um 19:21)

  • Der Begriff "Target quality mode" klingt schon ähnlich dem Zweck von CRF. Was darin jedoch genau passiert, weiß ich nicht. Könnte gut sein, dass du hier den tatsächlichen Ratefaktor nach AVC-Algorithmus eingibst, während x264 einen skalierten verwendet, der einem vergleichbaren festen Quantisierungsfaktor recht nahe kommt (mit ähnlicher Zielgröße).

    Die Passage im Encodingwissen ist gut gefunden. Passt genau zum Thema hier. :daumen:

  • Dazu noch gefunden:

    Zitat

    CRF in a nutshell
    The way constant quality encoding is usually done, it keeps up a constant quality by compressing every frame of the same type the same amount. In tech speak, that’s maintaining a constant QP (quantization parameter).

    http://slhck.info/articles/crf

    Jetzt muss ich das nur mehr lesen und verstehen ;)

  • CRF entspricht technisch allerdings nicht CQP, da muss ich shlck widersprechen: Die Quantisierung schwankt bei CRF durchaus, je nach Bedarf einzelner Szenen. Sehr scharfe, detailreiche Szenen benötigen eine etwas feinere Quantisierung als weiche, detailarme Szenen, um den gleichen Grad an Qualität zu erhalten.

    Die Werte, die du für die gegebenen Qualitätswerte für den MainConcept-Codec ermittelt hast, gelten nur für diesen einen Clip. Andere Inhalte werden für die gleichen Werte andere Bitraten ergeben. Möglicherweise wäre es sogar nützlich, für I-, P- und B-Frames unterschiedliche Qualitäts-Zielwerte zu verwenden (z.B. für B-Frames etwas gröbere). Aber das zu testen könnte Monate dauern, wenn man tausende Clips mit hunderten Rechnern verarbeitet, dann könnte man vielleicht auf interessante Verhältnisse kommen... ;D

  • Hab gerade gesehen, in Avidemux kann man das auch wunderbar auswählen. Mpeg4 AVC (x264) , Konfigurieren, mit dem Constant Rate Faktor wie oben erwähnt mal auf 20 und dem MP4v2 Muxer und geht dahin.


    Allerdings komme ich bei Faktor 23 CRF immer noch auch 4.530 kb/s

    Code
    Bitrate                                  : 4 530 kb/s
    Breite                                   : 640 Pixel
    Höhe                                     : 480 Pixel
    Bildseitenverhältnis                     : 4:3
    Modus der Bildwiederholungsrate          : konstant
    Bildwiederholungsrate                    : 30,000 FPS

    Ist das nich zu hoch?

  • Zitat

    Der Standard-Wert von x264 (23) wird im CRF-Verfahren schon auffällige Verluste hinterlassen, mag aber für Web-Videos ausreichen, die man in angenehmer Zeit herunterladen können soll.

    Hängt aber auch sehr von der Auflösung ab.
    Während 1280x720 schon bei CRF20 mir etwas verlustig erscheint, kommt zb 3200x1800 selbst mit CRF25 noch ziemlich hervorragend davon.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!