H.264 60 fps -> M2V 25 fps ?

  • MoD, Sorry wegen dem Threadtitel, ich habe das Thema leider zu Voreilig abgeschickt,
    bitte einmal anpassen... Vielen Dank

    Salve,

    ich habe ein kleines Problem, wo ich einfach nicht mehr weiter weiß!
    Ich habe mich gestern zum ersten mal an AviSynth gedraut, bin also
    noch ein Newbie in dem Bereich... seit also nicht so hart zu mir :zunge:.

    Folgendes Szenario: Ich habe ein MPEG-Datenstrom als TS vorliegen, 720p
    mit einer Framerate von 59.940060fps!

    [Blockierte Grafik: http://img5.imagebanana.com/img/e2uo3e96/thumb/tt.bmp.png]

    Obwohl die Framerate doppelt so gross ist wie bei NTSC-Standard,
    wird er in ganz normaler Geschwindigkeit wiedergegeben.

    So bin ich vorgegangen: Ich habe mich dem HD2DVD-TUT hier im Forum bedient
    und zu dem mein AviSynth um ein Script mit Delogo kombiniert,
    welches ich auch hier aus dem Forum entnommen habe!

    Ich habe mich dabei strickt an den Vorgaben im Tut gehalten und
    in der Vorschau vom HC Encoder hat auch alles gepasst... :ja:

    Achja, ich habe zuvor mit DGAVCdec natürlich die schwarzen Balken ringsherum gecropped!

    hier das Script:

    Code
    avcsource("D:\Maniac Cop 2\Maniac Cop 2 (1990).dga")assumeFPS(25.000)Lanczos4resize(720,576)Import("D:\Maniac Cop 2\DeLogo_filter.avs")DeLogo(120,60,"RU","HD",Cmix=0.0,Lmix=0.0)

    ... also alles einmal fix encoden (6Std :cool:)


    Endresultat: Der Film war doppelt so lang, ca 3Std und 20min, es wurde also alles in
    Zeitlupe wiedergegeben, demnach war natürlich auch die Bildqualität miserabel :ani_lol:.

    Mir kam das mit der Framerate gleich komisch vor, aber ich bin davon ausgegangen;
    wenn es anders wär, würde es schon im Tut stehen... Pustekuchen xD

    -----------------------------------------

    Mich würde jetzt interessieren; um was ich das Script erweitern muss, damit die Geschwindigkeit beibehalten wird,
    dabei sollten ambesten so wenig Frames wie möglich verloren gehen! Zudem wäre ein Schärfefilter vllt ganz interessant,
    oder was ihr vielleicht noch allgemein anders machen würdet :ja:.

    Hoffe das ihr mir weiterhelfen könnt, ich weiß erstmal leider kein Rat mehr!


    Gruss
    2184

  • Bei einer Quelle mit ca. 60fps sagst Du doch explizit in Deinem Skript, dass Avisynth diese als 25fps annehmen soll, also die Abspielgeschwindigkeit mehr als halbieren soll,...
    -> das assumeFPS(25.000) macht gar keinen Sinn, schnell und vermutlich recht unschön würde es mit ChangeFPS(25) gehen, ansonsten findest Du sicher hier oder im englischen Forum auch Threads in denen bessere Methoden verwendet werden.

    ddddd als Threadtitel ?!?!

    Cu Selur

  • Ich dachte damit wird er es in 25fps ausgeben und nicht interpretieren,
    wie auch schon erwähnt bin ich totaler Newbie in dem Bereich!
    Bisher habe ich leider nichts gefunden bzw. nichts was mir die Sache so
    verdeutlich, dass ich es in dem Script ergänzen könnte! Ansonsten hätte ich
    mir die Mühe mit dem Beitrag erspart!

    Das mit dem Threadtitel habe ich ja oben erwähnt ;)

    mfg 2184

  • Okay.... eine re-interlacete NTSC-DVD habe ich jetzt hinbekommen,
    wenn ich es aber nach Pal machen will - sieht es zwar super aus,
    aber sobald ich die Test-Projektdateien gemuxt habe und diese
    mit Power-DVD abspiele - habe ich diese "Kämme" im Bild !

    Leider wollte ich nach Möglichkeit schon gerne eine PAL-DVD erstellen,
    aber hier muss ich jetzt resignieren.

    Falls es einer brauchen kann oder noch nen Tip hat,
    hier das Script welches ich benutzt habe (abgeleitet von hier: klick(s. 2.2.2)):

    Code
    avcsource("D:\Maniac Cop 2\Maniac Cop 2 (1990).dga")
    [COLOR='Red']ConvertFPS(59.940060).SeparateFields().SelectEvery(4,0,3).Weave()[/COLOR]
    assumeFPS(29.97)
    Lanczos4resize(720,480)
    Import("D:\Maniac Cop 2\DeLogo_filter.avs")
    DeLogo(120,60,"RU","HD",Cmix=0.0,Lmix=0.0)

    mfg

  • Also das Skript, was du hier zeigst, erzeugt die re-interlacete NTSC-DVD. Und die hat selbstverständlich die Interlacing-Kämme, klar. Ist ja interlacet.

    Was mir noch nicht ganz klar ist: Wenn deine Quelle 59,94... - bzw. 60000/1001 fps hat, warum dann noch dieses überflüssige ConvertFPS auf die selbe Framerate, die es schon hat?

    Und die halbe Framerate hat exakt 30000/1001 fps, also: AssumeFPS(30000, 1001). Oder: AssumeFPS("ntsc_video").

  • Was mir noch nicht ganz klar ist: Wenn deine Quelle 59,94... - bzw. 60000/1001 fps hat, warum dann noch dieses überflüssige ConvertFPS auf die selbe Framerate, die es schon hat?


    Gute Frage :ani_lol: ...da habe ich wohl nicht lange genug nachgegrübelt.

    Ich habe das jetzt alles mal so angepasst wie du es beschrieben hast,
    funktioniert auch alles einwandfrei!

    Dann hier mal das hoffentlich soweit vollendete Script:

    Code
    avcsource("D:\Maniac Cop 2\Maniac Cop 2 (1990).dga")
    [COLOR='Red']SeparateFields().SelectEvery(4,0,3).Weave()
    AssumeFPS("ntsc_video")[/COLOR]
    Lanczos4resize(720,480)
    Import("D:\Maniac Cop 2\DeLogo_filter.avs")
    DeLogo(120,60,"RU","HD",Cmix=0.0,Lmix=0.0)

    THX

  • Das dürfte auch völlig in die Hose gehen: Niemals Interlaced-Material ohne besondere Vorkehrungen in der Höhe verändern!

    Also erst mit ...Weave() interlacen und danach mit Lanczos4Resize() auf 480 Zeilen stauchen, bringt das Interlacing komplett durcheinander. Dann doch eher anders herum.

  • Dann mal einer neuer Versuch, diesmal habe ich es etwas hier aus dem Thread abgeleitet:

    Code
    avcsource("D:\Maniac Cop 2\Maniac Cop 2 (1990).dga")
    [COLOR='Red']bicubicresize(720,480)
    assumetff().separatefields().selectevery(4,0,3).weave()  [/COLOR]
    Import("D:\Maniac Cop 2\DeLogo_filter.avs")
    DeLogo(120,60,"RU","HD",Cmix=0.0,Lmix=0.0)


    Ich hoffe ich habe es so richtig gemacht, funktionieren tuts, also HC encoder nimmt es an
    und das Resutat ist auch abspielbar! Die Qualität ist auch einbisschen besser geworden durch die anderen Änderungen :).

    Edit: AssumeFPS("ntsc_video") konnte ich nicht einbauen, weil HC Encoder es sonst nicht annhemen wollte!
    ...er wandelt es aber auch so in der richtigen Framerate und Geschwindigkeit um

    2 Mal editiert, zuletzt von 2184 (21. November 2009 um 20:33)

  • Es ist sehr Sinnvoll, bevor man mit der ganzen Videowandelei anfängt,
    sich einmal anzuschauen, ob das Quellvideo wirklich 60 einzigartige Bilder pro Sekunde hat,
    oder ob es nicht etwas jedes zweite Bild gedoppelt hat (30fps), oder gar einen 2:3 Pulldown hat (24fps).

    Erst mit diesem Wissen kann man dann gescheit eine Wandlung vornehmen.
    Außerdem kann man, wenn man dann entsprechend vorgeht, die Kompression des Videos wesentlich effektiver gestalten als auch die ganz Rechenzeit erheblich drücken.

    Also wie immer die Forderung:
    Bitte ein unbearbeitetes Sample-Video bereitstellen, bevor wir hier weiter oraklen.

  • Ich habe es hin bekommen nach Pal und das ohne Kämme,
    auch wenn ich alles zusammen muxxe und es mit Power-DVD wiedergebe!
    Das Script ist bestimmt immer noch falsch, aber ich freue mich gerade tierisch,
    dass es überhaupt schonmal geklappt hat :ani_lol: ...

    hier das Sript:

    Code
    avcsource("D:\Maniac Cop 2\Maniac Cop 2 (1990).dga")
    bicubicresize(720,576)
    selectevery(5,0,4)  
    assumefps(25.000) 
    Import("D:\Maniac Cop 2\DeLogo_filter.avs")
    DeLogo(120,60,"RU","HD",Cmix=0.0,Lmix=0.0)
  • Zitat

    Das funktioniert so nicht!
    Das führt im schlimmsten Falle zu 12fps, weil Du nicht das richtige Offset erwischst.

    Das ich das ein eventuelles Offset beachten muss, ist mir schon klar aber es funktioniert sowohl bei 2:3:2:3.. als auch bei 3:2:3:2....

  • aber bei 2:3 pulldown hast Du 5 mögliche offsets!
    selectevery 5,0,4 macht daraus:

    Original -> selctevery(5,0,4)
    AABBBCCDDDEE -> A B C D E (24fps)
    ABBBCCDDDEEF -> A C C E E (12fps)
    BBBCCDDDEEFF -> B C D E F (24fps)
    BBCCDDDEEFFF -> B D D F F (12fps)
    BCCDDDEEFFFG -> B D D F F (12fps)

    so, jetzt Du.

    Es gibt nicht umsonst die automatischen dezimatoren!

  • Import("D:\Maniac Cop 2\DeLogo_filter.avs")
    avcsource("D:\Maniac Cop 2\Maniac Cop 2 (1990).dga")
    bicubicresize(720,576)
    SelectEven()
    TDecimate()
    assumefps(25.000) #Du musst hierbei das Audio separat von um den Faktor (25/(24/1.001)) = 1,040626... beschleunigen
    DeLogo(120,60,"RU","HD",Cmix=0.0,Lmix=0.0)

  • Perfekt, Vielen Dank scharfis_brain und auch allen anderen :)!
    Bestes Ergebnis bisher, keine Kämme und auch die Szenenübergänge verlaufen
    sauber, ich werde mich aber mal in die Hintergründe einbisschen einarbeiten,
    weil bisher habe ich höchstens den Ansatz verstanden, zudem will ich noch einpaar
    Filter aus-checken xD

    Greetz 2184

Jetzt mitmachen!

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