mpg to mp4 konvertieren

Sound, Digitalkameras, TV+Video und Spiele.
Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

Re: mpg to mp4 konvertieren

Beitrag von matman » 29.05.2018 23:13:12

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
29.05.2018 18:12:41
konstanter Qualitaet. CRF
Gut, mit CRF habe ich mich noch nicht näher befasst. Allerdings muss man da wohl einen Wert angeben, der mit 0 lossless ist und je höher, je mehr Verluste hat man. Wenn ich den Artikel richtig verstehe, bedeutet das aber auch sehr große Dateien, wenn man lossless oder nahe lossless encoden will.

Als x264 recht neu war, gab es eine schöne Webseite von ffmpeg, die ich heute leider nicht mehr finde. Kann auch sein das es ne Doku vom mencoder war. Damals gab es noch ganz andere Optionen, die es heute nicht mehr gibt und es wurde für beste Qualität definitiv 2 Pass Encoding empfohlen. Irgendwann wurden dann die anfangs recht komplizierten Optionen durch die Presets ersetzt. Zu der Zeit gab es (ich glaube auch auf ffmpeg.org) eine viel ausführlichere Anleitung zu lossless encoding. Und mit dem Preset veryslow sollte angeblich ein nahezu verlustfreies Encoding mit bestmöglicher Kompression möglich sein. Ich nutze das jedenfalls seitdem immer und kann bei Bitraten ab 1000k zumindest visuell keinen Unterschied zur Quelldatei feststellen. So lassen sich z.B. alte DVD's retten und gleichzeitig die Datenmenge auf etwa 1/4 reduzieren. Allerdings dauert veryslow dann auch recht lange.

Die dafür entscheidenden Optionen sind: -profile:v high -preset veryslow. Mit 2 pass sieht das dann etwa so aus:

Code: Alles auswählen

ffmpeg -i INPUT.AVI -c:v libx264 -b:v 1200k -profile:v high -preset veryslow -an -f mp4 -pass1 -passlogfile VIDEO-NAME_2pass.log -y /dev/null
ffmpeg -i INPUT.AVI -c:v libx264 -b:v 1200k -profile:v high -preset veryslow -acodec copy -f mp4 -pass2 -passlogfile VIDEO-NAME_2pass.log VIDEO-NAME.mp4
Wer keinen Wert auf möglichst kleine Dateien legt und nur super Bild haben will kann es auch mit -profile:v high -preset fast probieren. Sollte die selbe Bildqualität ergeben und schneller encoden. Dafür aber eine grössere Datei ergeben.
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: mpg to mp4 konvertieren

Beitrag von Lord_Carlos » 30.05.2018 08:26:07

matman hat geschrieben: ↑ zum Beitrag ↑
29.05.2018 23:13:12
Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
29.05.2018 18:12:41
konstanter Qualitaet. CRF
Gut, mit CRF habe ich mich noch nicht näher befasst. Allerdings muss man da wohl einen Wert angeben, der mit 0 lossless ist und je höher, je mehr Verluste hat man. Wenn ich den Artikel richtig verstehe, bedeutet das aber auch sehr große Dateien, wenn man lossless oder nahe lossless encoden will.
2pass macht nichts anderes als ein CRF fuer dich zu waehlen. Du encodeds also schon mit dem CRF Algorithmus.
crf von 18 bei 1080p ist glaube ich sehr sehr nahe an lossless.
Ich meine die meisten 1080p BR encodes sind oft um CRF 22.

-preset kannst du weiterhin verwenden.

z.B. 2pass -b:v XXXXk kann bei einem Spielfilm mit starker Koernung zu wenig sein, waerend es bei einem Zeichenfilm überdimensioniert ist. Aber man weis wie Gross die Datei wird.

2pass hat kein vorteil, aus das man die groesse grob vorhersagen kann.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

Re: mpg to mp4 konvertieren

Beitrag von matman » 31.05.2018 17:29:57

Danke für die Hinweise. Ich werde damit mal herum experimentieren. Bin jetzt echt neugierig geworden, ob man damit einen Zeitgewinn hinbekommt, was dann ja auch energieeffizienter wäre. Der erste Pass geht zwar relativ schnell, aber wenn es ohne genau so gut geht, wäre das ja cool.
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

Re: mpg to mp4 konvertieren

Beitrag von matman » 12.06.2018 11:52:50

Ich habe mit einem 23 Minuten Video (720x576) mal ein paar Tests gemacht. Einmal mit 2 Pass Encodierung und 2 x 1 Pass mit je crf 18 und dann 17. Das Ergebnis:

Code: Alles auswählen

          Dateigröße          Bitrate kb/s
2 Pass    207 MB              1000
crf 18    168 MB               771
crf 17    179 MB               838
Beim CRF Encodung habe ich ebenfalls eine Bitrate von 1000k vorgegeben. Aus irgend einem Grund wählt die Option -crf dann wohl aber eine andere.

Was die Bildqualität angeht: bei der 2 Pass Encodierung sehe ich keinen Unterschied zum Quellmaterial. Die beiden CRF Encodierungen dagegen weisen feine, aber deutlich sichtbare Artefakte auf. Man müsste also -crf 14 bis 12 oder noch kleiner verwenden, um an die Bildqualität der 2 Pass Encodierung heranzukommen. Das würde aber einen Mehraufwand an Zeit bedeuten.

Die Dauer der Encodings:

Code: Alles auswählen

