Frage zu FFMPEG Exacte c:v Bitrate berechnung

  • Moin Moin aus HH

    Habe da ein Problem mit ffmpeg abstimmung

    Suche den code für eine 100% selben video bitrate von der source.


    Mein code sieht so aus im moment:

    Code
    1. ffmpeg -i "2.mkv" -i "1.dts" -y -filter_complex "subtitles=3.srt:force_style='OutlineColour=&H00000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=20,Fontsize=20',scale=1280:trunc(ow/a/2)*2" -f mp4 -vcodec libx264 -profile:v main -preset fast -b:v 1800k -maxrate 1800k -bufsize 1800k -r 24000/1001 -threads 4 -movflags +faststart -ac 2 -c:a aac -strict -2 -b:a 128k -ar 48000 "ende.mp4" -hide_banner


    Am ende kommt laut MediaInfo : Bitrate : 1 746 kb/s heraus

    wenn ich nun aber den konventierten film der nun 1746 kb/s hat auf -s 720x480 runter scallen möchten mit der exakt selben 1746 kb/s der orginalen haben möchte.

    muss ich dann folgendes eingeben?: -b:v 1746k -maxrate 1800k -bufsize 1746k

    Woanders gelesen im web: Wenn Sie die Qualität Ihrer Quellvideodatei erhalten möchten, verwenden Sie den Parameter '-qscale 0': geht aber auf 250kb/s runter dann


    -c:v copy mit scale=720:trunc(ow/a/2)*2 geht nicht.

  • Willkommen.


    Warum sollte man exakt die selbe Bitrate wie im Original überhaupt brauchen? Eine verlustfreie Konvertierung garantiert das nicht, im Gegenteil. Einziger möglicher Grund: Man will einen Datenträger der gleichen Größe ebenso füllen. Dann würde man aber mit einer Zielgröße arbeiten und eine 2-pass-Konvertierung verwenden, damit der Encoder im ersten Durchlauf Statistikdaten sammeln kann, um die Bitrate für den zweiten Durchlauf auf die Zielgröße herunterzurechnen. Das garantiert aber auch keinen 100% exakten Treffer, ein wenig Zufallsschwankung ist immer drin.


    Nachtrag: Feste Bitrate in einem Durchlauf erzeugt im Allgemeinen eher ein Ergebnis mit stärkeren Qualitätsschwankungen, weil der Encoder dann versucht, in jeder Szene etwa die gleiche Bitrate zu erreichen, egal wie unterschiedlich der sichtbare Inhalt der Szenen ist. Das ist relativ nützlich, wenn man das Ergebnis über einen Weg abspielen muss, der eine begrenzte Bandbreite hat (z.B. Internet-Streaming). Für eine Archivierung oder das Abspielen von schnellen Datenträgern ist das aber von Nachteil. Hier will man doch eher eine relativ gleichbleibende Qualität erhalten. Wem da die Größe egal ist, weil auf dem Datenträger genug Platz ist, der wählt CRF; wer eine Zielgröße erreichen muss, weil der Datenträger klein ist, muss 2-pass verwenden.

  • also, ungeachtet der qualität oder sinnlosigkeit,...


    was der kollege sucht, ist ein CBR modus für den x264 codec.


    soweit ich weiß, hat x264 keinen 100%igen CBR-modus.


    das was dem am nächsten kommt, ist ein ABR/VBR modus mit einer zielbitrate, die trozdem minimal schwankt.

    egal was man einstellt, man schafft einfach nicht, dass jedes bild die selbe bitrate bekommt.


    meine frage an den ersteller:

    für was brauchst du das?


    qualität bedeutet VBR ohne rücksicht auf den speicherplatz oder bitrate.

    ggf. ist ein transcoding generell zu vermeiden, d.h. die video-spur müsste kopiert werden.


    wenn du aber die auflösung ändern willst,

    dann muss immer neu kodiert werden,

    dass bedeutet immer qualitäts verlust.