Audiospuren werden in den .avs Files lautlos

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

  • Audiospuren werden in den .avs Files lautlos

    Anzeige
    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?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von DominatorLP ()

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

    Spoiler anzeigen
    _lvls = 1.1
    _aga = 0.8
    _ava = 5.25


    _v_start = 290913
    _v_ende = 328486


    _start = 28
    _ende = 328515



    _v = AVISource("A:\Aufnahme\MC\v.avi", audio=false).Levels(0, _lvls, 255, 0, 255)


    _aga = WAVSource("A:\Aufnahme\MC\v st0.wav").ConvertAudioTo24bit.ResampleAudio(48000).Amplify(_aga)
    _ava = WAVSource("A:\Aufnahme\MC\v st3.wav").ConvertAudioTo24bit.ResampleAudio(48000).Amplify(_ava)
    _ava = MonoToStereo(_ava, _ava)


    _a = MixAudio(_aga, _ava)
    _v = AudioDub(_v, _a)
    _v = _v.trim(_start *2, _ende *2)



    _v.trim(_v_start *2, _v_ende *2)


    Und hier die MediaInfos zu der geladenen Video File:

    Spoiler anzeigen
    Allgemein
    Vollständiger Name : A:\Aufnahme\MC\v.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format-Profil : OpenDML
    Dateigröße : 497 GiB
    Dauer : 3h 2min
    Gesamte Bitrate : 390 Mbps
    Originale Source-Form/Vertrieb durch : Video:Lagarith Lossless Codec Audio0:Lautsprecher (Realtek High Definition Audio) Audio1:Mikrofon (Saffire 6 USB 2.0)
    Kodierendes Programm : DxtoryCore ver2.0.0.133


    Video
    ID : 0
    Format : Lagarith
    Codec-ID : LAGS
    Dauer : 3h 2min
    Bitrate : 387 Mbps
    Breite : 1 920 Pixel
    Höhe : 1 080 Pixel
    Bildseitenverhältnis : 16:9
    Bildwiederholungsrate : 60,000 FPS
    ColorSpace : YUV
    ChromaSubsampling/String : 4:2:0
    BitDepth/String : 8 bits
    Bits/(Pixel*Frame) : 3.107
    Stream-Größe : 493 GiB (99%)


    Audio #1
    ID : 1
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 3h 2min
    Bitraten-Modus : konstant
    Bitrate : 2 304 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 48,0 KHz
    BitDepth/String : 24 bits
    Stream-Größe : 2,94 GiB (1%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 100 ms (6,00 Video-Frames)


    Audio #2
    ID : 2
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 3h 2min
    Bitraten-Modus : konstant
    Bitrate : 1 152 Kbps
    Kanäle : 1 Kanal
    Samplingrate : 48,0 KHz
    BitDepth/String : 24 bits
    Stream-Größe : 1,47 GiB (0%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 100 ms (6,00 Video-Frames)


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

    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.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DominatorLP ()

  • 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.
    1. NicAudio.dll dowloaden und im Tools Ordner von MeGUI hinterlegen
    2. .NicAudio.dll einbinden
      • LoadPlugin("<Pfad zu MeGUI>\MeGUI\tools\NicAudio_206\NicAudio.dll")
    3. 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

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von DominatorLP ()

  • De-M-oN schrieb:

    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?
  • DominatorLP schrieb:

    Und folgendes kann man machen wenn man dieses Problem hat.

    NicAudio.dll dowloaden und im Tools Ordner von MeGUI hinterlegen


    nicaudio.codeplex.com/

    .NicAudio.dll einbinden


    LoadPlugin("<Pfad zu MeGUI>\MeGUI\tools\NicAudio_206\NicAudio.dll")

    WavSource("FileName.raw") anpassen


    RaWavSource("FileName.raw")
    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:

    Quellcode

    1. File = "Audio.wav"
    2. RaWavSource(File)
    3. 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.


    DominatorLP schrieb:

    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

    DominatorLP schrieb:

    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.
  • Sagaras schrieb:

    Daher gibt man das wie folgt an:
    Quellcode
    Quellcode bearbeiten
    [*]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.
    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...



    Sagaras schrieb:

    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.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DominatorLP ()

  • DominatorLP schrieb:

    Das bringt mir einen Fehler.
    Der da wäre?


    DominatorLP schrieb:

    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


    DominatorLP schrieb:

    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.

    Quellcode

    1. file = "Video.avi"
    2. Video = AVISource(file, false).KillAudio()
    3. Audio_Spur1 = AVISource(file, true, atrack = 1).KillVideo()
    4. 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.


    Quellcode

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


    Oder kombinierst beide Varianten:

    Quellcode

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



    DominatorLP schrieb:

    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.
  • DominatorLP schrieb:

    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


    Quellcode

    1. File = "Audio.wav"
    2. 'Kopfdaten erkennen lassen
    3. Audio = RaWavSource(File)
    4. 'Audio korrekt nach Kopfdaten auslesen lassen.
    5. 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.
  • 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

    Quellcode

    1. _file = _root + " st0.wav"
    2. RaWAVSource(_file)
    3. Info()


    Und dann ein Vorschaubild mit den Infos mit folgenden Skript:

    Quellcode

    1. _file = _root + " st0.wav"
    2. _data = RaWAVSource(_file)
    3. RaWavSource(_file, SampleRate = _data.AudioRate, SampleBits = _data.AudioBits, Channels = _data.AudioChannels)
    4. 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.
  • 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.



    DominatorLP schrieb:

    Kannst du mir bitte Bescheid geben was das Problem ist?
    Mache ich. ^^