ffmpeg UT-Video 10 bit

  • Hallo zusammen,

    Da Avisynt mit seiner 32 Bit Architektur recht schnell an die 2GB Grenze stößt, will ich Teile meines Videos erst mal in UT-Video "zwischenspeicher" und dann die einzelnen Teile zusammensetzen.
    Mein .avs gibt das Video via dither tools in 16bit aus. Das fertige Produkt soll mit x265 10-Bit encodet werden.

    Soweit mir bekannt unterstützt ffmpeg UT-Video. Doch welche CLI Parameter muss ich angeben um das Ganze in 10bit yuv420 zu speichern ?
    Bisher hab ich das hier gefunden:

    Code
    ffmpeg -i my.avs -vcodec utvideo -pix_fmt yuv420p out.mkv

    ...aber afaik, das ist nur für 8-bit ... kann man yuv420p10 oder sowas angeben ?
    Oder wie sähe die Kommandozeile aus ?
    (Das Ganze soll hier auf meiner Win7 Kiste laufen)

  • Nun wie schon erwähnt werde ich mehrere Teile erstellen das dann in ein Großes File neu gecoded wird.
    In der Vergangenheit hatte ich immer mal wieder Probleme das sich HEVC Teile nicht richtig "mergen" ließen (mkvtools bzw. mp4box)

    Avisynth kann max 2GB Arbeitsspeicher belegen.

    hmmm ... ffmpeg hat jetz 'n Problem festgestellt ...

    2 Mal editiert, zuletzt von may24 (8. Oktober 2016 um 13:17)

  • Zitat

    Avisynth kann max 2GB Arbeitsspeicher belegen.


    Komisch, Avisynth sollte normalerweise eigentlich LARGEADRESSAWARE kompiliert sein und entsprechend auch auf mehr zugreifen können,..

    Code
    alles.avs: Unknown error occurred


    hört sich nach nem Decoding-Problem an -> würde empfehlen mal das Avisynth script zu checken,...

    Zitat

    In der Vergangenheit hatte ich immer mal wieder Probleme das sich HEVC Teile nicht richtig "mergen" ließen (mkvtools bzw. mp4box)


    Was vermutlich daran liegt, dass die encoding Settings die Du verwendest nicht kompatible Files erstellen,...

  • Komisch, Avisynth sollte normalerweise eigentlich LARGEADRESSAWARE kompiliert sein und entsprechend auch auf mehr zugreifen können


    Das LARGEADRESSAWARE Flag wuerde bei Avisynth garnichts ausrichten. Die Client-Anwendung, die avisynth.dll laedt, muss das Linker-Flag gesetzt haben um bis zu 4GB zu adressieren..

  • Okay, hätte eigentlich erwartet, dass bei beiden LARGEADRESSAWARE bei kompilieren aktiviert haben muss.
    ffmpeg hat LARGEADRESSAWARE eigentlich per default aktiviert, soweit ich weiß.
    -> verwirrt, dass bei may24 anscheinend nur 2GB adressiert werden können

  • -> verwirrt, dass bei may24 anscheinend nur 2GB adressiert werden können


    Wir wissen ja nicht mal welches Betriebssystem benutzt wird. Auf einem 64 OS ist die Aussage "Avisynth kann max 2GB Arbeitsspeicher belegen" allerdings falsch.

  • Man sollte vor allem nicht von der falschen Vorstellung ausgehen, AviSynth würde das gesamte Video komplett in den RAM decodieren müssen. Tatsächlich muss AviSynth immer nur wenige Frames im Speicher halten; wie viele, hängt aber stark von der Komplexität des Skriptes ab, v.a. von temporalen Fenstern der verwendeten Filter und der Anzahl von Zwischen-Clips, die am Ende zur Ausgabe kombiniert werden. Die Gesamtlänge des Clips (Frame-Anzahl) ist eher wenig relevant. Wer also viele kleine Schnipsel öffnen muss, um sie im Skript zusammenzufügen, benötigt vielleicht mehr RAM, als wenn eine einzelne Datei am Stück verarbeitet wird.

    Wenn ich mich recht erinnere, protokolliert AVSmeter den Speicherverbrauch eines Skriptes. Schau dir damit erstmal an, wieviel RAM zum Verarbeiten des gesamten Films ohne Zwischenspeicherung wirklich benötigt wird. Wahrscheinlich ist das gar nicht mal so viel, und der Encoder braucht hinterher für sich mehr als die Filterung. Aber noch kennen wir dein Skript nicht (welche Filter hier wohl viele Clips zwischenspeichern oder weit vor und zurück schauen), sowie die Dimensionen deines Films (v.a. die Bildauflösung).

  • Nun wie schon erwänt bin ich auf Windows 7 64bit unterwegs ...
    Meine Kamera liefert 1080i50 und wird via QTGMC in 1080p50 gefiltert. Da kommen einige Clips zusammen und zum guten Schluß noch DitherResize und machmal sogar noch ein dfttest.
    Ja, da wird schon mal der Speicher knapp.

    Zitat

    Was vermutlich daran liegt, dass die encoding Settings die Du verwendest nicht kompatible Files erstellen,...

    Welche Encoder Settings wären den zu beachten damit ich die Teilstücke "ordentlich" mergen kann ?
    Ich verwende folgende CLI für x265:

    Code
    "c:\Programme\Video Tools\avs2pipemod-0.4.2m\avs2pipemod.exe" -rawvideo freitag.avs | "c:\Programme\Video Tools\x265\x265-2.0_58.exe" --preset slower --crf 23 --psy-rd 2.0 --psy-rdoq 10.0 --aq-mode 3 --me star --no-open-gop --no-sao --limit-modes --input-res 1280x720 --input-depth 16 --fps 50 --output freitag.mkv --input -
  • Ja, da wird schon mal der Speicher knapp.

    Gut möglich, dass man das ein wenig optimieren kann, je nach aktueller Struktur des Skriptes; aber da kann ich leider nicht mit Praxiserfahrung dienen. Die Ausgangslage zu kennen wäre aber schon wichtig, daher die Frage nach Ergebnissen mit AVSMeter.
    _

    Welche Encoder Settings wären den zu beachten damit ich die Teilstücke "ordentlich" mergen kann ?

    Sofern alle Clips weitgehend gleiche Optionen verwenden – was auch bedeuten kann, dass sie nicht von verschiedenen x265-Versionen encodiert wurden, zwischen denen sich gerade die Presets geändert haben... kann... – sollten sie sich auch zusammenfügen lassen (dabei sollte "--no-open-gop" auch helfen); vielleicht muss dabei dann aber ein fortlaufender Timecode neu generiert werden.

    Anstatt avs2pipemod könntest du für deinen Fall auch avs4x265 oder avs4x26x verwenden, das spart dir ein paar explizite Parameter in der Kommandozeile. Die notwendigsten Clip-Eigenschaften (Breite, Höhe, Framerate) als Parameter zur Übergabe via Pipe fügen diese Bridges automatisch selber aus den Eigenschaften des AviSynth-Skriptes hinzu, du brauchst dann nur noch die Parameter, welche die Encodierung steuern.

    Code
    avs4x26x -L "c:\Programme\Video Tools\x265\x265-2.0_58.exe" --preset slower --crf 23 --psy-rd 2.0 --psy-rdoq 10.0 --aq-mode 3 --me star --no-open-gop --no-sao --limit-modes --input-depth 16 -o freitag.mkv freitag.avs

    Anscheinend verwendest du eine modifizierte x265-Version? Das Original kann ja kein MKV erzeugen, nur rohes HEVC.

    Für eine Ausgabe mit 10 bit Farbauflösung kann der Parameter "-D 10" noch nötig sein, wenn du nicht gerade eine EXE verwendest, die ohnehin nur die 10-bit-Variante enthält.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!