Genauere Anzeige in MPC

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Genauere Anzeige in MPC

    Anzeige
    Hallo Leute.

    Vielleicht nutzen ja einige von euch auch den Media Player Classic, bei mir gehört er jedenfalls zur Standardausstattung. Nun ist es jedoch so, dass mir die Timecode-Anzeige viel zu ungenau ist. Mir wäre entweder eine Millisekunden-Anzeige oder besser noch eine Anzeige der Frames deutlich lieber. Ich habe mal in den Einstellungen geschaut, aber so schnell nichts gefunden. Da ich mit Avisynth schneide wäre das eben sehr nützlich um die Schnitte direkt schön sauber setzen zu können. Vielleicht gibt es ja eine Einstellung die ich übersehen habe oder auch ein Plugin, jedenfalls wäre es ziemlich nett, wenn es da eine Lösung geben würde. ;)
  • Anzeige

    Julien schrieb:

    Soweit ich informiert bin, kann der MPC-HC nicht die genauen Frames anzeigen. Mir fällt aber auch spontan kein anderer normaler Mediaplayer ein, der das kann.


    Irgendwie ist das wirklich ärgerlich. Ich meine, man macht sich schon die Mühe auf NLE zu verzichten und kriegt keine Frameanzeige im Player hin. ^^
    Naja, vielleicht bastel ich mir selbst etwas zusammen. DirectShow Programmierung ist so ziemlich das einfachste, das es gibt. Aber das kostet wieder Zeit, nur damit meine Arbeitsschritte noch einfacher werden. Was soll ich mir noch alles selbst programmieren? xD
  • Chrisblue schrieb:

    Nein, damit kann ich leider nur zu einem bestimmten Timecode springen.


    Doch, da werden die Frames des jetzigen Bildes angezeigt. Pausiere da, wo du hinwillst, rufe "Gehe zu" auf und schau die Frames an. Das ist genau der Punkt :)
    CobraVerde. Spieleklassiker und untergegangene Juwelen schamlos beworben.
    Der beste Post des Forums!
    Empfehlungen: Outcast
    Thief Gold
  • Ja, habe ich dann auch bemerkt. Bringt bei der Avisynth-Vorschau nur leider nicht viel, da dort ganz gerne mal das Spulen und auch Pausieren versagt. ;)
    Aber trotzdem danke. Ich denke aber AvsPmod ist sowieso die bessere Lösung, da habe ich dann alles schön kompakt im Editor und kann auch direkt mit Framezahlen + Live-Vorschau arbeiten.
  • Vor dem AvsPmod Editor hab ich mit der regulären Version gearbeitet davon. Aber seit die Mainsite down ist, gibs nur noch den AvsPmod Editor. Nutze ich Hauptsächlich, da ich auch Skripte schreibe die dann doch schon weitesgehend sehr Komplex werden können.

    Mein letztes Skript sah so aus:
    Spoiler anzeigen

    Quellcode

    1. #Blend.avsi wird geladen um die Funktion Blende zu nutzen
    2. Import("Blend.avsi")
    3. #Video wird geladen und geschnitten (Grobschnitt)
    4. Alles = AVISource("D:\Game.avi").AssumeFPS(30).Trim(169, 1455).ConvertToRGB24()
    5. #Hintergrund wird geladen + Leervideo für Alphakanalbild (Abgerundetes Spielbild) aus Hintergrundbildeigenschaften wird generiert
    6. Video = ImageReader("Background-1366x768.jpg", 0, Alles.framecount, 30, true).Crop(2,0,0,0).Spline16Resize(1920, 1080)
    7. VideoLeer = BlankClip(Video.framecount, Video.width, Video.height, "RGB32", Video.framerate).KillAudio()
    8. #Spiel + Hauptmenü werden auf eine Größe gebracht
    9. faktor = 990
    10. LP_Game = Alles.Crop(134, 16, -136, -178).Trim(196, 1218).Spline16Resize((faktor * Alles.width) / Alles.height, faktor).KillAudio()
    11. LP_Back1 = BlankClip(195, LP_Game.width, LP_Game.height, "RGB24", Alles.framerate).KillAudio()
    12. LP_Back2 = BlankClip(Alles.framecount - 1219, LP_Game.width, LP_Game.height, "RGB24", Alles.framerate).KillAudio()
    13. LP_Menu1 = Alles.Crop(108,0,-110,0).Trim(0,195)
    14. LP_Menu1 = LP_Menu1.Spline16Resize((LP_Game.height * LP_Menu1.width) / LP_Menu1.height, LP_Game.height)
    15. LP_Menu2 = Alles.Crop(108,0,-110,0).Trim(1219, Alles.framecount)
    16. LP_Menu2 = LP_Menu2.Spline16Resize((LP_Game.height * LP_Menu2.width) / LP_Menu2.height, LP_Game.height)
    17. LP1 = Overlay(LP_Back1, LP_Menu1, (LP_Back1.width - LP_Menu1.width) / 2)
    18. LP2 = Overlay(LP_Back2, LP_Menu2, (LP_Back2.width - LP_Menu2.width) / 2)
    19. LP = LP1 ++ LP_Game + LP2
    20. #Spiel HUD wird neu angeordnet
    21. Level = Alles.Crop(137, 656, -1033, -13)
    22. Score = Alles.Crop(247, 656, -840, -13)
    23. Lives = Alles.Crop(440, 656, -730, -13)
    24. Face = Alles.Crop(554, 661, -629, -17).ConvertToRGB32()
    25. Facemask = Face.ColorKeyMask($494949, 30).ColorKeyMask($8F2F2F, 10).ColorKeyMask($B81F1F, 10).ColorKeyMask($A52424, 10).ColorKeyMask($D31414, 10).ColorKeyMask($763838, 10).ShowAlpha(pixel_type="RGB32")
    26. Health = Alles.Crop(657, 656, -493, -13)
    27. Ammo = Alles.Crop(787, 656, -373, -13)
    28. Key1 = Alles.Crop(907, 656, -347, -80)
    29. Key2 = Alles.Crop(907, 720, -347, -16)
    30. Weapon = Alles.Crop(933, 656, -137, -13)
    31. #Spielszene mit Runden Bildausschnitt
    32. Alpha = ImageReader("Alpha.bmp", 0, Alles.framecount, 30, true, pixel_type="RGB32").PointResize(LP.width, LP.height)
    33. Alphamask = ColorKeyMask(Alpha, $FF00FF, 20).ShowAlpha(pixel_type="RGB32")
    34. #Schatten für Spielszene
    35. s1 = Alphamask.Invert(channels="RGB").PointResize(Alpha.width + 20, Alpha.height + 20)
    36. s2 = s1.ShowAlpha(pixel_type="RGB32")
    37. #Spielszene + Schatten kommen aufs Hintergrundbild + Ein- und Ausblendung von einem Alphakanal generiertem Bild
    38. Blende(Video, s1, s2, 0, 1287, 15, 15, ((Video.width - LP.width) / 2)-10, 30, 0.7)
    39. screen1 = Overlay(Alpha, (Video.width - LP.width) / 2, 40, Alphamask, output="RGB32")
    40. Alphamask2 = ResetMask(screen1).ColorKeyMask($00FF00, 20)
    41. screen2 = Overlay(VideoLeer, LP, (Video.width - LP.width) / 2, 40)
    42. Blende(Layer(screen2, Alphamask2), Layer(screen2, Alphamask2).Levels(255,10,255,255,255), 0, 1287, 25, 25, 0, 0, 1.0)
    43. #Spiel HUD wird neu auf dem Hintergrund positioniert
    44. Blende(Level, Level.Levels(255,10,255,255,255), 260, 1218, 4, 3, (((Video.width - LP.width) / 2) - Level.width) / 2, 40, 1.0)
    45. Blende(Score, Score.Levels(255,10,255,255,255), 260, 1218, 4, 3, (((Video.width - LP.width) / 2) - Score.width) / 2 + 44, 940, 1.0)
    46. Blende(Lives, Lives.Levels(255,10,255,255,255), 260, 1218, 4, 3, ((Video.width - Lives.width) - (((Video.width - LP.width) / 2) - Lives.width) / 2), 34, 1.0)
    47. Face = Overlay(Face, ((Video.width - Face.width) - (((Video.width - LP.width) / 2) - Face.width) / 2) - Face.width - 40, 40, Facemask)
    48. Blende(Face, Face.Levels(255,10,255,255,255), 260, 1218, 4, 3, 0, 0, 1.0)
    49. Blende(Health, Health.Levels(255,10,255,255,255), 260, 1218, 4, 3, (Video.width - Health.width) - (((Video.width - LP.width) / 2) - Health.width) / 2, 190, 1.0)
    50. Blende(Weapon, Weapon.Levels(255,10,255,255,255), 260, 1218, 4, 3, (Video.width - Weapon.width) - (((Video.width - LP.width) / 2) - Weapon.width) / 2 - 44, 940, 1.0)
    51. Blende(Ammo, Ammo.Levels(255,10,255,255,255), 260, 1218, 4, 3, (Video.width - Ammo.width) - (((Video.width - LP.width) / 2) - Ammo.width) / 2, 790, 1.0)
    52. Blende(Key1, Key1.Levels(255,10,255,255,255), 260, 1218, 4, 3, (Video.width - Key1.width) - (((Video.width - LP.width) / 2) - Key1.width - Key2.width) / 2, 700, 1.0)
    53. Blende(Key2, Key2.Levels(255,10,255,255,255), 260, 1218, 4, 3, (Video.width - Key2.width) - (((Video.width - LP.width) / 2) - Key1.width + Key2.width) / 2, 700, 1.0)
    54. #Spiel wird wieder vertont
    55. AudioDub(Alles)
    56. #SlowMotion gesetzt
    57. SlowMotion(988, 1017, 15, false)
    58. SlowMotion(357, 387, 15, false)
    59. ConvertToYV12()
    Alles anzeigen


    Ohne den AvsP Editor hätte ich mit Sicherheit noch länger gebraucht. Aber jetzt kann ich dieses Skript z.B. dafür einsetzen mein LP danach zu richten. Brauch ja nur noch die Werte jedesmal austauschen und Positionen neu zu setzen. Der Rest ist ja schon alles fertig ^^
  • @Chrisblue Ich habe in meinem AVS-Script übrigens unters Video eine 16 Pixel-Leiste gepackt in welcher ich u.a. den TimeCode (Frame) jedes Bildes einblende, so kann ich zB. bei Problemen sehr schnell sehen welcher Frame defekt ist um diesen dann auszutauschen oder rauszuschneiden.

    Im fertig gerenderten Video fehlt diese Leiste dann natürlich.

    .
    .

    De-M-oN schrieb:

    Zumindest die Dinge mit dem Croppen der einzelnen HUD Elemente und diese woanders wieder einfügen etc lol.

    Naja, hab ich jetzt auch schon gemacht, gibt in NLEs ja mehrere Spuren, Crop-Filter und dazu speicherbare eigene Presets gibts ja auch, wenn dieses Script "WYSIWYG" erstellt wurde dann würd ich den Hut ziehen, im NLE kann ich nämlich direkt sehen was ich da mache ohne nach jeder Änderung kurz im Mediaplayer die AVS zu öffnen... nehme übrigens an da AviSynth nicht allen möglichen SchnickSchnack macht wird es schneller rendern als jeder NLE.
    ——YouTube————————————————————————————————————————————
    — Endlos-Projekte: Minecraft (SinglePlayer), Craft The World, Banished, Besiege, Sims4
    — ..Abgeschlossen: Leisure Suit Larry 6+7, Dishonored, Surface 2+3, Mirrors Edge, uvm
    — . Kurz- Projekte: The Tower, Fighting Is Magic, Euro Truck Simulator 2, uvm
    — ......Retro-Ecke: Day Of The Tentacle, Flight Of The Amazon Queen, NFS: HP2, uvm
    ————————————————————————————————————————————TbMzockt.de—