Wie kann ich H. 264-Videos mit minimalem Qualitätsverlust neu codieren?

Ich habe viele MPEG-TS-Dateien (.TS (aber H. 264-Video) und Wiedergabe ist in Ordnung, außer dass wenn Sie vorwärts/rückwärts oder schnell vorwärts springen, es sehr träge ist und pixelig wird usw.

Ich habe versucht, Nachforschungen anzustellen, und ich vermute, dass sie mit sehr wenigen Referenzblöcken codiert wurden (dh. es ist eine Aufnahme von einem DVB-S-Satellitenstrom).

Wenn ich sie mit Handbrake (.MP4 Container) neu kodiere, spielen sie sehr, sehr gut und suchen im Video sofort usw. usw.

Ist es möglich, meine MPEG-TS-Dateien mit minimalem Qualitätsverlust zu transkodieren/neu zu kodieren? Wenn ja, was ist meine beste Wette? Sie sind jeweils etwa 2 Mbps (dh. 2 GB pro Stunde), aber ich möchte sie nicht neu codieren, wenn "minimaler Qualitätsverlust" 10+ GB pro Datei erfordert. Ich hoffe, das Video zu halten sind die gleiche Größe.

Kann mir jemand einen Rat geben?

Author: KovBal, 2012-06-19

3 answers

Es ist möglicherweise ein Containerproblem, indem es mit{[3] in ein neues Containerformat kopiert wird]}

avconv -i input.ts -c copy output.mp4

Kann Ihr Problem beheben. Dies wird 100% verlustfrei sein. Wenn das nicht funktioniert, wird ein crf von 18 normalerweise als "visuell verlustfrei" betrachtet; Sie können dies als Handbremse (unter der Registerkarte "Video") oder mit avconv festlegen:

avconv -i input.ts -c:a copy -c:v libx264 -crf 18 -preset veryfast output.mp4

Die Vorgaben sind: ultrafast, superfast, veryfast, schneller, schnell, Mittel, langsamer, langsamer, veryslow. Je langsamer die Voreinstellung, desto kleiner die Datei (aber mit einer Zunahme der Kodierung Zeit). In meinen persönlichen Experimenten habe ich festgestellt, dass der größte Rückgang in Bezug auf die Dateigröße zwischen Superfast und Veryfast liegt, danach scheint es viel inkrementeller zu sein.

HINWEIS: Wenn Sie möchten, kann ffmpeg alles tun, was avconv tun kann, mit identischer Syntax (ersetzen Sie einfach alle Instanzen von avconv durch ffmpeg).

FUßNOTE: Sie können diese ffmpeg x264 encoding guide nützlich für weitere Informationen.

 23
Author: evilsoup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-07 08:52:50

Ohne auf die Details der Videocodierung einzugehen: Es gibt keinen "minimalen Qualitätsverlust", wenn Ihre Einschränkung ein bestimmter Videocodec (h. 264) oder eine bestimmte Bitrate ist. Ein limitierender Faktor wird immer da sein – wenn es eine Möglichkeit gäbe, noch mehr Qualität zu erhalten, wäre das sozusagen der heilige Gral der Videokodierung.

Es gibt nur so viel, was ein Encoder wie x264 tun kann – Ihr Hauptknopf für die "Steuerung" ist die Einstellung des Faktors für konstante Raten, der irgendwie als "Konstante" fungiert Qualität" - Faktor. Abgesehen davon gibt es technische Einschränkungen, wie viel Bitrate beim erneuten Codieren und Beibehalten der gleichen visuellen/erlebten Qualität mit einem bestimmten Encoder gespeichert werden kann.

Natürlich erhalten Sie unterschiedliche Ergebnisse für beispielsweise XviD (einen einfachen MPEG 4 Part II-Encoder) und x264, den fortschrittlichsten h. 264-Encoder von heute. Und dann könnten Sie auch versuchen, den Mainconcept h. 264-Encoder zu kaufen und zu sehen, ob die Verwendung zu einer besseren Qualität bei derselben durchschnittlichen Bitrate führt.

In Videocodierung, du wirst sowieso ein paar Versuche machen müssen, da es auch vom Ausgangsmaterial abhängt. Ein Fußballspiel wird schwieriger zu kodieren sein als eine Runde Snooker. Es gibt einige Optionen in x264, die eine Abstimmung für bestimmte Typen, z. B. Filme, mit der Option -tune film in FFmpeg ermöglichen, aber der Unterschied könnte minimal sein.

Für Beispiele und weitere Informationen finden Sie unter FFmpeg: Die ultimative Video-und Audio-Manipulation-Tool.

 8
Author: slhck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-06-21 17:14:36

Für meine Blu Rays Wenn ich MPEG-TS-Dateien kodiere, verwende ich handbrake High profile und verwende die Registerkarte Erweitert mit diesen Einstellungen: RF 20

b-adapt=2:rc-lookahead=60:bframes=8:direct=auto:trellis=2:ref=16:subq=10:me=umh:merange=24:analyse=all

Die Kodierung dauert eine Weile, aber die Qualität ist schwer von einer Blu-ray zu unterscheiden.

Wenn Ihr Ziel die gleiche Größe ist, geschieht dies nicht, da es sich um einen anderen Codec / eine andere Komprimierung handelt. Dateigröße und Qualität sind nicht dasselbe.

 1
Author: davefromcamp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-07 08:55:53