MKVToolNix - Fehler beim Zusammfügen von Videos

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

  • MKVToolNix - Fehler beim Zusammfügen von Videos

    Anzeige
    Hallo zusammen,

    mein Problem besteht darin, dass mein Gameplay Video und mein Endcard Video nicht zusammengefügt werden können.

    MKVMerge gibt dann Folgendes Problem aus:

    Quellcode

    1. Fehler: Der Track Nummer 0 aus der Datei 'B:\Aufnahmen\Zwischenschritt\Endcard.mkv' kann nicht an den Track Nummer 0 aus der Datei 'B:\Aufnahmen\Zwischenschritt\Test.mkv' angehängt werden. Die Trackparameter stimmen nicht überein.


    Jetzt weiß ich aus dem Fehler das eben etwas nicht zusammen passt und daher es nicht gemischt werden kann. Soweit so gut. Jetzt gilt es den Fehler zu finden. Leider habe ich kein Programm gefunden was mir detaillierte Parameter ausgeben kann.
    Habt ihr vielleicht eine Idee? Ich habe zusätzlich verschiedene Gameplay Videos versucht zusammen zu mischen, dabei kam kein Fehler. Das heißt es liegt an dem Endcard Video.
    Ach zu erwähnen ist vielleicht noch wichtig, dass ich die Videos ohne Audio versucht habe zu mischen. Damit ich da schon eine Fehlerquelle ausschließen konnte. Auch habe ich die Videos mit MeGUI und den identischen Einstellungen behandelt. Daher denke ich befindet sich der Fehler im Script.

    Endcard Script - dieser sieht etwas wirr aus, da ich versucht habe bereits FPS und Bildgrößen an mein Gameplay Script anzupassen, jedoch ohne erfolg
    Spoiler anzeigen

    Quellcode

    1. BlankClip(length=600, width=2048, height=1152, fps=30).Spline64Resize(2048,1152)
    2. ImageSource("B:\Bilder\Endcard.png", start=0, end=last.framecount-1, fps=30).Spline64Resize(2048,1152)
    3. Rahmen=ImageSource("B:\Bilder\Rahmen1.png", 0,0, fps=30, pixel_type="RGB32")
    4. Rahmenmaske=Rahmen.ShowAlpha(pixel_type="RGB32")
    5. v1=AVISource("B:\Aufnahmen\Zwischenschritt\Spacebase\Space#1.avi", audio=false).Spline64Resize(640, 360,0,0,-2,0).Trim(3000,4800).AssumeFPS(30)
    6. v2=AVISource("B:\Aufnahmen\Zwischenschritt\Spacebase\Space#1.avi", audio=false).Spline64Resize(640, 360,0,0,-2,0).Trim(5000,6800).AssumeFPS(30)
    7. Overlay(v1, x = 350, y=200)
    8. Overlay(v2, x=350, y=650)
    9. Overlay(Rahmen, x = 340, y=190, mask=Rahmenmaske)
    10. Overlay(Rahmen, x = 340, y=640, mask=Rahmenmaske)
    11. ConvertToYV12()
    Alles anzeigen


    Gameplay Video Script
    Spoiler anzeigen

    Quellcode

    1. AVISource("B:\Aufnahmen\test.avi", audio=False) .AssumeFPS(30).Spline64Resize(2048,1152)
    2. Audio = WAVSource("B:\Aufnahmen\test.wav")
    3. Bild1 = ImageSource("B:\Bilder\tmqfel.png", pixel_type = "RGB32")
    4. Bild1mask = Bild1.ShowAlpha(pixel_type = "RGB32")
    5. Bild2 = ImageSource("B:\Bilder\facebook.png", pixel_type = "RGB32")
    6. Bild2mask = Bild2.ShowAlpha(pixel_type = "RGB32")
    7. AudioDub(Audio)
    8. Blende(Bild1, Bild1mask, 0, 150, 24, 24,0,(last.height-Bild1.height))
    9. Blende(Bild2, Bild2mask, 300, 500, 30, 30,0,(last.height-Bild1.height))
    10. ConvertToYV12()
    11. Function Blende (clip clip0, clip clip1, clip clip1mask, int sframe, int eframe, int fadeinframe, int fadeoutframe, int x2, int y2) {
    12. clip0 = ApplyRange(clip0, sframe, eframe-fadeoutframe-1, "Animate", sframe, sframe+fadeinframe, "Overlay", clip1, x2, y2, clip1mask, 0.0, clip1, x2, y2, clip1mask, 1.0)
    13. clip0 = ApplyRange(clip0, eframe-fadeoutframe, eframe, "Animate", eframe-fadeoutframe, eframe,"Overlay", clip1, x2, y2, clip1mask, 1.0, clip1, x2, y2, clip1mask, 0.0)
    14. return clip0
    15. }
    Alles anzeigen


    Ich hoffe mir kann jemand helfen.

    Gruß
    Keijin
  • Spoiler anzeigen
    [tabmenu]
    [tab='Test Video']Allgemein
    Vollständiger Name : B:\Aufnahmen\Zwischenschritt\Test.mkv
    Format : Matroska
    Format-Version : Version 2
    Dateigröße : 4,64 MiB
    Dauer : 31s 467ms
    Gesamte Bitrate : 1 236 Kbps
    Kodierendes Programm : x264 r2389 956c8d8
    verwendete Encoder-Bibliothek : Haali Matroska Writer b0

    Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video Codec
    Format-Profil : High@L5.0
    Format-Einstellungen für CABAC : Ja
    Format-Einstellungen für ReFrames : 5 frames
    Codec-ID : V_MPEG4/ISO/AVC
    Dauer : 31s 467ms
    Bitrate : 1 212 Kbps
    Breite : 2 048 Pixel
    Höhe : 1 152 Pixel
    Bildseitenverhältnis : 16:9
    Modus der Bildwiederholungsrate : konstant
    Bildwiederholungsrate : 30,000 FPS
    ColorSpace : YUV
    ChromaSubsampling : 4:2:0
    BitDepth/String : 8 bits
    Scantyp : progressiv
    Bits/(Pixel*Frame) : 0.017
    Stream-Größe : 4,55 MiB (98%)
    verwendete Encoder-Bibliothek : x264 core 142 r2389 956c8d8
    Kodierungseinstellungen : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=300 / keyint_min=30 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=crf / mbtree=1 / crf=21.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
    Sprache : Englisch
    Default : Ja
    Forced : Nein
    [tab='Endcard']Allgemein
    Vollständiger Name : B:\Aufnahmen\Zwischenschritt\Endcard.mkv
    Format : Matroska
    Format-Version : Version 2
    Dateigröße : 1,76 MiB
    Dauer : 20s 0ms
    Gesamte Bitrate : 739 Kbps
    Kodierendes Programm : x264 r2389 956c8d8
    verwendete Encoder-Bibliothek : Haali Matroska Writer b0

    Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video Codec
    Format-Profil : High@L5.0
    Format-Einstellungen für CABAC : Ja
    Format-Einstellungen für ReFrames : 5 frames
    Codec-ID : V_MPEG4/ISO/AVC
    Dauer : 20s 0ms
    Bitrate : 724 Kbps
    Breite : 1 920 Pixel
    Höhe : 1 080 Pixel
    Bildseitenverhältnis : 16:9
    Modus der Bildwiederholungsrate : konstant
    Bildwiederholungsrate : 30,000 FPS
    ColorSpace : YUV
    ChromaSubsampling : 4:2:0
    BitDepth/String : 8 bits
    Scantyp : progressiv
    Bits/(Pixel*Frame) : 0.012
    Stream-Größe : 1,73 MiB (98%)
    verwendete Encoder-Bibliothek : x264 core 142 r2389 956c8d8
    Kodierungseinstellungen : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=300 / keyint_min=30 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=crf / mbtree=1 / crf=21.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
    Sprache : Englisch
    Default : Ja
    Forced : Nein[/tabmenu]


    Da sind die MediaInfo ausgaben,
    das erste was ich sehe das Breite/Höhe unterschiedlich ist. Sollte ja eigentlich über Resize angepasst werden. ?(
    Zudem unterscheiden sich die Bitraten voneinander.

    Danke für den Tip mit dem skalieren. Werde ich berücksichtigen.
    Seht ihr sonst noch etwas?
    Und könnt ihr mir bitte Lösungsansätze geben?
  • CruelDaemon schrieb:

    das mit der Bitrate ist egal, die Variiert (wenn man vernünftig Encodiert) eigentlich immer..

    Die variiert sogar bei VBR 2pass um ein paar kbytes :P

    Ne ne an der Bitrate liegt es wirklich nicht. Sonst könnte man ja kein einziges Video anfügen.
    Aber VBR 2pass 8000 kbit an ein Video mit VBR 2pass 6000 kbit anfügen, würde ebenfalls nicht gehen.

    ... Die Codiereinstellungen, FPS und Auflösung müssen halt identisch sein.
    Aktuelle Projekte/Videos


  • Danke, liegt tatsächlich an der Unterschiedlichen Größe... was mich jedoch massiv verwundert ist, dass ich dem Script gesagt habe
    BlankClip(length=600, width=2048, height=1152, fps=30).Spline64Resize(2048,1152)
    ImageSource("B:\Bilder\Endcard.png", start=0, end=last.framecount-1, fps=30).Spline64Resize(2048,1152)
    das er das ganze vergrößern soll. Oder Funktioniert das ganze nicht mit Bildern?!

    Letztendlich lässt es sich abändern indem ich das Bild einfach größer mache. Trotzdem doof :D
  • doch auch mit bildern funktioniert das - jedenfalls sollte es :P
    warum das in dem fall nicht ging - war das originalbild 1080p? vlt hast du nich das verarbeitete, sondern das rohbild genommen
  • Was passiert wenn du width und height weglässt?

    Denn ein Resize haste ja schon hinten eig.

    Ansonsten mal auf Sagaras warten^^

    Blankclip hab ich nie benutzt.

    ImageSource sieht aber korrekt aus. Wobei ich da eher ImageReader nehmen würde ;) (Parameter bleiben gleich nur ImageReader, statt source nehmen)
    Aktuelle Projekte/Videos


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von De-M-oN ()

  • Keijin schrieb:

    Habe die width und height weggelassen und jetzt vergrößert er auch mein Bild.

    Width und Height = Angabe in welcher Größe der Blankclip erstellt werden soll. Sprich der Blankclip wird in 2048x1152 erstellt worauf du ein 1920x1080 Bild legst - innerhalb des 2048x1152 Blankclips. Das heißt du hattest ein 2048x1152er Bild an den Skalierer geschickt, statt ein 1920er.
    edit: Wobei dann hätte trotzdem 2048 rauskommen müssen. Hmm dann hab ich gerad auch ka. Naja wie auch immer^^ Sagaras dürfte sagen können worans nun genau liegt. Aber Lösung dafür haste ja jetzt.
    Aktuelle Projekte/Videos


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von De-M-oN ()

  • BlankClip(length=600, width=2048, height=1152, fps=30).Spline64Resize(2048,1152)
    ImageSource("B:\Bilder\Endcard.png", start=0, end=last.framecount-1, fps=30).Spline64Resize(2048,1152)


    Hätte ich so nie gemacht. Wozu auch? Wäre mir zu blöd ^^

    Weil so sieht es gleich viel besser aus:

    Quellcode

    1. ImageSource("B:\Bilder\Endcard.png", 0, 600, 30).Spline64Resize(2048,1152)


    Das sieht doch viel kürzer aus und erfüllt den gleichen Zweck.

    Will man ein Bild einer Videolänge anpassen nutzt man einen Fehler von AVISynth aus, das denn so aussieht:

    Quellcode

    1. Video = AVISource("test.avi").AssumeFPS(30,1)
    2. Bild = ImageSource("Test.png",0,0,30)
    3. Overlay(Video, Bild)


    Was passiert? Obwohl Bild keine Länge besitzt wird es über den ganzen Videopart gezogen. Das hängt damit zusammen das für jeden Frame das Overlay angesprochen wird und das Bild keine feste Framepositionen hat. Also wird bei jedem Framedurchgang das Bild auf dem Video erzeugt.

    Will man ein Bild an einen Video anpassen sieht das so aus:

    Quellcode

    1. AVISource("Test.avi").AssumeFPS(30,1)
    2. ImageSource("Test.png",0, last.framecount, last.framerate).Spline16Resize(last.width, last.height)


    So hat das Bild nun die gleiche FPS, die gleiche Frameanzahl, die gleiche Höhe und die gleiche Breite wie das Video zuvor was geladen wurde. Das Bild wird hier zuerst ausgegeben.

    Das ganze hätte man auch so lösen können:

    Quellcode

    1. AVISource("Test.avi").AssumeFPS(30,1)
    2. ImageSource("Test.png",0, 0, last.framerate).Loop(last.framecount).Spline16Resize(last.width, last.height)