MP3 geht nicht

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
udg
Beiträge: 568
Registriert: 20.06.2013 23:27

Re: MP3 geht nicht

Beitrag von udg »

Stuhli hat geschrieben:Bin nur enttäuscht, dass ich manche MP3s erst umwandeln muss. LAME und Co sind zwar drauf, aber ich muss trotzdem nen Konverter nehmen.... ich verstehe es einfach nicht.
Aus diesem Grund würde ich gern mal deine beiden mp3 testen wollen.
Mache selber Musik und hab auch so damit zu tun. Würde mich mal interessieren. Zur Not kannst mir die Links ja mal per PN schicken.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: MP3 geht nicht

Beitrag von ts-soft »

PureBasic.chm hat geschrieben:Hinweis: Auf einigen OS können auch Musik-Dateien mit dieser Bibliothek abgespielt werden. Aber dies wird nicht offiziell unterstützt und ist ggf. auch fehlerhaft. Nutzen Sie besser die Sound Bibliothek dafür.
Entweder eine MP3 Lib eines Drittherstellers nutzen oder aber einen FeatureRequest im englischem Forum.

So ist das einfach nur unnötiges Gejammere.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: MP3 geht nicht

Beitrag von DarkSoul »

Ich wollte die MP3's gerade mit deinem Code testen und ggf. mit nem HEX-Editor sezieren, aber die DL-Links sind kaputt. :wink:

Ob LAME oder was anderes, sollte egal sein. Ein MP3-Encoder ist nur dann ein MP3-Encoder, wenn eine gültige MP3 heraus kommt. Sollte also egal sein, wie die MP3 erstellt worden ist. Manche erzeugen besser klingende MP3's als andere, weil sie die Töne, die übernommen werden, mal besser bzw. weniger besser aussuchen. Aber dennoch sind das alles MP3's.

LoadMovie() geht über die windows-eigenen Decoder.

Windows spielt normalerweise alle MP3's.

Fehlerquellen auf deinem Rechner:
- Windows XP ode älter
- Windows-eigener Decoder wurde von einer anderen Software überschrieben
- Eines von diesen ach-so-tollen Codec-Packs wurde installiert (Nicht machen!! Fehlende Codecs gezielt einzeln installieren)

Fehlerquellen in den MP3:
- CBR vs. VBR vs. ABR
- Es gibt 3 verschiedene Arten MP3 (1, 2 und 2.5) - speziell die letzte fehlt manchen Decodern aber dieses ist für Musik ohnehin ungeeignet
- Es gibt auch MP2... Je nachdem, von welchem Hinterhof die Dateien stammen, trifft man öfters auch diese
- Völlig anderer Codec und ein Schlaumeier hat einfach die Endung .MP3 gesetzt
- Korrupte MP3's (kann eigentlich auch nur bei Filesharing passieren, wo sie durch zig Hände gehen und jeder mal bisschen bastelt)
- MP3s wurde verlustfrei geschnitten oder zusammengefügt, wobei Fehler passiert sind
- Falsch sitzender ID3v2-Tag (häufige Fehlerquelle, dann stimmt der Startpunkt des MP3-Streams nicht)
- Headerinformationen passen nicht zum Stream (z.B. Stream ist Dual-Mono, aber im Header steht Joint-Stereo)
- Ungewöhnlicher Container gewählt (z.B. RIFF Wave oder MPEG-TS)
- Fehlplatzierer XING-Header (z.B. Pseudo-VBR)
- Starkes DC-Offset im Tonsignal. Manche Soundkarten kommen wegen der Ausgangs-Elkos damit nicht klar.
- MP3Gain mit viel zu hoher oder niedriger Gain-Einstellung angewendet (Da gibt es Grenzen)
- Die MP3 war die Tonspur von einem Video und beim Demux-Vorgang (Aufteilung in Bild und Ton in einzelne Dateien) ist was schief gelaufen.

Mit kleinen Fehlern sollte ein MP3-Decoder zurecht kommen. Dann gibt es halt hier und da Tonstörungen (meistens in Form von lauten "Knutschgeräuschen" oder roboterartigen Klängen)

Wenn du ne Mediaplayer-Software mit LoadMovie() bauen willst, kann diese nicht mehr als Windows Media Player. Nimm lieber eine gute Lib mit möglichst vielem integrierten Decodern dafür. Bestes Beispiel ist VLC, welcher jede noch so fehlerhafte Schrott-MP3 irgendwie erkennt und korrekt abspielt - so gut es halt geht.

Da du die Dateien anscheinend durch Re-Encoden "reinwaschen" kannst, wird es an den Dateien liegen. Toll ist die Lösung nicht, da das Neucodieren mit Qualitätsverlusten verbunden ist.
Bild
Antworten