2 Std. 31 Min. - 2 Pass mit Bitrate 1000k (2. Pass)
2 Std. 28 Min. - crf 18
2 Std. 38 Min. - crf 17
Der erste Pass dauert ca. 15 Minuten. Somit kann man davon aiusgehen das es ab crf 15 mit der 2 Pass Encodierung schneller gehen wird. Für Top Bildqualität ist 2 Pass aus meiner Sicht noch immer die bessere Wahl. Zumal man mit der Durchschnitts-Bitrate von 1000k auch für Full-HD sehr gute Ergebnisse bekommt. Je nach Quellmaterial würde ich aber auch bis zu 1300k als Bitrate nehmen. Bei Top-HD Qualität, etwa Rohdaten, sogar bis 1500k. Das genügt dann locker wenn man Dateien haben will, die für das Auge lossless sind.

Außerdem bewegen sich große Objekte, wie z.B. eine Kugel, die relativ schnell durch das Bild wandert und dabei 1/5 bis 1/2 des Bildschirms füllt, bei der 2 Pass Encodierung meklich ruhiger durch das Bild. Beim CRF Encoding gibt es gelegentlich leichte Ruckler.

Die Encodierungszeiten beziehen sich auf einen einzigen CPU-Kern mit 3 GHz. Nutzt man alle verfügbaren Kerne geht es natürlich deutlich schneller.
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: mpg to mp4 konvertieren

Beitrag von Lord_Carlos » 12.06.2018 12:22:55

Jetzt vergleichst du aber ein 771 / 838 kb/s mit einem 1000kb/s encode.
matman hat geschrieben: ↑ zum Beitrag ↑
12.06.2018 11:52:50
Außerdem bewegen sich große Objekte, wie z.B. eine Kugel, die relativ schnell durch das Bild wandert und dabei 1/5 bis 1/2 des Bildschirms füllt, bei der 2 Pass Encodierung meklich ruhiger durch das Bild. Beim CRF Encoding gibt es gelegentlich leichte Ruckler.
Mhh, darf ich mal deine kompletten Befehle sehen?

Edit: Ich nehme an die 15 Minuten 1 pass sind in deiner Zeitrechnung mit drinne?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

Re: mpg to mp4 konvertieren

Beitrag von matman » 13.06.2018 14:11:37

Steht schon weiter oben, aber damit Du nicht suchen musst:

Code: Alles auswählen

ffmpeg -i INPUT.AVI -c:v libx264 -b:v 1200k -profile:v high -preset veryslow -an -f mp4 -pass1 -passlogfile VIDEO-NAME_2pass.log -y /dev/null
ffmpeg -i INPUT.AVI -c:v libx264 -b:v 1200k -profile:v high -preset veryslow -acodec copy -f mp4 -pass2 -passlogfile VIDEO-NAME_2pass.log VIDEO-NAME.mp4
In der Tabelle oben sind die 15 Min. nicht mit berechnet, nur die Dauer vom 2. Pass. Es könnten auch 20 Minuten gewesen sein. Habe leider nicht gestoppt. Aber wenn man mal die Differenz von crf 18 zu crf 17 nimmt, dann dauert crf 14 vermutlich ca. 30 Min. länger als crf 17.
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: mpg to mp4 konvertieren

Beitrag von Lord_Carlos » 13.06.2018 16:53:59

matman hat geschrieben: ↑ zum Beitrag ↑
12.06.2018 11:52:50
Beim CRF Encodung habe ich ebenfalls eine Bitrate von 1000k vorgegeben. Aus irgend einem Grund wählt die Option -crf dann wohl aber eine andere.
Das deutet darauf hin das du nicht verstanden hast was crf ist. Es ist gerade die Idee hinter CRF das man nur die gewuenschte Qualitaet angibt, und der encoder berechnet welche bitrate benoetigt wird. Ein Film mit viel Filmkoernung / Rauschen kann schlechter komprimiert werden als ein Zeichentrick. Wenn man ein gutes Qualitaets / Groessenverhaeltnis haben will, muss man 2pass immer die bitrate anpassen, je nach was fuer ein Film es ist.

Bei gleicher bitrate ist crf schneller als pass1 + pass2. (Pass2 alleine sollte schneller sein)
Bei gleicher bitrate haben beide identische Qualitet, du hast 1000k mit ~800k verglichen.

2pass hat den Vorteil das man die Groesse vorhersehen kann. Wenn man also genau 700mb treffen will.

Wanne, sagt doch auch mal was :<

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: mpg to mp4 konvertieren

Beitrag von wanne » 14.06.2018 19:17:57

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
13.06.2018 16:53:59
Wanne, sagt doch auch mal was :<
Was soll ich sagen?
Im Prinzip hast du ja schon alles gesagt:
Wenn er mit CRF 18 vergleichen will, müsst er mit 771kbit/s encodieren.

Ansonsten sage ich ganz dick: Respekt dass du den Unterschied zwischen crf 17 und dem 2pass noch erkannt hast. (Twopass hat offenbar im schnitt um Größenordnungen bessere Qualität gewählt als der CRF. Sonst wäre die Datei nicht größer geworden.) Aber bei der Qualitäten jenseits der 1000kbit/s bei x264: Blindstudie oder Bullshit. Spätestens nach dem 2. drüber gucken bist du halt betriebsblind. Such dir jemand der nicht beim Encoden dabei war und lass ihn ohne dein Beisein vergleichen.
Noch schlimmer wird das bei schlechten Inputqualitäten. Da sieht starke Kompression dann mitunter besser aus, weil sie die Fehler aus dem Original rausfiltert. Aber das Video scheint ein Renderingn zu sein.

Ansonsten: der x264 gibt die am Ende so Sachen wie Avg QP aus. Der ffmpeg pro Bild die passende -q:v Option. (Die sich in crf umrechnen lässt.) Wenn das nicht zusammen passt, weißt du, dass du dass du was nicht vergleichbares hast.

See also:
https://slhck.info/video/2017/03/01/rate-control.html
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten