Hallo, ich suche Informationen zu AC-3 aka "Dolby Digital", speziell zum übertragungsformat hardwarseitig, also spdif/toslink. Ich bin soweit, auf einem ARM (Freescale)) PCM-Stereo im SPDIF Format auszugeben, funktioniert soweit prächtig. Ich finde aber kaum Informationen im Netz um das ganze weiter aufzubohren. Vielleicht suche ich auch nur falsch, weiß nicht: Es geht erstmal nur darum, eine entsprechende 5.1 Wavedatei auszugeben. Also kein encodieren in Echtzeit oder sowas. Nur die reine Ausgabe einer 5.1 Datei. Meine Hauptfragen: Wird für AC-3 ("Dolby Digital 5.1") die selbe Bitrate wie für PCM verwendet ? Und falls ja, 2.8MHz (44.1kHz PCM) oder 3.1MHz (48kHz PCM)? Reicht es, im Bitstream das entsprechende Bit für das Fomat zu setzen, und stumpf die Daten auszugeben, oder gibt es noch mehr, das beachtet werden muss ? Würde mich über konkrete Infos, Links, und Hinweise sehr freuen! Frank.
Hallo, AC3 ist ein Audio-Codec-Format, Du wirst es also schon in Echtzeit codieren müssen oder eben AC3-Files ausgeben können, die schon codiert sind. Ein Mehrkanal Wave sind ja jedesmal z.B. 16Bit/44,1kHz, da müßtest Du dann ja statt 2x für Stereo 6x ausgeben, also die 3-fache Datenrate über SPDIF schicken. Das geht aber nicht bzw. passt in keine Norm. Gruß aus Berlin Michael
Frank schrieb: > ich suche Informationen zu AC-3 aka "Dolby Digital" Die Spezifikation gibt's kostenlos: http://atsc.org/standard/a522012-digital-audio-compression-ac-3-e-ac-3-standard-12172012/ > Es geht erstmal nur darum, eine entsprechende 5.1 Wavedatei auszugeben. > Also kein encodieren in Echtzeit oder sowas. Ohne Encodieren hast du aber nicht AC-3. > Wird für AC-3 ("Dolby Digital 5.1") die selbe Bitrate wie für PCM > verwendet ? S/PDIF kann eigentlich nur Stereo-Daten übertragen. Deshalb ist so etwas wie AC-3 nötig, um die Daten auf die selbe Bitrate wie Zwei-Kanal-PCM zu komprimieren. > Und falls ja, 2.8MHz (44.1kHz PCM) oder 3.1MHz (48kHz PCM)? Ja.
Ja, es geht nur darum eine schon entsprechend komprimierte Datei auszugeben. Danke für de Link zur Spezifikation, genau sowas hatte gesucht.
Habe mal wieder zu kompliziert gedacht. Das funktioniert "out if the box". Wenn man erfolgreich eine Stereo-Wavdatei ausgeben kann, geht das genauso mit einer 5.1 Wavedatei. Man muss rein garnix ändern ! Zumindest "receiver"/decoder ignoriert z.B. die auxbits völlig und interessiert sich nicht dafür. Ich glaube er erkennt das Format an ein paar "0"-Samples (da bin ich mir aber nicht 100% sicher) Dies nur zur Info..
Allerdings sollte man das Valid-Bit löschen, damit nicht-AC3-Dekoder das Rauschen verhindern. AFAIK hatte ich mal einen Dekoder in den Fingern, der ohne das gar nicht ging, kann mich aber täuschen. Die Formaterkennung läuft über die spezifischen Magics am Anfang der Frames.
Danke für den Tip. Das werde ich dann warscheinlich noch implementieren. Übrigens...ja steinigt mich ruhig...das ganze läuft unter "Arduino" auf einem "Teensy" ;-)
funktioniert..! Und weil das so gut geklappt hat, gleich eine neue Frage: Wie übertrage ich (z.B.) MP2 über SPDIF ? Wenn ich einfach nur "dumM" die Daten kopiere wie bei AC3, geht das ja viel zu schnell.. also muss ich irgendwie synchronisieren und vermutlich "0"-Samples einfügen ?
Kann dein Receiver überhaupt MP2? Normal sind da eigentlich nur PCM und AC3, DTS ist schon nicht immer dabei. Das steht alles im IEC61937, leider ist der $$$. Evtl. findet er sich in dunklen Ecken... Aber egal, schau mal, ob du aus dem Code bezüglich des Headers was rausziehen kannst: https://github.com/jojva/gst-plugins-base/blob/master/gst-libs/gst/audio/gstaudioiec61937.c Nachdem der auch AC3 macht, solltest du dich ja schon auskennen ;) Zur Synchronisierung musst du halt aufpassen, dass die Zeit eines vollen MPEG-Frames (1152 Samples, also 24 bzw. 26.1xms) immer stimmt. Wenn der Frame von den Daten her kürzer ist, muss er mit Nullen aufgefüllt werden.
frank schrieb: > Wie übertrage ich (z.B.) MP2 über SPDIF ? Am einfachsten: gar nicht. Dekodieren und als PCM übertragen. Bei MPEG-1 Audio Layer II ist Komprimierung nicht notwendig, weil die benötigte Bandbreite der Rohdaten nie höher sein kann, als S/PDIF eh schon unterstützt. Deswegen werden die meisten Receiver auch nicht erwarten, dass MP2 über S/PDIF kommt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.