AviSynth lädt keine 32bit IEEE Float WAV per WavSource

  • Nachdem ich in letzter Zeit doch mal angefangen habe, mich zwangsweise intensiver mit Windows 7 zu beschäftigen (*Pause für Gelächter ;D *), bin ich auf ein merkwürdiges Problem gestoßen, dass mir unter XP nicht bekannt war:

    Und zwar hatte ich unter XP ein ganz simples AviSynth-Script mit folgendem Inhalt erstellt:

    Code
    Video=AVISource("E:\Bild.avi")
    Audio=WavSource("E:\Ton.wav")
    
    
    AudioDub(Video, Audio)

    ... welches fehlerfrei im MPC-HC abgespielt bzw. in VirtualDub geladen werden konnte. So weit, so unauffällig.

    Beim Versuch das selbe Script allerdings unter einem 32bit Windows 7 zu öffnen bzw. abzuspielen, spuckte AviSynth folgende Fehlermeldung aus:

    [Blockierte Grafik: http://abload.de/img/nowavexauuh.jpg]

    Bei der *.wav handelt es sich um eine 32bit IEEE Float WAV-Datei... und da ich schon einen leisen Verdacht hegte, probierte ich spontan das Laden einer 16bit Integer WAV-File aus -> ohne Probleme! Eine andere IEEE Float WAV wurde aber ebenfalls nicht per WavSource geladen. Also machte ich eine Gegenprobe mit RaWavSource (-> keine Probleme), FFAudioSource (-> keine Probleme) und LWLibavAudioSource (-> keine Probleme). Einzig WavSource wollte die Dateien partout nicht laden...

    Also mal eben: Rückkehr zu XP. Und siehe da: WavSource funktionierte wieder mit 32bit IEEE Float WAV-Dateien.

    Daher jetzt meine Frage(n):

    • Ist das nur bei mir so, oder ist es grundsätzlich nicht möglich IEEE Float WAVs unter Windows 7 zu laden?
    • Unabhängig davon, ob es nur mein oder ein grundsätzliches Problem ist: hat jemand eine Ahnung, woran das liegen könnte? Bei der Benutzung von WavSource werden ja meines Wissens ein passender ACM-Codec für den Inhalt der geladenen WAV-Datei benötigt - aber ich dachte bisher eigentlich immer, dass für derart unkomprimierten Ton kein Drittanbieter-(Co)dec benötigt wird.

    Ich muss allerdings zugeben, dass ich bislang nur die AviSynth 2.6 MT vom 28. September 2013 ausprobiert habe (weil das die Version war, die zuvor schon fehlerfrei unter XP lief). Möglicherweise hängt das Problem ja eher mit einem Bug in dieser Version zusammen(!?)... aber falls NICHT, würde mich wirklich brennend die Ursache interessieren.

    Auf Dauer ist das echt frustrierend: die Dinge, von denen ich NICHT erwartete, dass sie unter Windows 7 funktionieren würden (z.B. ein 20 Jahre alter Scanner... oder die uralte WinTV Radio BT848 Karte), ließen sich problemlos in Betrieb nehmen. Aber über unerwartete Hindernisse wie diese "Kleinigkeit", stolpere ich andauernd :hm: ...

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Bestätigt für Windows 7 SP1 64 bit und AviSynth MT 2.60 alpha 5.

    Für eine IEEE-Float-Tonspur (Codec-ID 3) braucht man schon mehr oder weniger einen "Codec". Der ist aber im Microsoft Wavemapper integriert.

    Nur wird vielleicht AviSynth nicht den Wavemapper benutzen, sondern eingebaute Routinen; ich zweifle also eher, ob das ACM-System da wirklich zum Einsatz kommt. Ob die dann nur allein Integer-PCM auswerten (Codec-ID 1), müsste man mal die AviSynth-Entwickler fragen. Oder eben "einfach" intelligentere Quellfilter verwenden, zumindest bis die Ursache klar ist...

  • Dann ist das vielleicht doch eine Sache von (nicht) installierten ACM-Codecs?! Mal abwarten, was im englischen doom9-Forum dazu kommt.
    __

    P.S.:

    Wie kann man noch mal unter Windows 7 mit Bordmitteln alle installierten ACM-Codecs auflisten? (@ Goldwingfahrer: Ohne zusätzliche Software.)

    In Windows XP ging das im Gerätemanager bei den installierten Audio-Controllern, oder in den erweiterten Einstellungen des Sound-CPL (sogar mit festlegbarer Reihenfolge). Das alles hat Windows 7 irgendwie zu gut versteckt.
    __

    @ Goldwingfahrer:

    Zeig mal bitte auch den Quelltext deines Test-Skriptes. Lädst du die WAV-Datei wirklich mit WavSource()?

    Und falls du GSpot 2.70a noch irgendwo hast, schau mal bitte damit nach, ob du einen ACM-Codec für ID 0x0003 installiert hast (System - List Codecs and Other Filters). Das ist zur Zeit das einzige Programm, das ich finden konnte, welches noch in der Lage ist, eine Liste installierter ACM-Codecs zu erzeugen.

  • Zitat

    Wie kann man noch mal unter Windows 7 mit Bordmitteln alle installierten ACM-Codecs auflisten?


    sollten unter:

    Code
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32


    bzw.

    Code
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32


    Einträge deren Name mit 'mscam' startet.

  • Zitat

    @ Goldwingfahrer:

    Zeig mal bitte auch den Quelltext deines Test-Skriptes. Lädst du die WAV-Datei wirklich mit WavSource()?

    Den Quelltext habe ich ja im Beitrag 2,letztes Screen gezeigt.

    Gspot
    http://666kb.com/i/cna0hbie276pkgdub.gif

    ist vom W7 32-Bit Rechner....vom 64 Bit W7 kann ich erst später nachgucken.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • (...) Einträge deren Name mit 'mscam' startet.


    Du meinst doch bestimmt eher 'msacm' ;) !?

    Ich hab auch schon überall in Windows 7 nach einer VfW-/ACM-Codec Auflistung gesucht - scheint aber das selbe, wie mit der Einstellungsmöglichkeit des MIDI-Ausgabegeräts zu sein: nämlich von Microsoft weg rationalisiert... bzw. nur noch direkt über die Registry oder eben Drittanbieter-Tools erreichbar.

    Ich hatte dann sogar aus Verzweiflung (und aus Mangel einer anderen logischen) Erklärung angefangen, die Registrys von WinXP und Win7 hinsichtlich der 'msacm' Einträge zu vergleichen und alle unter Win7 fehlenden ACM-Codecs nachzurüsten - ohne Erfolg.


    Zumindest zweifle ich jetzt nicht mehr an meinem eigenen Verstand, da ja das Problem nicht nur mich betrifft. Dass es aber bei 'Goldwingfahrer' zu funktionieren scheint, irritiert mich wieder :eek: ...

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Zitat

    Ich glaube auch eher, dass es bei Goldi läuft, weil er es auf Win7 32-bit ausprobiert.


    Ja,win 7 32 Bit...habe ich ja erwähnt...aber auch dass es hier unter W7 64-Bit marschiert.

    Mit W7 64 Bit kann ich später nochmal nachgucken.

    Auf beiden W7 Installationen [32+64 Bit] sind die gleichen Avisynth-Versionen installiert.

    Unter W7 32 Bit siehts so aus wenn ich das Script öffne mit VDub.
    http://666kb.com/i/cna1fgrvmpnsqd7o3.jpg

    abgearbeitet habe ich das Script allerdings noch nicht.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Dann weiß ich bloß nicht, warum bei dir ein ACM-Codec für Format 3 verfügbar ist, bei vielen anderen aber wohl nicht (inkl. mir). Und warum der nicht in der Liste der installierten ACM-Codecs auftaucht.

    Der ffdshow-DirectShow-Audio-Decoder ist jedenfalls für die Konvertierung aller Raw-Audio-Formate aktiviert. Aber das dürfte keine Rolle spielen. ACM hat ja nichts mit DS-Filtern zu tun.

    "Abarbeiten" ist nicht nötig. Wenn das erste Frame geöffnet wurde, ist auch die WAV-Datei lesbar.

  • Ich glaube auch eher, dass es bei Goldi läuft, weil er es auf Win7 32-bit ausprobiert.


    Ein 32bit Windows 7 hab ich ja auch:

    Beim Versuch das selbe Script allerdings unter einem 32bit Windows 7 zu öffnen bzw. abzuspielen, spuckte AviSynth folgende Fehlermeldung aus (...)


    Nur geht's bei mir halt nicht - sehr irritierend :hm: .


    Unter W7 32 Bit siehts so aus wenn ich das Script öffne mit VDub.
    http://666kb.com/i/cna1fgrvmpnsqd7o3.jpg


    Sicher, dass es eine 32bit Float WAV und NICHT eine 32bit Integer WAV ist??? Ich frage nur, weil:

    Wenn ich in VirtualDub unter WinXP dieses Script öffne (und somit den Audio-Output zu 32bit Integer konvertiere):

    Code
    Video=AVISource("E:\Bild.avi")Audio=WavSource("E:\Ton.wav")AudioDub(Video, Audio).ConvertAudioTo32bit

    ... dann liefert mir VirtualDub diese Angabe:

    [Blockierte Grafik: http://abload.de/img/vd1ijuaz.png]

    Nehme ich stattdessen aber dieses Script:

    Code
    Video=AVISource("E:\Bild.avi")Audio=WavSource("E:\Ton.wav")AudioDub(Video, Audio)

    ... ODER dieses Script (sprich: garantiert 32bit Float Ausgabe):

    Code
    Video=AVISource("E:\Bild.avi")Audio=WavSource("E:\Ton.wav")AudioDub(Video, Audio).ConvertAudioToFloat

    ... dann sagt mir VirtualDub:

    [Blockierte Grafik: http://abload.de/img/vd2ydsp6.png]

    Sprich: VirtualDub zeigt mir bei 32bit IEEE Float (warum auch immer) als 'Sample precision' 16bit an.


    Unter Win7 ist es mit diesem Script:

    Code
    Video=AVISource("E:\Bild.avi")
    Audio=FFAudioSource("E:\Ton.wav")
    
    
    AudioDub(Video, Audio).ConvertAudioToFloat

    ... übrigens ganz genauso: VirtualDub zeigt 16bit an!

    Und darum wundert mich, weshalb bei dir '32bit' zu lesen ist :hm: !? Entweder ist das bei dir eine 32bit Integer WAV (damit hab ich unter Win7 keine Probleme), oder dein VirtualDub kann was, das meins nicht kann...

    Kannst du vielleicht mal testweise ConvertAudioToFloat in dein Script hinzufügen und dann noch mal nachsehen, was VirtualDub dazu sagt?


    Ach ja:
    Sowohl unter WinXP als AUCH(!) unter Win7 kann ich KEINE 32bit IEEE Float WAV in VirtualDub abspielen. Unter beiden Windows-Versionen kommt dann die selbe Fehlermeldung:

    Zitat

    No Audio decompressor could be found to decompress the source audio
    (source format tag: 0003)

    Unter Win7 wäre das ja noch nachvollziehbar... aber unter WinXP!? Scheinbar liefern beide Windows-Versionen keinen ACM-Decoder für 32bit IEEE Float - also warum zum Teufel kann ich dann die WAV unter XP per WavSource laden, aber unter Win7 nicht??? Das ergibt doch keinen Sinn :eek: ...

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

    5 Mal editiert, zuletzt von Tom Keller (6. April 2014 um 19:41)

  • Füge ich folgende Zeile in das Script ein
    AudioDub(Video, Audio).ConvertAudioToFloat
    dann zeigt mir auch VDub 16 Bit an.

    ich hatte erstmal das Original wav mit dem TAudioconverter nach 32 Bit codieren lassen.

    Aber nun das File mit Wavelab in 32 Bit Float codieren lassen.
    2.9600 - WaveLab_2014-04-06_23-34-55.png

    Resultat in VDub
    http://666kb.com/i/cna94khsvjar95our.jpg

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Öffne ich das soeben mit Wavelab erstellte 32 Bit Float Wave auch wieder in wavelab...so zeigt er mir
    32 Bit an und nicht 32 Bit Float.

    Öffne ich den demuxten Stream und schaue was Edius 6.08 mir hier zum Audio anzeigt,so sehe ich

    http://666kb.com/i/cna9i7xf6hnis3l77.jpg

    selber bearbeite ich seit 2004 eigentlich nur den Bildanteil in Avisynth.
    Nur grad hier für einen Test habe ich das Audio mal reingenommen.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Also zumindest bei meiner WAV ist WaveLab ziemlich eindeutig in seiner Aussage:

    [Blockierte Grafik: http://abload.de/img/wlkdufq.png]

    Was sagt denn VirtualDub bei dir, wenn du dein Script so hier abänderst:

    Code
    Video=AVISource("C:\Magazin-2\2.9600.avi")
    Audio=WavSource("C:\Magazin-2\2.9600.wav")
    
    
    AudioDub(Video, Audio).ConvertAudioToFloat

    Zeigt es dann bei dir auch als 'Sample precision' -> 16bit an, oder ist das nur bei mir so??? Denn falls es bei dir auch so ist, dann ist deine WAV-Datei tatsächlich "nur" eine 32bit Integer WAV und keine 32bit IEEE Float WAV.


    Seit ich BeHappy für mich (wieder)entdeckt habe, benutze ich tatsächlich AviSynth sehr häufig für Audiokonvertierungen. Da (fast) alle Source-Plugins für die verlustbehaftet komprimierten Audioformate üblicherweise einen unkomprimierten 32bit Gleitkomma Audio-Output liefern, wird es in dem Moment "ungünstig", wo ich das Ergebnis in eine WAV schreiben lasse, die dann in WaveLab weiter bearbeite und das Ergebnis wieder in ein AviSynth-Script laden möchte. Die alternativen Audiosource-Plugins funktionieren natürlich - und die werde ich unter Win7 wohl auch nehmen müssen. Mich wurmt dabei einfach nur, dass ich ums Verrecken die Ursache für das Problem nicht nachvollziehen kann...

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Zitat

    Was sagt denn VirtualDub bei dir, wenn du dein Script so hier abänderst:

    Code:
    Video=AVISource("C:\Magazin-2\2.9600.avi")
    Audio=WavSource("C:\Magazin-2\2.9600.wav")

    AudioDub(Video, Audio).ConvertAudioToFloat

    habe ich doch oben beschrieben.....
    so wirds angezeigt
    http://666kb.com/i/cnaatmown1t6zrcb7.jpg

    Zitat

    Da (fast) alle Source-Plugins für die verlustbehaftet komprimierten Audioformate üblicherweise einen unkomprimierten 32bit Gleitkomma Audio-Output liefern,

    du meinst statt 32 Bit natürlich 24 Bit....das liefern hier die meisten Tools.
    Intern in Wavelab wird natürlich in 32 Bit gearbeitet und dann am Schluss nach 16 Bit gedithert,zumindest ich muss es so machen bei meinen alten Filmen.
    ------------------

    Unter XP hatte ich wavelab 4 und dann geupdatet auf die V.5 und dann V.5.01b......
    unter Win 7 32 Bit lief die V.5.01b nur mit Tricks...aber schlussendlich nie sauber,also musste ich auf die damals neue V.6.11 updaten.
    Mir hätte die alte V.5 vollkommen ausgereicht.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

    Einmal editiert, zuletzt von Goldwingfahrer (7. April 2014 um 01:16)

  • habe ich doch oben beschrieben.....
    so wirds angezeigt
    http://666kb.com/i/cnaatmown1t6zrcb7.jpg


    Sorry - ich hatte den ersten deiner zwei Beiträge glatt übersehen.

    Ich hab jetzt gerade auch nochmal ein paar Minuten Stille als 32bit Float WAV per WaveLab erzeugt -> auch da zeigt VirtualDub bei mir unter XP 'Sample precision' -> 16bit an... und unter Win7 lässt sie sich (genauso wie gehabt) nicht per WavSource laden :hm: .


    du meinst statt 32 Bit natürlich 24 Bit....das liefern hier die meisten Tools.


    Nein, das war ausnahmsweise kein Verschreiber von mir. Hier mal der Output, den FFAudioSource mit diesem Script:

    Code
    Audio=FFAudioSource("D:\DVD-Video\Demux\AudioFile_80.ac3")Video=BlankClip(length=int((audiolengthF(Audio)/audiorate(Audio))*25), fps=25)AudioDub(Video, Audio).Info

    ... bei einer 2-Kanal AC3-Tonspur von einer normalen Kauf-DVD liefert:

    [Blockierte Grafik: http://abload.de/img/ffaudiosource25u76.png]

    Mit LWLibavAudioSource:

    Code
    Audio=LWLibavAudioSource("D:\DVD-Video\Demux\AudioFile_80.ac3")Video=BlankClip(length=int((audiolengthF(Audio)/audiorate(Audio))*25), fps=25)AudioDub(Video, Audio).Info

    ... sieht es hinsichtlich der Bit-Genauigkeit genauso aus:

    [Blockierte Grafik: http://abload.de/img/lwliabavaudiosource6qsea.png]

    Und auch NicAC3Source:

    Code
    Audio=NicAC3Source("D:\DVD-Video\Demux\AudioFile_80.ac3")
    Video=BlankClip(length=int((audiolengthF(Audio)/audiorate(Audio))*25), fps=25)
    
    
    AudioDub(Video, Audio).Info

    ... liefert einen 32bit Float Output:

    [Blockierte Grafik: http://abload.de/img/nicac3source4au13.png]

    Das Gleiche gilt auch für BassAudioSource.

    Alle diese Source-Plugins liefern den decodierten Ton als 32bit Float - wenn ich die also benutze, um ein komprimiertes Audioformat in eine unkomprimierte WAV zu konvertieren, erhalte ich grundsätzlich eine 32bit IEEE Float WAV-Datei.

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Sehr interessanter Hinweis aus dem HydrogenAudio-Forum:

    Laut WAVEFORMATEX-Spezifikation im Microsoft Developer Network haben WAV-Dateien mit mehr als 2 Kanälen oder mehr als 16 bit pro Sample gefälligst die WAVEFORMATEXTENSIBLE-Headerstruktur zu verwenden!

    Zitat

    Formats that support more than two channels or sample sizes of more than 16 bits can be described in a WAVEFORMATEXTENSIBLE structure, which includes the WAVEFORMAT structure.

    Lächerlich... :rolleyes: — Das muss auch so gehen!

  • Zitat

    [Blockierte Grafik: http://forum.gleitz.info/images/misc/quote_icon.png] Zitat von Goldwingfahrerhttp://forum.gleitz.info/showthread.php?p=444028#post444028

    du meinst statt 32 Bit natürlich 24 Bit....das liefern hier die meisten Tools.

    Zitat

    Nein, das war ausnahmsweise kein Verschreiber von mir. Hier mal der Output, den FFAudioSource mit diesem Script:

    ich schrieb ja auch von "hier" und da meinte ich natürlich Edius und Sony Vegas pro.Da ist 24 Bit als Defaulteinst.

    Habs erst kürzlich mal mit FFaudioSource mal probiert und dann festgestellt dass da Audio immer einen Versatz aufweist.
    http://forum.gleitz.info/showthread.php…t=FFaudioSource

    seither lasse ich die Finger davon...und tue mir das nur im Notfall an.

    LigH
    habe ich auch gelesen und das Gleiche auch noch in anderen Links gefunden......mit dem Verstehen hapert es aber.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

Jetzt mitmachen!

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