Eine mp4-Datei in Avisynth einlesen

  • Hallo,

    ich bin auf der Suche nach einer Möglichkeit, eine mp4-Datei in Avisynth einzulesen, um sie dann weiterverarbeiten zu können. Die mp4-Datei stammt aus einer UHD-Videokamera Sony AX100.

    Mediainfo zeigt für den Video-Stream der Datei an: 89,6 Mbps, 3840*2160 (16:9) bei 25,000 FPS, AVC (High@L5.1)(CABAC / 2 Ref Frames)

    Ich kann die Datei zwar mit mkvtoolnix in mkv ummuxen, aber das ändert an der Problematik nichts.

    DirectShowSource funktioniert nicht, das liefert nur ein graues Rechteck in falscher Größe. Trotz intensiver Nutzung der Suchfunktion konnte ich keine Lösung finden, möglicherweise habe ich auch an den falschen Stellen gesucht.

    LG Gerold

  • Von DirectShowSource wird ja auch immer wieder bei uns abgeraten, solange es noch vermutlich funktionierende Lösungen mit nativen AviSynth-Decodern gibt. Und gerade mit AVC in MP4 sollte es doch nun mittlerweile einen ganz klaren Favoriten geben:

    "L-SMASH Works / L-SMASH Source for AviSynth" (LSMASHSource.dll) bietet zum einen für viele verschiedene Kontainerformate (z.B. MKV, MP4, AVI, MTS) den libavformats-Demultiplexer, um das enthaltene Video über die AviSynth-Funktion LwLibavVideoSource zu laden. Zum Anderen ist außerdem noch der L-SMASH-Demultiplexer vorhanden, der ISO-Media-Kontainer (wie MP4, 3GPP, MOV) auch direkt verarbeitet, hier über die AviSynth-Funktion LSMASHVideoSource.

    Und wenn du schon mal nach MKV umgemultiplext hast, dann gibt es auch noch als Alternative FFMS2 (mittlerweile der offizielle Name, nicht mehr "FFmpegSource2").


  • ich bin auf der Suche nach einer Möglichkeit, eine mp4-Datei in Avisynth einzulesen, um sie dann weiterverarbeiten zu können. Die mp4-Datei stammt aus einer UHD-Videokamera Sony AX100.
    Mediainfo zeigt für den Video-Stream der Datei an: 89,6 Mbps, 3840*2160 (16:9) bei 25,000 FPS, AVC (High@L5.1)(CABAC / 2 Ref Frames)

    Würde mich eventuell auch mal interessieren.
    Bis jetzt habe ich unter AviSynth wegen den Start über VirtDub nur als .avi ausgegeben, war bisher auch nur SD-Material.
    Also wenn es andere Programme für den Aufrufe der Sripte als unter VirtDub oder dem Procoder gibt ... ?.

    Hier handelt es sich um 3840x2160, wie läuft denn da die Abarbeitung unter Avisynth ab?
    Ich kann mir nicht vorstellen, dass dieses Format am Ende oder zwischendurch? als .avi gespeichert wird.
    Ist da ein ordentliches Downscaling drin, wenn ja: für welchen Zweck zur Weiterverarbeitung?

    Ich habe bei Material über 1920x1080 eine Bildungslücke!

    Gruß
    Gerd

  • Warum sollte die Verarbeitung von Video vollkommen anders laufen, nur weil die Auflösung höher ist? Abgesehen von der längeren Rechenzeit ist ja nichts grundsätzlich anders damit.

    Gut, kommt drauf an, was man mit welchem Teil der Verarbeitungskette vorhat. Sicher ist es grundsätzlich auch möglich, UHD-Video zwischendurch als verlustlos komprimiertes AVI auszugeben; aber warum sollte man das überhaupt tun (selbst in geringeren Auflösungen), wenn man in AviSynth sämtliche Filterung und sämtlichen Schnitt auch rein logisch durchführen kann, ohne Zwischendatei?

    AviSynth ist ein Frameserver, der von vielen Encodern unterstützt wird. VirtualDub braucht man da höchstens noch, um dessen Ausgabe an einen VfW-Codec weiterzuleiten, falls man ein AVI erzeugen will. Und seit VirtualDub Version 1.10 muss man nicht mal nur noch AVIs erzeugen, man kann auch externe Encoder und Multiplexer einbinden, um damit auch Zielformate auszugeben, die VirtualDub allein gar nicht ausgeben könnte (das kann ja nur AVIs).

    Aber wenn man ohnehin keine AVIs haben will, sondern z.B. AVC und AAC in MP4, dann muss man ja auch nicht unbedingt VirtualDub benutzen (sondern z.B. StaxRip oder MeGUI ...).

    Grundsätzlich gilt: Je exakter wir wissen, was du hast, was du erhalten willst, und was zwischendurch mit dem Material noch passieren soll, umso besser können wir empfehlen, womit und wie das passieren kann.

  • Hier handelt es sich um 3840x2160, wie läuft denn da die Abarbeitung unter Avisynth ab?
    Ich kann mir nicht vorstellen, dass dieses Format am Ende oder zwischendurch? als .avi gespeichert wird.
    Ist da ein ordentliches Downscaling drin, wenn ja: für welchen Zweck zur Weiterverarbeitung?


    Hallo Gerd,

    ich hoffe, dass ich die Frage richtig verstanden habe. Wenn das Video richtig von Avisynth erkannt wurde, kann ich natürlich alle Operationen darauf anwenden, die Avisynth zur Verfügung hat.
    Will ich verlustlos zwischenspeichern, kann ich mit virtualdub mit einem verlustlosen Codec als avi abspeichern. Ich kann aber aus dem avs-Script mit megui auch ein mkv-Video machen oder ...
    In meinem Fall geht es darum auszuprobieren, wie man aus einem Paar von Videos aus zwei synchronen UHD-Kameras Material für 3D-UHD-Fernseher erstellen kann, das eine höhere Auflösung als Full-HD hat.

    Ein Downscaling ist natürlich auch möglich, aber in meinem Fall gar nicht gewünscht.

    LG Gerold

  • ... aus einem Paar von Videos aus zwei synchronen UHD-Kameras Material für 3D-UHD-Fernseher erstellen kann ...

    :eek: Wer hat denn so was übrig?

    Optimal wäre 3D natürlich als MVC, also separate Videostreams (wobei AviSynth nur eingeschränkt helfen könnte, es kann ja immer nur einen Videostream ausgeben). Bei dir klingt es, als ob du erst mal SBS testen willst?

  • Hallo,

    ja, das ist ein interessantes Projekt. Bei Full-HD ist es kein Problem. Will man 3D in Full-HD zuspielen, so geht das per HDMI 1.4 und Framepacking, letztendlich müsste man also eine BluRay erstellen. Das ganze geht aber auch bei ganz wenigen 3D-Fernsehern mit dem m2ts-Format, wie es auch aus manchen 3D-Kameras kommt, mit zwei Videoströmen avc und mvc zusammengemuxt vom USB-Stick.
    Avisynth hilft hier insofern, als man das 3D-Video in Full-SBS durch eine avs-Datei beschreibt und dann mit FRIMEncode und tsMuxeR den Rest erledigt. Also wie gesagt, in Full-HD kein Problem.

    Für UHD gibt es keine 3D-Norm. Eine Zuspielung des Fernsehers mit Framepacking in UHD ist nicht möglich, das das Format nur in Full-HD spezifiziert sind. Und soweit ich ausprobiert habe, versagen auch FRIMEncode und tsMuxeR ihre Dienste, da auch sie nur für die Full-HD Situation spezifiziert sind.

    Das einzige, was also für UHD in größerer als Full-HD-Auflösung möglich zu sein scheint, sind die halben Formate halb-SBS und halb-OU.

    Das ganze geht nur über USB-Sticks, und hier muss der Fernseher nicht nur den Stick als solchen erkennen, sondern auch das entsprechende Medienformat.
    Durch gezielte Suche habe ich ein UHD-Gerät gefunden, das sowohl m2ts-Dateien in Full-HD abspielen kann, als auch mpo-Dateien, letztere sogar in UHD.

Jetzt mitmachen!

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