2010-07-07 3 views
12

Ich suche die beste Qualität FLV mit der niedrigsten Dateigröße zu erreichen. Ist das nicht alles das Ziel? Diese Videos werden gestreamt, wenn das einen Unterschied macht.Wie kann ich mit FFMPEG die beste Gesamt-FLV-Qualität erreichen?

Momentan sind meine Videos nicht breiter als 320px und einige sind Breitbild, also sind ihre Höhen etwas kleiner als 240px. Wie es aussieht, ist die Qualität der konvertierten FLVs ziemlich schlecht.

Aktuelle Befehl:

> ffmpeg -i video.mov -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 video.flv 
+0

Spielen Sie mit dem '-b' Flag, das ist die Video-Bitrate. Der Standardwert ist 200. –

+0

Verwenden Sie das '-q' Flag, um' Quality' zu setzen. Standardmäßig ist es niedrig. Deshalb ist das Konvertieren ohne Video schlecht. – Searush

Antwort

10

standardmäßig flv standardmäßig 200Kb und mit der qmax 30 so hoch sein (da Sie überschreiben es nicht), es wird wahrscheinlich Ausgang in der Nähe der Herstellung sein. Sie können dies entweder fix:

  • qmax auf einen niedrigeren Wert einstellen zwingt die Qualitätskontrolle bis der birate die Anforderung zu erfüllen.
  • Upping die Bitrate mit -vb 400k

Auf dem Test-Video Ich habe gerade versucht -qmax 10 akzeptablen Ausgang gab. Die Verwendung von qmax und qmin zur Einstellung der unteren und oberen akzeptablen Qualität ist der bevorzugte Weg.

+0

Danke dafür ... kannst du erklären, was -qmax eigentlich macht? Was repräsentiert der Wert? – dcolumbus

+0

Diese Werte steuern, wie streng der Quantisierer an der Eingabe ist. Eine q-Skala von 1 wird so viel wie möglich erhalten. Teil Weg, obwohl die Codierung eines Rahmens ffmpeg arbeitet die q-Skala und entscheidet, wie viel wegwerfen/zu halten, abhängig von Ihrem qmin und qmax Werte. Wenn es nicht innerhalb dieser Werte liegt, klammert es sich an den nächsten und benutzt es.Grundsätzlich hält es die Q-Skala innerhalb der von Ihnen eingestellten Grenzen und ordnet Bit entsprechend Bits zu, wo es gelingt, besser zu komprimieren, als Sie benötigen, und sie zu verwenden, wenn es darunter geht. – Russ

+1

Also, was wäre ein gutes Beispiel für gute Qualität ... in Anbetracht der Tatsache, dass die Standardeinstellungen einige schlechte Ergebnisse produzieren. -qmin 8 und -qmax 10? Oder muss ich etwas mit -qscale machen? Ich schätze Ihre Hilfe. – dcolumbus

3

Ich denke, die beste Lösung, um das Verhältnis Qualität/Größe zu maximieren ist, die "FLV" Codierung von ffmpeg insgesamt zu verwerfen, und stattdessen H.264 verwenden.

Normalerweise benutze ich Handbrake, um Dateien in MP4/AAC zu konvertieren, und verwende dann FFMPEG, um die Datei in einen FLV-Container zu remuxen.

ffmpeg -i input_file.mp4 -vcodec copy -acodec copy -y output_file.flv 

Es gibt auch eine Menge von Parametern für die Handbremse, können einige interessante Presets hier: http://trac.handbrake.fr/wiki/BuiltInPresets

+0

Aber das ist alles getan Server-Seite ... kann nicht Handbremse dafür verwenden. – dcolumbus

+0

Ich spreche natürlich von der Befehlszeilenschnittstelle der Handbremse: HandBrakeCLI. – SirDarius

+0

So können Sie die Befehlszeilenschnittstelle auf dem Server verwenden? Ich nehme an, du könntest ... es scheint etwas verworren, oder? – dcolumbus

7

ich bisher nicht vorgestellt hatte kein Glück mit den Optionen - die meisten von ihnen hatten keine Wirkung auf meine Eingabedatei, die durchweg schlechte Qualität der Ergebnisse wurde produziert - aber das wirklich sehr gut gearbeitet folgende:

ffmpeg -qscale 4 -i infile.avi outfile.flv 

reduzieren qscale Wert für eine bessere Qualität, erhöhen sie für eine kleinere Dateigröße. Von the docs:

-qscale n wo n eine Zahl von 1 bis 31 ist, wobei 1 die höchste Qualität/größte Dateigröße und 31 die niedrigste Qualität/kleinste Dateigröße sein.

Getestet unter Mac OS X 10.6.8.

+0

Das hat auch wunderbar für mich funktioniert. Viel höhere Qualität, als ich erreichen konnte, indem ich Qmax und Qmin änderte! – ATG

+1

Dies ist der einzige, der auch für mich funktioniert hat! – StefanNch

Verwandte Themen