Ich versuche, das am besten geeignete verlustfreie Videoformat für 1280x720 25fps-Videos zu finden. Das Video hat 4 Minuten. Sound wird 320 kbps mp3 sein, das ist keine große Sache. Ideale Bedingungen:
- Verlustfrei (kann wahrnehmungslos verlustfrei sein)
- Container + Codec kann auf den meisten Plattformen gespielt werden
- Container + Codec kann auf modernen DVD-Playern abgespielt werden (unterstützt andere Formate als DVD)
- Die Größe beträgt weniger als 700 MB
Ist das überhaupt möglich? Ich habe bereits drei Tage ohne zufriedenstellende Ergebnisse gekämpft und sogar 12-GB-Dateien erhalten (scheint viel zu sein - 3 GB / Minute).
video
ffmpeg
video-editing
mrkva
quelle
quelle
Antworten:
Das beste aktuelle, mathematisch verlustfreie Format, das ich kenne, ist huffyuv, aber das erzeugt unglaublich große Dateien und wäre nicht mit viel kompatibel. Für die Aufzeichnung kann ffmpeg dies tun mit:
X264, der Open-Source-Encoder h.264, verfügt über einen verlustfreien Modus. Dies kann in einen MP4-Container passen und sollte mit den meisten in den letzten Jahren hergestellten Hardware kompatibel sein. Der erste Befehl gibt eine schnelle Codierungsgeschwindigkeit, aber eine große Datei an. Der zweite Befehl wird viel länger dauern, aber die Datei sollte ungefähr halb so groß sein wie die schnell codierte (sie wird jedoch immer noch ziemlich groß sein):
Wenn Sie dadurch keine ausreichend kleine Datei erhalten, wird ein CRF von 18 im Allgemeinen als "visuell verlustfrei" betrachtet:
Im Allgemeinen empfehle ich die sehr schnelle Voreinstellung für die Codierung mit x264. Meiner Erfahrung nach bietet sie den besten Kompromiss zwischen Geschwindigkeit und Größe (es gibt einen großen Rückgang der Dateigröße zwischen superschnell und sehr schnell, langsamer und inkrementeller). Allgemeiner Rat ist, die langsamste Voreinstellung zu verwenden, die Sie verarbeiten können. Die Voreinstellungen sind: ultraschnell, superschnell, sehr schnell, schneller, schnell, mittel, langsam, langsamer, sehr langsam.
Sehen Sie hier für eine tiefergehende Anleitung zur x264 - Codierung.
quelle
veryfast
als guten Standard für verlustbehaftetes x264 vor.medium
ist ein guter Mittelweg, aber ich benutze normalerweiseveryslow
für die endgültige Kodierung von irgendetwas. Auchhuffyuv
ist nicht einmal sehr schnell, ich würde es nicht für etwas anderes als Kompatibilität empfehlen.In diesen Tagen mag ich webm :
Um schneller mit Multi-Core-Prozessoren zu konvertieren, habe ich gelesen, dass empfohlen wird, einen Thread weniger zu verwenden, als Sie von echten Kernen haben. Mit einem 8-Kern könnten Sie also 7 Threads wie folgt angeben:
quelle
Um die volle Kompatibilität mit DVD-Playern zu gewährleisten, müssen Sie das MPEG-2-Format, den Container, die Einschränkungen und die Codecs verwenden. Ich denke, "moderne Player" bedeutet "mp4" -Kompatibilität, was im Grunde und meistens ein mp4-Dateispieler ist - H.264, MPEG-4, AVC => libx264
# VIDEOLesen Sie mehr: https://de.wikipedia.org/wiki /H.264
Werfen Sie einen Blick auf https://trac.ffmpeg.org/wiki/Encode/H.264 , vor allem den Teil , in dem es um „Profil“ und „Ebene“, um die Kompatibilität
# AUDIOverwenden
-profile:v high -level 4.0
sollte es tunVermeiden Sie die Neucodierung von Audiospuren mit verlustbehafteten Codecs - jedes MP3-Format ist verlustbehaftet, sogar 320 KBit / s.
# EndlichVerwenden Sie
-c:a copy
stattdessen.Bisher hat es einen ziemlich guten Job für mich gemacht. Keine Synchronisierungsprobleme.
Audio-Streams sind nicht an Keyframes gebunden. Genaue Schnitte sind möglich.
Wenn Ihre Audiospur mit einer Abtastrate von 44 kHz aufgenommen wurde, verwenden Sie max. 256 KBit / s
Verwenden Sie verlustbehaftete Codecs nur für die endgültige Codierung Ihres Videos, wenn Sie bestimmte Voraussetzungen erfüllen müssen.
Ich habe von einigen Problemen mit der Audiosynchronisierung gehört, aber es sieht so aus, als ob das Hauptproblem darin bestand, dass es sich um geschütztes Material (!) Handelte.
Ich würde so etwas bevorzugen:
ffmpeg -i input -c:v libx264 -crf 5 -preset faster -profile:v high -level 4.0 -c:a copy output.mp4
quelle