Audiospuren werden in den .avs Files lautlos

  • Guten Tag,


    ich habe das Problem das ich beim Codieren mit MeGUI einzelne Audiospuren lautlos sind, bzw. mehrere Spuren, wie auch beim Abspielen der File im WMP.
    Real in Adobe Premiere Elements sind die Spuren gleichlang und auch gefüllt.


    Es sind immer nur gewisse Frame Bereiche bei denen gewisse Audiospuren fehlen (gemutet werden)



    Kann mir bitte jemand helfen?? =)



    Grüße Dominator

  • Ich lade die .avi und die .wav File, ist mit Dxtory aufgenommen, also ist alles gleichlang.


    Ich mache aus der ca 3h Aufnahme 9 Folgen, ich ändere nur den Frame Bereich für das Video und bei der 8. und 9. Folge ist nur meine Stimme zu hören, aber in den RAW-Files die ich mir mal in Premiere geöffnet habe, da geht die Gamesound Spur bis zum ende.


    Das Problem muss irgendwie an den .avs Files liegen.




    Kann denn keiner Helfen?

  • Zeig doch mal eine deiner AVS Dateien die du da verwendest und gib uns mal eine Mediainfo vom dem File was du in der AVS Datei angibst.


    Sprich wenn du eine Frameserverdatei in der AVS Datei angibst, dann davon die Mediainfo bitte.

  • Die AVS File habe ich gekürzt um den Fehler / das Problem einzugrenzen.



    Und hier die MediaInfos zu der geladenen Video File:



    ####################################################################################


    Ich habe zudem auch gerade eine File getestet die 5h lang ist und da fehlt auch das Mikrofon, also ne Audiodatei die keinen Sound ausgibt.
    Aber nur immer ab einer gewissen Länge.

  • Habe glaube das Problem herausgefunden, die 2GB Grenze, alle Audiofiles werden ab den 2GB abgeschnitten.
    Darum habe ich bei der 3h Aufnahme durchgehend das Mikro drin, die File ist kleiner 2GB und die Gamesounds sind größer 2GB und bei der 5h Folge beenden die Sounds ihre Ausgabe immer ab den gleichen Frames.


    Nun, nachdem ich den Grund für das Schweigen der Files kenne, konnte ich durch Google ein Fix für das Problem finden.


    Und folgendes kann man machen wenn man dieses Problem hat.

    • NicAudio.dll dowloaden und im Tools Ordner von MeGUI hinterlegen

    • .NicAudio.dll einbinden

      • LoadPlugin("<Pfad zu MeGUI>\MeGUI\tools\NicAudio_206\NicAudio.dll")
    • WavSource("FileName.raw") anpassen

      • RaWavSource("FileName.raw")


    Und schon haben wir das Problem gelöst. =)



    Wünsche euch einen schönen Abend.



    Grüße
    Dominator

  • Wenn du dich mit 16bit begnügen würdest und vllt auch 44,1 khz (48khz wäre für yt jedoch besser) aber bereits 16bit statt 24 bit würde die Dateigröße enorm reduzieren

    Ja gut, könnte auf 16bit machen, aber Speicher ist ja nicht das Problem und ich nehme Audio so auf wie ich es selbst ausgebe.


    Aber durch die genannte .dll kann man ja die .wav Files laden. =)



    Kann man eig die Spuren aus der avi File direkt importieren?

  • lol. Das ist doch bei MeGUI schon enthalten das Plugin. Braucht man also nicht downloaden extra.


    Und RaWavSource ließt Wave64 Dateien ein. Bzw. alle PCM Streams die in solchen Wave64 Dateien gehen würden.


    Und RaWavSource wird wieder einmal falsch angewendet. Denn um wirklich Fehler zu vermeiden, müssen Parameter angegeben werden. Ansonsten kann das schnell mal nach hinten los gehen. Gerade bei Wave64 Formaten tritt dann das Problem auf das Audio nicht vollständig oder Fehlerhaft abgespielt werden.


    Daher gibt man das wie folgt an:

    Code
    File = "Audio.wav"
    RaWavSource(File)
    RaWavSource(File, SampleRate = last.AudioRate, SampleBits = last.AudioBits, Channels = last.AudioChannels)

    Zeile 3 liefert die Kopfdaten, kann aber Audio Fehlerhaft laden.
    Zeile 4 bekommt dann die Kopfdaten und entnimmt dann anhand dessen die richtigen Audiodaten. Und schon läuft das Plugin absolut korrekt.


    Bei 16Bit, Stereo und 44100Hz kannste 6h am Stück aufnehmen. Vorausgesetzt das das jeweilige Programm das das File erzeugt hat die 4 GB Grenze genau nimmt.


    Denn die Grenze zwischen Wave32 und Wave64 liegt bei exakt 4GB und nicht bei 2GB. Ich weiß aber auch das VDub ab 2,5GB Audio in Wave64 schreibt.


    Und wenn man aus einer AVI ein PCM Stream mit AVISource oder WAVSource rauslesen tut, dann wird die 32Bit Variante genommen die auf Wave32 basiert. Und schon wird halt nicht alles geladen.



    ConvertAudioTo24bit.ResampleAudio(48000)

    Why? Du nimmst doch schon so auf. Warum konvertierst du wieder darauf? Macht doch kein Sinn xD Und zumal es ohnehin auf YT auf 16Bit wieder runtergeregelt wird. Kannst dir das also im Skript sparen. Am besten gleich in 16Bit aufnehmen. Dann brauchst du auch kein NicAudio verwenden.


    Und ich frage mich ohnehin warum du das so komisch machst. MeGUI hätte dir die WAVs auch mit NicAudio oder spätestens mit FFMS2 eingelesen. ;D


    Aber ich muss schon bewundern das sich einige Leute da wirklich sehr viel Aufwand mit machen. ^^ Audacity wäre glaub ich drei mal schneller xD


    Kann man eig die Spuren aus der avi File direkt importieren?

    Mit AVISource, was aber auch wieder WAVSource verwenden würde, oder mit FFMS2. Ansonsten nein.

  • Das bringt mir einen Fehler.
    Ich habe das nun so zum laufen bekommen, aber habe nur ein Rauschen wenn ich das so mache wie du es gesagt hast.


    Und NicAudio ist bei mir nicht dabei, warum auch immer, wenn du sagst das es normalerweise dabei ist...




    Mit AVISource, was aber auch wieder WAVSource verwenden würde, oder mit FFMS2. Ansonsten nein.

    Also wenn ich Gamesound und Mikrofon in der AVI File drin habe, dann geht es, das ich beide in eine Variable packe, Lautstärke separat anpasse?
    - Wenn ja, wie genau geht das?




    Zu der Sache mit dem, das er automatisch das richtige wählt, und das 4GB die Grenze ist, alle Wavs-Files die mehr wie 2GB haben, da hatte er Probleme und nichts mehr ausgegeben.

  • Das bringt mir einen Fehler.

    Der da wäre?



    Und NicAudio ist bei mir nicht dabei, warum auch immer, wenn du sagst das es normalerweise dabei ist...

    Ist unter "..\MeGUI\tools\avisynth_plugin\" zu finden.


    Das läuft bei MeGUI unter dem Update AVISynth Plugins. Server Version 5. 31.05.2015


    Musste, wenn es bei dir nicht dabei ist einfach mal updaten ;D



    Also wenn ich Gamesound und Mikrofon in der AVI File drin habe, dann geht es, das ich beide in eine Variable packe, Lautstärke separat anpasse?
    - Wenn ja, wie genau geht das?

    Also wenn du AVISource verwendest, wirst du genau auf die gleichen Folgen treffen die du mit WAVSource auch hast. Da beide auf die gleiche Einlesemethoden zurückgreifen. Sprich beide basieren auf die Wave32 Variante.


    Das Ganze geht aber nur mit der aktuellen AVISynth Version.


    Code
    file = "Video.avi"
    Video = AVISource(file, false).KillAudio()
    Audio_Spur1 = AVISource(file, true, atrack = 1).KillVideo()
    Audio_Spur2 = AVISource(file, true, atrack = 2).KillVideo()



    Mit FFMS2 wird das File indexiert und kostet zusätzlich Zeit. Hast aber die Möglichkeit mehrere Spuren anzusprechen. Ausnahme hier wäre die Dekodierung von MagicYUV.



    Code
    LoadPlugin("D:\MeGUI\tools\ffms\ffms2.dll")
    file = "Video.avi"
    Video = FFVideoSource(file, threads=1)
    Audio_Spur1 = FFAudioSource(file, track = 1)
    Audio_Spur2 = FFAudioSource(file, track = 2)


    Oder kombinierst beide Varianten:


    Code
    LoadPlugin("D:\MeGUI\tools\ffms\ffms2.dll")
    file = "Video.avi"
    Video = AVISource(file, threads=1)
    Audio_Spur1 = FFAudioSource(file, track = 1)
    Audio_Spur2 = FFAudioSource(file, track = 2)



    Zu der Sache mit dem, das er automatisch das richtige wählt, und das 4GB die Grenze ist, alle Wavs-Files die mehr wie 2GB haben, da hatte er Probleme und nichts mehr ausgegeben.

    Das liegt am Container teilweise. Das ist vom Programm zu Programm unterschiedlich ab wann sie dem Container den PCM Streams bestimmte Kopfdaten geben.


    Sind die Kopfdaten auf 64Bit ausgelegt, kann meist nur ein Teil gelesen werden. Der Rest der in 64Bit gespeichert wird kann nicht gelesen werden, da WAVSource und auch AVISource nur die 32Bit Einlesemethoden verwenden.

  • Der da wäre?

    Ich musste die Benennungen raus machen => "SampleRate ="
    Und wenn ich das so mache wie du, das ich die Werte übergebe, dann ist ein lautes unangenehmes Rauschen auf der Audiospur.



    Das mit dem Videos direkt auslesen ist ne gute Sache, dann muss ich die Files nicht immer extra extrahieren, danke =)

  • Ich musste die Benennungen raus machen => "SampleRate ="
    Und wenn ich das so mache wie du, das ich die Werte übergebe, dann ist ein lautes unangenehmes Rauschen auf der Audiospur.

    Soll ja nicht raus. xD Umsonst schreib ich das nicht rein. xD



    Code
    File = "Audio.wav"
    'Kopfdaten erkennen lassen
    Audio = RaWavSource(File)
    'Audio korrekt nach Kopfdaten auslesen lassen.
    RaWavSource(File, SampleRate = Audio.AudioRate, SampleBits = Audio.AudioBits, Channels = Audio.AudioChannels)

    Du kannst ja mit Info() die jeweiligen Daten anzeigen lassen. Sprich Länge, SampleRate, Channels und Bittiefe.


    Sprich hier jetzt sollten die Infos aus Zeile 4 mit der aus der Mediainfo stimmen. Und in Zeile 7 wird mit den Daten das File anhand dieser Infos rausgelesen. Das beugt Fehler vor.


    Habe das auch Probehalber noch mal getestet anhand mehrerer PCM Streams und Wave64 Files. Hat immer geklappt. Wenn ich nur Zeile 4 nutze, haben sich immer wieder mal Fehler gezeigt, weil die Files geladen wurden.

  • Wenn ich mir das so wie du es gesagt hast:



    Dann sind die Audio-Spuren total überteuert.

  • Dürfte an sich gar nicht passieren. Weil sonst lädst du das File schon mit falschen Kopfdaten und verarbeitest es in AVISynth schon total falsch.


    Erzeug doch mal ein Vorschaubild mit den Infos anhand folgenden Skriptes

    Code
    _file = _root + " st0.wav"
    RaWAVSource(_file)
    Info()


    Und dann ein Vorschaubild mit den Infos mit folgenden Skript:

    Code
    _file = _root + " st0.wav"
    _data = RaWAVSource(_file)
    RaWavSource(_file, SampleRate = _data.AudioRate, SampleBits = _data.AudioBits, Channels = _data.AudioChannels)
    Info()

    Und dann haben wir schon mal Handfeste Werte mit den man auch mal arbeiten kann.

  • Folgendes steht in beiden drin, also beim 2. da sind es 7 frames mehr


    ----------------------------------------------------------------------
    _data = RaWAVSource(_file)
    RaWavSource(_file, SampleRate = _data.AudioRate, SampleBits = _data.AudioBits, Channels = _data.AudioChannels)
    ============================================


    Has Video: NO
    Has Audio: YES
    Audio Channels: 2
    Sample Type: Integer 24 bit
    Samples Per Second: 48000
    Audio length: 525665280 samples. 03:02:31.360
    CPU detected: x87 MMX ISSE SSE4.2 SSSE3
    ----------------------------------------------------------------------



    ----------------------------------------------------------------------
    RaWAVSource(_file)
    ============================================


    Has Video: NO
    Has Audio: YES
    Audio Channels: 2
    Sample Type: Integer 24 bit
    Samples Per Second: 48000
    Audio length: 525665287 samples. 03:02:31.360
    CPU detected: x87 MMX ISSE SSE4.2 SSSE3
    ----------------------------------------------------------------------

  • Die exakte Samplelänge ergibt sich immer aus Zeit und Samplerate


    3h = 10800s
    2min = 120s


    10800s + 120s + 31s + 0.360s = 10951,360s


    10951,360s * 48000Hz = 525665280 samples


    Sprich das erstere ist korrekt, das zweite wird falsch geladen. Kannst ja nicht mehr samples auf einmal haben als da ist. Diesbezüglich hatte ich halt auch ein File gehabt da war es ein Unterschied von gut 7000 samples. Sprich Audio war futsch. Erst wo ich SampleRate, Channels und Bittiefe übergeben hatte, hat er es korrekt geladen.


    Ich find das komisch das es bei dir nicht gehen sollte.


    Könntest du mir die entsprechende Audiodatei als Testmaterial zukommen lassen? Weil an sich dürfte das nicht übersteuern, weil du ja eigentlich mit den exakten Kopfdaten das File lädst was als erstes geladen wurde. Das dürfte nicht passieren.

  • Ich lade Sie dir hoch und schicke dir per PN den Link.
    - Mach lieber die Lautstärke runter is unschön laut.


    Wie macht der Fehler sich bemerkbar wenn ich das mit dem 2. mache wo es falsch ist?
    Ich hab ca 4TB Videomaterial das ich endlich durch bekommen sollte, ich lasse es gerade mal so durch rendern.


    Kannst du mir bitte Bescheid geben was das Problem ist?

  • Die Samples sind ja Töne. Diese sind miteinander verbunden um halt zum Beispiel Musik oder ein Satz ausgeben zu lassen.
    Das ergibt sich ja aus Zeit in Sek * SampleRate


    Die SampleRate ist der Taktgeber und gibt an wie weit diese Samples voneinander entfernt sind.
    Bei 48000Hz = 48000 1/s sind das halt 1 / 48000 = 0.00002083‾s = 20,83‾µs (Mikrosekunden)


    Das kann man z.B. bei Audacity sich anschauen wenn man maximal ranzoomen tut.


    Diese 20,83‾µs ist die Zeit von einem Sample zum anderen.


    Je niedriger die SampleRate desto Dumpfer wird der Klang, je höher, desto klarer. Das hängt alleine vom Abstand ab wann ein Sample auftaucht.
    Das ist wie bei den FPS auch. 60 FPS sieht klarer aus als z.B. 15 FPS. Genauso ist das mit dem Klang der Töne auch.


    Die Bittiefe beschreibt die Qualität. Sprich für 16Bit werden 16Bit benötigt um ein Sample zu speichern. Ergo bei 8Bit sind 256 Werte möglich, bei 16Bit schon 65536 Werte. (CD-Album Qualität wie im Laden), 24Bit = 16777216 Werte (Musik-DVD), 32Bit und 32Bit Float = 4294967296 Werte, was schon Hollywood Studioqualität wäre xD


    Je höher also der Wert, desto besser der Klangwert. Je niedriger desto metallischer wird der Klang.
    Das ist wie der Farbraum bei Video.


    Und der Channel beschreibt die Spurenanzahl des jeweiligen Audiotracks. Sollte ja klar sein.


    Daraus ergibt sich für PCM folgende Regel:


    Dateigröße in Byte = Abtastrate * Zeit in Sek * (Bitrate / 8 ) * Spuranzahl



    Das erst mal zur grauen Theorie und den einfachen Fakten des Audios auf dem Rechner.


    CD-Album aus dem Laden, also die neue Single von z.B. den Ärzten, findest du immer mit folgenden Werten: 44100Hz, 16Bit, Stereo


    So werden die gespeichert auf einer Audio-CD. Immer.


    Und mit diesen Werten lassen sich locker 6h unterbringen ohne die 4GB Marke erreicht zu haben. Und das kann dann auch ein WAVSource laden, sofern der Container richtig ist.




    Kannst du mir bitte Bescheid geben was das Problem ist?

    Mache ich. ^^

  • Den Link habe ich dir gesendet. =)


    Hab jetzt schon ein Paar Videos durch und die scheinen ok zu sein. =)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!