av1
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| av1 [2023-10-13 00:53:40] – [Encoder: libsvt_av1] manfred | av1 [2024-11-23 00:34:25] (aktuell) – [AV1] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== AV1 ====== | ||
| + | |||
| + | * **[[https:// | ||
| + | * // | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | siehe auch //[[::HDR (High Dynamic Range / Dolby Vision)# | ||
| + | |||
| + | > ffmpeg -i Quelle.avi -c:v libaom-av1 -crf 38 -cpu-used 8 -row-mt 1 -aq-mode 1 -tune 1 -g 300 -c:a aac -movflags faststart -f mp4 -y Ziel.mp4 | ||
| + | |||
| + | |||
| + | ===== Encoder ===== | ||
| + | |||
| + | |||
| + | ==== libsvtav1 ==== | ||
| + | |||
| + | //Der Encoder '' | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | CRF => Qualität vs. Dateigröße | ||
| + | Preset => Qualität vs. Geschwindigkeit | ||
| + | |||
| + | CRF = 16-20-25 - Bereich, in dem der Kompromis zwischen Qualität und Dateigröße gut sind, die Encoder-Zeit schwankt, ändert sich aber nur wenig. | ||
| + | | ||
| + | CRF=16 - gerade noch akzeptable Dateigröße | ||
| + | CRF=25 - in einigen Fällen (abhängig vom Videomaterial) ist die Qualität bei CRF>25 zu schlecht | ||
| + | |||
| + | Preset=4-6 - Bereich, in dem der Kompromis zwischen Qualität und Geschwindigkeit gut sind | ||
| + | Preset=3-4 - für Archivierung | ||
| + | Preset=5 | ||
| + | Preset=6 | ||
| + | Preset> | ||
| + | | ||
| + | Preset=6 sollte ein guter Ausgangspunkt für Qualität/ | ||
| + | Wenn Sie auf Echtzeit und viel schneller als Echtzeit abzielen möchten, können Sie von 8 bis 12 gehen. | ||
| + | |||
| + | |||
| + | ==== Encoder-Vergleich ==== | ||
| + | |||
| + | # Dieser Verglich wurde auf FreeBSD 14.0, im Februar 2024, gefahren. | ||
| + | | ||
| + | ### AOM-AV1 (2024-02: FreeBSD 14.0) | ||
| + | # optimiert, um Platz zu sparen | ||
| + | # 417 MB (ca. 30% Platzersparnis gegenüber dem SVT-AV1) | ||
| + | # 3707 Minuten Kompilierzeit (mehr als 12-mal so lange, wie der SVT-AV1) | ||
| + | ffmpeg ... -c:v libaom-av1 -cpu-used 3 -crf 28 -aom-params fp-mt=1 -row-mt 1 -aq-mode 1 -tune 1 -threads 6 | ||
| + | | ||
| + | ### SVT-AV1 (2024-02: FreeBSD 14.0) | ||
| + | # optimale Balance zwischen Qualität, Kompilierzeit und Dateigröße | ||
| + | # 588 MB | ||
| + | # 308,5 Minuten Kompilierzeit | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 29 -preset 5 -svtav1-params enable-overlays=1: | ||
| + | |||
| + | ### SVT-AV1 (2023-12: FreeBSD 13.2) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 25 -preset 7 ...: 902 MB (96 %) | ||
| + | | ||
| + | ### SVT-AV1 (2024-02: FreeBSD 14.0) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 25 -preset 7 ...: 940 MB (100 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 20 -preset 5 ...: 1226 MB (130 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 21 -preset 5 ...: 1150 MB (122 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 22 -preset 5 ...: 1077 MB (115 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 23 -preset 5 ...: 1012 MB (108 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 24 -preset 5 ...: 939 MB (100 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 25 -preset 5 ...: 853 MB (91 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 26 -preset 5 ...: 771 MB (82 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 27 -preset 5 ...: 701 MB (75 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 28 -preset 5 ...: 640 MB (68 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 29 -preset 5 ...: 588 MB (63 %) | ||
| + | ffmpeg ... -c:v libsvtav1 -crf 30 -preset 5 ...: 545 MB (58 %) | ||
| + | |||
| + | |||
| + | ==== Encoder: libaom-av1 ==== | ||
| + | |||
| + | > ffmpeg -help encoder=libaom-av1 | ||
| + | |||
| + | // | ||
| + | ffmpeg -h encoder=libaom-av1 | ||
| + | ffmpeg -i input.mp4 -c:v libaom-av1 -crf 20 -b:v 0 -cpu-used 5 -row-mt 1 -tile-columns 1 -tile-rows 0 -f matroska ausgabe.mkv | ||
| + | |||
| + | |||
| + | === Lossless encoding === | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | === Kodiergeschwindigkeit === | ||
| + | |||
| + | * für die Transkodiergeschwindigkeit sind hauptsächlich die folgenden Option verantwortlich | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * damit soll das Verhältnis zwischen Qualität und Kodiergeschwindigkeit verschoben werden können; | ||
| + | * **'' | ||
| + | * **'' | ||
| + | * **'' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * setzt man da einen Werte zwischen " | ||
| + | |||
| + | |||
| + | === Geschwindigkeits- und Qualitätsbeeinflussung === | ||
| + | |||
| + | Standard-Aufrufe | ||
| + | |||
| + | langsam mit hoher Qualität ('' | ||
| + | > ffmpeg -i film.avi -probesize 9223372036854M -analyzeduration 9223372036854M -fflags +genpts -i film.avi -c:v libaom-av1 -crf 20 -usage 0 -cpu-used 0 -map 0:v -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -f matroska -y film.mkv | ||
| + | |||
| + | schnell mit geringer Qualität ('' | ||
| + | > ffmpeg -i film.avi -probesize 9223372036854M -analyzeduration 9223372036854M -fflags +genpts -i film.avi -c:v libaom-av1 -crf 35 -usage 1 -cpu-used 8 -threads 0 -tile-columns 1 -tile-rows 0 -row-mt true -map 0:v -c:a libvorbis -q:a 6 -map 0:a:0 -sn -f webm -y film.webm | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | HDR - Farbinformationen | ||
| + | * When encoding in HDR it's necessary to pass through color information; | ||
| + | * For example, Youtube HDR uses: '' | ||
| + | |||
| + | > ffmpeg -h encoder=libaom-av1 | ||
| + | > ffmpeg -i input.mp4 -c:v libaom-av1 -crf 20 -b:v 0 -cpu-used 4 -threads 4 -row-mt 1 -tile-columns 1 -tile-rows 0 -colorspace bt2020nc -color_trc smpte2084 -color_primaries bt2020 -c:a libopus -vbr on -compression_level 10 -ac 2 -b:a 200k -f matroska -y av1_test.mkv | ||
| + | |||
| + | [[https:// | ||
| + | During the recent project, I asked Google if there were any other ways to accelerate encoding speed. | ||
| + | | ||
| + | One engineer advised: | ||
| + | | ||
| + | If you can use multiple threads while running the encoder, it would help with the encoder speed. | ||
| + | For HD and above resolutions, | ||
| + | Using tiles causes quality loss, and my old testing showed ~0.6% loss while using 2 tiles and ~1.3% loss while using 4 tiles. | ||
| + | | ||
| + | I didn't test 4k clips myself, so here I just give some suggestions. | ||
| + | For 1080p, use 2 tiles and 8 threads: " | ||
| + | | ||
| + | For 4k, use 4 tiles and 16 threads: " | ||
| + | |||
| + | um eine hohe Qualität und eine hohe Kompatibilität zu erhalten, behalte ich diese Werte wie folgt immer bei: | ||
| + | für gleichbleibende Qualität: -b:v 0 -row-mt 1 -tile-columns 1 -tile-rows 0 | ||
| + | für HDR wie YouTube es einsetzt (hohe Kompatibilität): | ||
| + | |||
| + | um die Qualität und Kodiergeschwindigkeit steuern zu können, werden diese Werte individuell angepasst | ||
| + | soviel Qualität wie nötig (meine höchste Qualität: ~" | ||
| + | für maximale Kodiergeschwindigkeit, | ||
| + | |||
| + | Anzahl der " | ||
| + | # sysctl -n hw.ncpu | ||
| + | 4 | ||
| + | | ||
| + | # sysctl -n kern.smp.cpus | ||
| + | 4 | ||
| + | |||
| + | Anzahl der " | ||
| + | # egrep '^core id' / | ||
| + | 4 | ||
| + | |||
| + | |||
| + | ==== Encoder: librav1e ==== | ||
| + | |||
| + | ffmpeg -h encoder=librav1e | ||
| + | ffmpeg -i input.mp4 -c:v librav1e -qp 80 -tile-columns 1 -tile-rows 0 -rav1e-params speed=5: | ||
| + | |||
| + | |||
| + | ==== Encoder: libsvt_av1 ==== | ||
| + | |||
| + | > ffmpeg -help encoder=libsvtav1 | ||
| + | > ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 svtav1_test.mp4 | ||
| + | |||
| + | > ffmpeg -h encoder=libsvt_av1 | ||
| + | > ffmpeg -i input.mp4 -c:v libsvt_av1 -qp 32 -preset 8 -profile 0 -level 0 -rc 0 -f matroska ausgabe.mkv | ||
| + | |||
| + | Für den Codec " | ||
| + | # -preset | ||
| + | Niedrigere Werte führen bei einer gegebenen Dateigröße zu einer Ausgabe mit besserer Qualität, | ||
| + | die Codierung dauert jedoch länger. | ||
| + | # -crf " | ||
| + | |||
| + | |||
| + | ==== Encoder: av1 (ffmpeg intern) ==== | ||
| + | |||
| + | ffmpeg -i input.mp4 -c:v av1 -crf 32 -f matroska ausgabe.mkv | ||
| + | |||
| + | |||
| + | |||
| + | ===== Player ===== | ||
| + | |||
| + | //Stand: 25. März 2023// | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
