Web Audio Codec Leitfaden
Selbst bescheidene Qualität und hochauflösender Stereoton können eine beträchtliche Menge an Speicherplatz beanspruchen. Für Webentwickler ist der noch größere Punkt die erforderliche Netzwerkbandbreite, um Audio zu übertragen, sei es für Streaming oder zum Herunterladen zur Nutzung während des Spiels. Die Verarbeitung von Audiodaten zum Kodieren und Dekodieren wird von einem Audio-Codec (COder/DECoder) durchgeführt. In diesem Artikel betrachten wir Audio-Codecs, die im Web zum Komprimieren und Dekomprimieren von Audio verwendet werden, welche Fähigkeiten und Anwendungsfälle sie haben, und bieten Leitlinien bei der Auswahl von Audio-Codecs für Ihre Inhalte.
Zusätzlich verwenden WebRTC-Implementierungen im Allgemeinen eine Teilmenge dieser Codecs zum Kodieren und Dekodieren von Medien und können auch zusätzliche Codecs unterstützen, um eine optimale plattformübergreifende Unterstützung für Video- und Audiokonferenzen zu gewährleisten und um besser mit Legacy-Telekommunikationslösungen zu integrieren. Details finden Sie unter Codecs verwendet von WebRTC.
Informationen zu den grundlegenden Konzepten, wie digitale Audiodateien funktionieren, finden Sie im Artikel Konzepte der digitalen Audiodaten.
Häufige Codecs
Die folgende Liste zeigt die am häufigsten im Web verwendeten Codecs und welche Container (Dateitypen) sie unterstützen. Wenn Sie nur wissen müssen, welche Codecs überhaupt verwendet werden können, ist dies das Richtige für Sie. Natürlich können einzelne Browser entscheiden, ob sie all diese Codecs unterstützen oder nicht, und ihre Unterstützung dafür, welche Typen von Containern verwendet werden können, kann ebenfalls variieren. Darüber hinaus können Browser wählen, zusätzliche Codecs zu unterstützen, die nicht in dieser Liste enthalten sind.
Codec-Name (kurz) | Voller Codec-Name | Container-Unterstützung |
---|---|---|
AAC | Advanced Audio Coding | MP4, ADTS, 3GP |
ALAC | Apple Lossless Audio Codec | MP4, QuickTime (MOV) |
AMR | Adaptive Multi-Rate | 3GP |
FLAC | Free Lossless Audio Codec | MP4, Ogg, FLAC |
G.711 | Puls-Code-Modulation (PCM) von Sprachfrequenzen | RTP / WebRTC |
G.722 | 7 kHz Audiokodierung innerhalb von 64 kbps (für Telefonie/VoIP) | RTP / WebRTC |
MP3 | MPEG-1 Audio Layer III |
MP4,
ADTS,
MPEG,
3GP
Wenn MPEG-1 Audio Layer III Codec-Daten in einer MPEG-Datei gespeichert sind und es keine Videospur in der Datei gibt, wird die Datei typischerweise als MP3-Datei bezeichnet, obwohl es sich immer noch um eine MPEG-Formatdatei handelt. |
Opus | Opus | WebM, MP4, Ogg |
Vorbis | Vorbis | WebM, Ogg |
Faktoren, die das codierte Audio beeinflussen
Es gibt zwei allgemeine Kategorien von Faktoren, die das codierte Audio beeinflussen, das von einem Audio-Codec-Kodierer ausgegeben wird: Details über das Format und den Inhalt der Quelldatei sowie den Codec und seine Konfiguration während des Kodierungsprozesses.
Für jeden Faktor, der das codierte Audio beeinflusst, gibt es eine einfache Regel, die nahezu immer zutrifft: Da die Wiedergabetreue der digitalen Audiodatei durch die Granularität und Genauigkeit der Abtastungen bestimmt wird, die für die Umwandlung in einen Datenstrom genommen werden, gilt, je mehr Daten verwendet werden, um die digitale Version des Audios darzustellen, desto näher wird sich der gesampelte Ton dem Quellmaterial annähern.
Die Auswirkung des Quell-Audioformats auf die codierte Audioausgabe
Da codiertes Audio inhärent weniger Bits verwendet, um jede Abtastung darzustellen, kann das Quell-Audioformat tatsächlich einen geringeren Einfluss auf die Größe des codierten Audios haben, als man erwarten könnte. Es gibt jedoch eine Reihe von Faktoren, die trotzdem die Qualität und Größe des codierten Audios beeinflussen. Die folgende Tabelle listet einige wichtige Faktoren des Quell-Audio-Dateiformats auf und deren Einfluss auf das codierte Audio.
Merkmal | Einfluss auf die Qualität | Einfluss auf die Größe |
---|---|---|
Anzahl der Kanäle | Die Anzahl der Kanäle beeinflusst nur die Wahrnehmung der Richtung, nicht die Qualität. | Jeder Kanal kann die Größe des codierten Audios erheblich erhöhen, abhängig von den Inhalten und den Encoder-Einstellungen. |
Rauschen / Zischen | Ungewolltes Hintergrundrauschen oder Zischen tendiert dazu, die Audioqualität sowohl direkt (durch Maskierung der Details des Vordergrund-Audios) als auch indirekt (durch Komplizieren der Audiowellenform und dadurch schwierigeres Verkleinern bei gleichzeitiger Beibehaltung der Genauigkeit) zu verringern. | Zischen, statisches Rauschen oder Hintergrundrauschen erhöhen die Audiokomplexität, was im Allgemeinen die Menge an möglicher Komprimierung verringert. |
Abtastrate | Je mehr Abtastungen pro Sekunde verfügbar sind, desto höher ist die resultierende Wiedergabetreue des codierten Audios wahrscheinlich. | Eine Erhöhung der Abtastrate vergrößert die Größe der codierten Audiodatei. |
Abtastgröße | Je größer die Abtastungen, desto mehr Details kann jede Abtastung enthalten, was zu einer genaueren Darstellung jeder Abtastung führt. | Abhängig vom Codec; Codecs haben typischerweise ein internes Abtastformat, das möglicherweise oder möglicherweise nicht der ursprünglichen Abtastgröße entspricht. Aber mehr Quelldetails können die codierte Datei größer machen; sie wird niemals kleiner werden. |
Natürlich können diese Effekte durch Entscheidungen, die während der Kodierung des Audios getroffen werden, geändert werden. Wenn der Codec zum Beispiel so konfiguriert ist, dass die Abtastrate reduziert wird, wird der Einfluss der Abtastrate auf die Ausgabedatei entsprechend verringert.
Weitere Informationen zu diesen und anderen Merkmalen von Audiodaten finden Sie unter Audio Datenformat und Struktur.
Die Auswirkung der Codec-Konfiguration auf die codierte Audioausgabe
Audio-Codec verwenden normalerweise intelligent gestaltete und hoch komplexe mathematische Algorithmen, um Quell-Audiodaten zu nehmen und sie zu komprimieren, um erheblich weniger Platz im Speicher oder Bandbreite zu beanspruchen. Zusätzlich zur Auswahl des zu verwendenden Kodierertyps können Sie möglicherweise den Kodierer mit Parametern anpassen, die bestimmte Algorithmen auswählen, diese Algorithmen anpassen und angeben, wie viele Durchläufe beim Kodieren durchgeführt werden sollen.
Merkmal | Einfluss auf die Qualität | Einfluss auf die Größe |
---|---|---|
Lossless-Kompression | Kein Verlust an Wiedergabetreue | Wahrscheinlich erreicht man nicht mehr als 40-50% Kompression |
Lossy-Kompression | Immer ein gewisser Verlust an Wiedergabetreue; je höher die Kompression, desto höher der Verlust | Kompression von bis zu 80-95% möglich |
Bitrate | Je höher die Bitrate, desto höher kann die Qualität sein | Je höher die Bitrate, desto größer ist wahrscheinlich die codierte Datei |
Audiofrequenzband | Wenn es im entfernten Frequenzband(n) irgendein Audio gibt, kann es zu einem merklichen Verlust an Wiedergabetreue kommen | Frequenzbänder zu entfernen bedeutet weniger Daten zum Kodieren, daher kleinere kodierte Dateien |
Stereo-Codierung | Einfache Stereo- und Mittel-Seiten-Stereo-Codierung beeinflussen die Qualität nicht; Intensitäts-Stereo-Codierung führt jedoch zu einem Verlust von Details. | Gemeinsames Stereo kann die Größe des codierten Audios in gewissem Maße reduzieren |
Die verfügbaren Parameter – und der Bereich möglicher Werte – variieren von Codec zu Codec und sogar zwischen verschiedenen Kodier-Utilities für denselben Codec, daher lesen Sie die Dokumentation, die mit der von Ihnen verwendeten Kodiersoftware kommt, um mehr darüber zu erfahren.
Merkmale, die die Größe des codierten Audios beeinflussen
Mehrere Faktoren beeinflussen die Größe des codierten Audios. Einige davon sind eine Frage der Form der Quell-Audiodatei; andere stehen im Zusammenhang mit Entscheidungen, die während der Kodierung des Audios getroffen wurden.
Lossless- versus Lossy-Codecs
Es gibt zwei grundlegende Kategorien der Audiokompression. Lossless-Kompressionsalgorithmen reduzieren die Größe der Audiodatei, ohne die Qualität oder Wiedergabetreue des Tons zu beeinträchtigen. Beim Dekodieren von Audio, das mit einem verlustfreien Codec wie FLAC oder ALAC komprimiert wurde, ist das Ergebnis in jeder Weise identisch mit dem Originalton bis auf das Bit.
Lossy-Codecs hingegen nutzen aus, dass das menschliche Ohr kein perfekter Interpretator von Audio ist und dass das menschliche Gehirn in der Lage ist, die wichtigen Informationen aus den unvollständigen oder lauten Audiotechnik herauszufiltern. Sie entfernen Audiofrequenzen, die weniger genutzt werden, tolerieren die Ungenauigkeit in der dekodierten Ausgabe und verwenden andere Methoden, um Audioinhalte, Qualität und Wiedergabetreue zu verlieren, um kleinere codierte Medien zu erzeugen. Beim Dekodieren ist die Ausgabe in variierendem Maße immer noch verständlich. Der spezifische verwendete Codec und die gewählte Kompressionskonfiguration entscheiden, wie nah an der ursprünglichen, unkomprimierten Audioausgabe das Signal beim Hören durch das menschliche Ohr zu sein scheint.
Aufgrund der Unterschiede, wie verlustbehaftete Codecs im Vergleich zu verlustfreien arbeiten, insbesondere, dass verlustfreie Codecs viel vorsichtiger mit ihrer Kompression sein müssen, ergibt sich aus verlustbehafteten Codecs fast immer deutlich kleineres komprimiertes Audio als aus verlustfreien Codecs.
Im Allgemeinen sind die häufigsten Gründe für die Wahl verlustfreier Audiodateien, dass Sie Archivqualität benötigen oder dass die Audiodatei neu gemischt und erneut komprimiert wird und Sie die Verstärkung von Artefakten in der Audiodatei durch erneute Kompression vermeiden möchten. Für das Echtzeit-Streaming von Audio ist normalerweise ein verlustbehafteter Codec erforderlich, um sicherzustellen, dass der Datenfluss mit der Audio-Wiedergabegeschwindigkeit mithalten kann, unabhängig von der Netzwerkleistung.
Maximale Anzahl an Kanälen
Das Audio, das an jeden Lautsprecher in einem Soundsystem geliefert wird, wird von einem Audiokanal in einem Stream bereitgestellt. Mono-Ton ist ein einzelner Kanal. Stereo-Ton sind zwei. 5.1 Surround-Sound hat fünf Audiokanäle, plus ein Low Frequency Enhancement (LFE)-Kanal.
LFE-Kanäle sind spezifisch gestaltet, um tieffrequente Audiodaten zu speichern und werden zum Beispiel häufig verwendet, um Audiodaten für Subwoofer bereitzustellen. Wenn Sie die Anzahl der Audiokanäle in der Form X.Y schreiben sehen (wie 2.1 oder 5.1), steht die Zahl nach dem Dezimalkomma, Y, für die Anzahl der LFE-Kanäle. Beispielsweise unterstützt MP3 einen LFE-Kanal, während AAC bis zu 16 unterstützt.
Neben der Bereitstellung von Audio für spezifische Lautsprecher in einem Soundsystem kann es einigen Codecs erlaubt sein, Audiokanäle für alternative Audiodateien zu verwenden, wie z.B. Gesang in verschiedenen Sprachen oder beschreibendes Audio für sehbehinderte Personen.
Audiofrequenzbandbreite
Die Audiofrequenzbandbreite eines Codecs bezeichnet den Bereich von Audiofrequenzen, die durch den Codec dargestellt werden können. Einige Codecs arbeiten gezielt, indem sie Audio eliminieren, das außerhalb eines bestimmten Frequenzbereichs liegt. Es gibt eine Korrelation zwischen der Abtastrate und der maximalen Schallfrequenz, die durch eine Wellenform dargestellt werden kann, die von einem Codec dargestellt wird. Auf theoretischer Ebene ist die maximale Frequenz, die ein Codec darstellen kann, die Abtastrate geteilt durch zwei; diese Frequenz wird als Nyquist-Frequenz bezeichnet. In Wirklichkeit ist das Maximum etwas niedriger, aber es ist nahe.
Die Audiofrequenzbandbreite spielt besonders lebhaft mit, wenn ein Codec entworfen oder konfiguriert wird, um menschliche Sprache statt eines breiten Bereichs von Tönen darzustellen. Menschliche Sprache befindet sich allgemein im Audiofrequenzbereich von 300 Hz bis 18 kHz. Die überwiegende Mehrheit der menschlichen Stimmen existieren jedoch im Bereich von 300 Hz bis 8 kHz und Sie können genug menschlicher Stimmen im Frequenzbereich von 500 Hz bis 3 kHz erfassen, um immer noch verständlich zu sein.
Aus diesem Grund beginnen sprachspezifische Codecs oft damit, Geräusche zu entfernen, die außerhalb eines festgelegten Bereichs liegen. Dieser Bereich ist die Audiofrequenzbandbreite. G.722 beispielsweise entfernt Geräusche außerhalb der Audiofrequenzbandbreite von 50 Hz bis 7 kHz. Dadurch wird die Menge der zu kodierenden Daten von Anfang an reduziert.
Codec-Details
Im Folgenden geben wir einen kurzen Überblick über jeden dieser Codecs, ihre grundlegenden Fähigkeiten und ihre Haupteinsatzszenarien.
AAC (Advanced Audio Coding)
Der Advanced Audio Coding (AAC) Codec ist als Teil des MPEG-4 (H.264)-Standards definiert; speziell im MPEG-4 Teil 3 und MPEG-2 Teil 7. Er wurde entwickelt, um mehr Kompression bei höherer Audio-Wiedergabetreue als MP3 zu bieten, AAC ist eine beliebte Wahl geworden und ist das Standardformat für Audio in vielen Medientypen, einschließlich Blu-Ray Discs und HDTV, sowie das Format für Songs, die bei Online-Händlern wie iTunes gekauft werden.
AAC hat eine Reihe von Profilen, die Methoden zur Komprimierung von Audio für spezifische Anwendungen definieren, einschließlich allem, von hochwertigem Surround-Sound bis hin zu niedriger Auflösung für ausschließlich Sprachgebrauch.
Als patentgeschütztes Format ist der AAC-Support etwas weniger vorhersehbar. Zum Beispiel unterstützt Firefox AAC nur, wenn Unterstützung durch das Betriebssystem oder eine externe Bibliothek bereitgestellt wird.
Unterstützte Bitraten | Beliebig, bis zu 512 kbps |
---|---|
Variable Bitrate (VBR) Unterstützung | Ja |
Unterstützte Abtastformate | 32-Bit-Integer |
Unterstützte Abtastraten | 8 kHz - 96 kHz |
Empfohlene Mindest-Bitrate für Stereo-Sound | 96 kbps bei einer Abtastrate von 48 kHz |
Kompression | Lossy |
Maximale Audiokanäle | 48 (plus 16 Low Frequency Enhancement Kanäle) |
Audiofrequenzbandbreite |
0 Hz - 96 kHz (Standard-Audiokanäle) 0 Hz - 120 Hz (LFE Kanäle) |
Latenz | 20 ms bis 405 ms |
Browser-Kompatibilität |
Aufgrund von Patentproblemen unterstützt Firefox AAC nicht direkt. Stattdessen verlässt sich Firefox auf die native Unterstützung der Plattform für AAC. Diese Fähigkeit wurde auf jeder Plattform in unterschiedlichen Firefox-Versionen eingeführt: Chrome unterstützt AAC nur in MP4-Containern und unterstützt nur das Main Profile von AAC. Darüber hinaus ist AAC in Chromium-Builds nicht verfügbar. |
Container-Unterstützung | MP4, ADTS, 3GP |
RTP / WebRTC kompatibel | Ja |
Lizenzierung | Für Streaming oder die Verteilung von AAC-codierten Inhalten: keine Lizenz erforderlich; Entwickler von Codecs sind verpflichtet, eine Patentlizenz durch VIA Licensing zu erhalten. |
ALAC (Apple Lossless Audio Codec)
Der Apple Lossless Audio Codec (ALAC oder Apple Lossless) ist ein verlustfreier Codec, der von Apple entwickelt wurde. Nach anfänglicher Geschlossenheit wurde er unter einer Apache-Lizenz geöffnet.
Plattformübergreifende und Browser-Unterstützung für ALAC ist nicht sehr stark, was ihn zu einer weniger idealen Wahl für den allgemeinen Gebrauch macht. Wenn Ihr Ziel jedoch hauptsächlich macOS- und iOS-Benutzer sind, kann es sich lohnen, in Erwägung zu ziehen, da die Betriebssysteme eine integrierte Unterstützung für ALAC haben. Ansonsten ist FLAC wahrscheinlich eine bessere Wahl, wenn Sie einen verlustfreien Codec verwenden müssen.
Bedenken Sie jedoch, dass verlustfreie Codecs erheblich mehr Bandbreite und Speicherkapazität erfordern und möglicherweise außerhalb sehr spezifischer Anwendungsfälle keine gute Wahl sind.
Unterstützte Bitraten | Abhängig von der Abtastform und -rate sowie dem Kompressionsgrad | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Variable Bitrate (VBR) Unterstützung | Nein | ||||||||||||
Unterstützte Abtastformate | 16-Bit-, 20-Bit-, 24-Bit- und 32-Bit-Integer | ||||||||||||
Unterstützte Abtastraten | 1 Hz bis 384.000 Hz | ||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | k. A. | ||||||||||||
Kompression | Lossless; bis zu 45-60% | ||||||||||||
Maximale Audiokanäle | 8 (bis zu 7.1 Surround) | ||||||||||||
Audiofrequenzbandbreite | ? | ||||||||||||
Latenz | ? | ||||||||||||
Browser-Kompatibilität |
|
||||||||||||
Container-Unterstützung | MP4 | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Lizenzierung | Open License (Apache License 2.0); Quellcode verfügbar auf GitHub |
AMR (Adaptive Multi-Rate)
Der Adaptive Multi-Rate Audio Codec ist für die effiziente Kodierung menschlicher Sprache optimiert. Er wurde 1999 als Teil des 3GPP-Audiostandards standardisiert, der sowohl für die GSM- als auch die UMTS-Mobiltelefonie verwendet wird, und verwendet einen schmalbandigen Mehrfrequenz-Algorithmus, um Audiofrequenzen auf telefontauglichem Qualitätsniveau bei rund 7,4 kbps zu kodieren. AMR-Audio kann neben der Echtzeittelefonie auch für Voicemail und andere kurze Audioaufnahmen verwendet werden.
AMR-Audio, das in Dateien gespeichert ist, kann mit .amr
getypt sein, aber auch in .3gp
-Dateien gekapselt werden.
Als sprachspezifischer Codec ist AMR grundsätzlich für alle anderen Inhalte unbrauchbar, einschließlich Audio, das nur singende Stimmen enthält. Da AMR jedoch darauf ausgelegt ist, Kapazitätsanforderungen zu minimieren, erfasst es nur den Teil des vollständigen Audiofrequenzbereichs der menschlichen Sprache, der absolut notwendig ist, um zu verstehen, was gesagt wird, sodass die Qualität entsprechend reduziert ist. Wenn Sie die Fähigkeit benötigen, Audio mit minimalem Einfluss auf Netzwerk- und/oder Speicherkapazitäten aufzunehmen, kann AMR eine großartige Wahl sein. Wenn Sie jedoch eine hochauflösende Wiedergabe der menschlichen Sprache oder sogar eine minderwertige Musikreproduktion benötigen, müssen Sie ein anderes Format wählen.
Unterstützte Bitraten | Halbe Rate (HR) und Volle Rate (FR): 1,8 kbps, 4,75 kbps, 5,15 kbps, 5,9 kbps, 6,7 kbps, 7,4 kbps, 7,95 kbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nur Volle Rate (FR): 10,2 kbps und 12,2 kbps | |||||||||||||
Variable Bitrate (VBR) Unterstützung | Nein | ||||||||||||
Unterstützte Abtastformate | 13-Bit-Integer | ||||||||||||
Unterstützte Abtastraten | 8 kHz | ||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | k. A. | ||||||||||||
Kompression | Lossy | ||||||||||||
Maximale Audiokanäle | 1 | ||||||||||||
Audiofrequenzbandbreite | 200 Hz bis 3.400 Hz | ||||||||||||
Latenz | 25 ms | ||||||||||||
Browser-Kompatibilität |
Während der Chrome-Browser AMR nicht unterstützt, unterstützt ChromeOS AMR-NB (schmalbandig) und AMR-WB (breitbandig). |
||||||||||||
Container-Unterstützung | AMR, 3GPP | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Lizenzierung | Nicht frei; Lizenzgebühren und jährliche Tantiemen fallen an. Siehe VoiceAge-Lizenzierung für Details. |
FLAC (Free Lossless Audio Codec)
FLAC (Free Lossless Audio Codec) ist ein verlustfreier Audio-Codec, der von der Xiph.org Foundation veröffentlicht wurde. Er bietet gute Komprimierungsraten ohne Verlust der Audio-Wiedergabetreue; das heißt, das dekomprimierte Audio ist mit dem Original identisch. Da der Komprimierungsalgorithmus speziell für Audio entwickelt wurde, erzielt er bessere Ergebnisse als die Verwendung eines allgemein verwendeten Komprimierungsalgorithmus.
FLAC ist eine großartige Wahl für kleinere Audiodateien, bei denen eine tadellose Qualität und tonale Genauigkeit gewünscht sind, sowie für die Archivierung von Musik.
Unterstützte Bitraten | — | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Variable Bitrate (VBR) Unterstützung | Nein | ||||||||||||
Unterstützte Abtastformate | 4-Bit- bis 24-Bit-Integer | ||||||||||||
Unterstützte Abtastraten | 1 Hz bis 65.535 Hz (in 1 Hz Schritten) oder 10 Hz bis 655.350 Hz in 10 Hz Schritten | ||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | — | ||||||||||||
Kompression | Lossless; bis zu 40-50% Größenreduzierung | ||||||||||||
Maximale Audiokanäle | 8 | ||||||||||||
Audiofrequenzbandbreite | Volles Spektrum | ||||||||||||
Latenz | 4,3 ms bis 92 ms mit 46,4 ms als typischer Durchschnitt | ||||||||||||
Browser-Kompatibilität |
|
||||||||||||
Container-Unterstützung | MP4, Ogg, FLAC | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Lizenzierung | Vollständig offen und frei von jeglichen Lizenzanforderungen |
G.711 (Puls-Code-Modulation von Sprachfrequenzen)
Die G.711 Spezifikation, veröffentlicht von der International Telecommunications Union (ITU), wurde 1972 ausgegeben, um die Standard-Audiokodierung für Telefonanwendungen zu definieren. Sie unterstützt sprachfähigen Audio, der Frequenzen von 300 bis 3400 Hz abdeckt. Es wird ausgiebig für Telefonverkehr und Voicemail verwendet und ist die höchste Audioqualität, die über das öffentliche Telefonnetz übertragen werden kann.
G.711 ist kein hochauflösender Codec, sondern ist optimiert, um eine breite Palette von Sprachpegeln zu unterstützen (vom Flüstern bis zum Schreien), während es eine hohe Verständlichkeit und geringe rechnerische Komplexität beibehält. G.711 verwendet einen logarithmischen Kompandierungsalgorithmus, der 14 Bits Dynamikumfang in einem 8-Bit-Muster bietet. Er verwendet eine Abtastrate von 8000 Abtastungen/Sekunde, was einer Bitrate von 64000 bps entspricht.
Es gibt zwei Geschmacksrichtungen von G.711, die die exakte mathematische Gleichung für den Algorithmus angeben: µ-law (häufig in Nordamerika und Japan verwendet) und A-law (häufig im Rest der Welt). Es gibt keinen wesentlichen Qualitätsunterschied zwischen den beiden Gesetzen, und es ist einfach, Audio von einem zum anderen zu transcodieren. Dennoch ist es wichtig, in jeder Wiedergabeanwendung oder Dateiformat anzugeben, welches Gesetz verwendet wird. A-law-Audio wird schlecht wiedergegeben, wenn es versehentlich mit dem µ-law-Algorithmus dekomprimiert wird und umgekehrt.
Dieser Codec muss von allen WebRTC-Lösungen unterstützt werden, da er einfach, einfach zu implementieren, weit verbreitet und breit kompatibel auf allen modernen Computerplattformen ist.
Unterstützte Bitraten | 64 kbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Variable Bitrate (VBR) Unterstützung | Nein | ||||||||||||
Unterstützte Abtastformate | codiertes Audio ist 8 Bits pro Abtastung | ||||||||||||
Unterstützte Abtastraten | 8 kHz | ||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | 128 kbps | ||||||||||||
Kompression | Logarithmische Kompansion (µ-law oder A-law) | ||||||||||||
Maximale Audiokanäle | 2 | ||||||||||||
Audiofrequenzbandbreite | 300 Hz – 3400 Hz | ||||||||||||
Latenz | 0,125 ms | ||||||||||||
Browser-Kompatibilität |
G.711 wird nur für WebRTC-Verbindungen unterstützt. |
||||||||||||
Container-Unterstützung | 3GP, WAV | ||||||||||||
RTP / WebRTC kompatibel | Ja | ||||||||||||
Lizenzierung | Alle anwendbaren Patente sind abgelaufen, sodass G.711 frei und ohne Einschränkungen nutzbar ist |
G.722 (64 kbps (7 kHz) Audiokodierung)
Veröffentlicht von der International Telecommunications Union (ITU), wurde der G.722-Codec speziell für die Kompression von Sprache entwickelt. Seine Audiokodierungsbandbreite ist auf den Bereich von 50 Hz bis 7.000 Hz beschränkt, der den größten Teil des Frequenzbereichs typischer menschlicher Stimmen umfasst. Das macht ihn ungeeignet für die Verarbeitung von Audio, das möglicherweise außerhalb des menschlichen Sprachbereichs liegt, wie z.B. Musik.
G.722 Audio wird mithilfe der adaptiven differentiellen Puls-Code-Modulation (ADPCM) codiert, bei der jedes Sample nicht durch seinen absoluten Wert dargestellt wird, sondern als Wert, der angibt, um wie viel sich das neue Sample vom vorherigen unterscheidet.
G.722 wird hauptsächlich für WebRTC-Verbindungen verwendet, da es einer der Audio-Codecs ist, die von der WebRTC-Spezifikation vorgeschrieben werden.
Unterstützte Bitraten | G.722: 48 kbps, 56 kbps, und 64 kbps; in der Praxis wird jedoch immer 64 kbps verwendet G.722 Anhang B Super Wide-Band: 64 kbps, 80 kbps, und 96 kbps G.722 Anhang D Stereo Wide-Band: 64 kbps und 80 kbps G.722 Anhang D Stereo Super Wide-Band: 80 kbps, 96 kbps, 112 kbps, und 128 kbps |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Variable Bitrate (VBR) Unterstützung | Nein | ||||||||||||
Unterstützte Abtastformate | 14-Bit-Integer | ||||||||||||
Unterstützte Abtastraten | 16 kHz (ADPCM ist spezifiziert, um 8 kHz, 11,025 kHz, 22,05 kHz, 44,1 kHz zu ermöglichen, aber G.722 verwendet 16 kHz) | ||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | 128 kbps bei einer Abtastrate von 44,1 kHz | ||||||||||||
Kompression | Lossy | ||||||||||||
Maximale Audiokanäle | 2 | ||||||||||||
Audiofrequenzbandbreite | 50 Hz - 7 kHz | ||||||||||||
Latenz | 4 ms | ||||||||||||
Browser-Kompatibilität |
Nur WebRTC. |
||||||||||||
Container-Unterstützung | 3GP, AMR-WB | ||||||||||||
RTP / WebRTC kompatibel | Ja | ||||||||||||
Lizenzierung | Alle anwendbaren Patente sind abgelaufen; G.722 ist kostenfrei nutzbar |
MP3 (MPEG-1 Audio Layer III)
Von den Audioformaten, die durch die MPEG/MPEG-2-Standards spezifiziert sind, ist MPEG-1 Audio Layer III—auch bekannt als MP3—bei weitem das am weitesten verbreitete und bekannteste. Der MP3-Codec ist definiert durch MPEG-1 Teil 3 und MPEG-2 Teil 3 und wurde 1991 eingeführt und 1992 finalisiert.
Wenn MP3-Audio im MPEG-Container gespeichert ist, wird die resultierende Datei auch einfach als "MP3-Datei" oder "MP3" bezeichnet. Dateien mit der allgegenwärtigen .mp3
-Erweiterung werden im vielleicht am weitesten verbreiteten Audio-Dateiformat der Welt gespeichert, was in großem Maße für die digitale Audiotechnik-Revolution der späten 1990er und frühen 2000er verantwortlich ist.
MPEG-1 MP3-Audio unterstützt höhere Bitraten sowie höhere Abtastraten als MP3-Audio in MPEG-2-Dateien. Das MPEG-1-Format MP3 ist im Allgemeinen am besten für Musik oder andere komplexe Audioinhalte, während MPEG-2-Modus MP3-Audio akzeptabel für Sprache und andere einfachere Sounds ist.
Die Patente hinter dem MP3 sind abgelaufen, wodurch viele oder die meisten Lizenzierungsbedenken rund um die Verwendung von MP3-Dateien in Ihren Projekten entfallen. Das macht sie zu einer guten Wahl für viele Projekte.
Unterstützte Bitraten | MPEG-1 Modus: 32 kbps, 40 kbps, 48 kbps, 56 kbps, 64 kbps, 80 kbps, 96 kbps, 112 kbps, 128 kbps, 160 kbps, 192 kbps, 224 kbps, 256 kbps, 320 kbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MPEG-2 Modus: 8 kbps, 16 kbps, 24 kbps, 32 kbps, 40 kbps, 48 kbps, 56 kbps, 64 kbps, 80 kbps, 96 kbps, 112 kbps, 128 kbps, 144 kbps, 160 kbps | |||||||||||||
Variable Bitrate (VBR) Unterstützung | Ja | ||||||||||||
Unterstützte Abtastformate | 16-Bit-Integer | ||||||||||||
Unterstützte Abtastraten | MPEG-1 Modus: 32.000 Hz, 44.100 Hz, 48.000 Hz | ||||||||||||
MPEG-2 Modus: 16.000 Hz, 22.050 Hz, 24.000 Hz (Die Hälfte der Frequenz der unterstützten Modi von MPEG-1) | |||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | 128 kbps bei einer Abtastrate von 48 kHz | ||||||||||||
Kompression | Lossy | ||||||||||||
Maximale Audiokanäle | MPEG-1 Modus: 2 [2.0] | ||||||||||||
MPEG-2 Modus: 5 (plus 1 optionaler Low Frequency Enhancement-Kanal) [5.1] | |||||||||||||
Audiofrequenzbandbreite | Variiert, abhängig von Bitrate und psychoakustischer Analyse | ||||||||||||
Latenz | Mindestens 100 ms | ||||||||||||
Browser-Kompatibilität |
|
||||||||||||
Container-Unterstützung | MPEG-1, MPEG-2, MP4, ADTS, 3GP | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Lizenzierung | Patentfrei in der EU seit 2012; patentfrei in den Vereinigten Staaten seit dem 16. April 2017; jetzt frei nutzbar |
Aus Patentgründen unterstützte Firefox MP3 vor Version 71 nicht direkt; stattdessen wurden plattformnative Bibliotheken verwendet, um MP3 zu unterstützen. Diese Fähigkeit wurde auf jeder Plattform in unterschiedlichen Firefox-Veröffentlichungen eingeführt:
Plattform | Erste Firefox-Version mit MP3-Unterstützung |
---|---|
Windows (Vista und später) | 22 |
Android | 20 |
Linux (abhängig von GStreamer) | 26 |
macOS | 35 |
Opus
Das Opus Audioformat wurde von der Xiph.org Foundation als voll offenes Audioformat entwickelt, es wurde von der IETF als RFC 6716 standardisiert. Es ist ein guter Allzweck-Audio-Codec, der sowohl nieder- als auch hochkomplexe Audioinhalte umfassend und effizient verarbeiten kann, wie Sprache sowie Musik und andere komplexe Geräusche.
Opus unterstützt mehrere Kompressionsalgorithmen und kann sogar mehr als einen Algorithmus in derselben Audiodatei verwenden, da der Encoder die Bitrate, die Audiobandbreite, den Algorithmus und andere Details zu den Komprimierungseinstellungen für jeden Audioframe wählen kann.
Opus ist ein guter Allround-Audio-Codec zur Verwendung in Ihren Webanwendungen und kann für jede Audioaufgabe verwendet werden, die Sie im Sinn haben.
Unterstützte Bitraten | 6 kbps - 510 kbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Variable Bitrate (VBR) Unterstützung | Ja | ||||||||||||
Unterstützte Abtastformate | 16-Bit-Integer und 32-Bit-Float (-1.0 bis 1.0) | ||||||||||||
Unterstützte Abtastraten |
Die angegebenen Abtastraten sind effektive Abtastraten. Opus verwendet einen Algorithmus basierend auf Audiobandbreiten anstelle von Abtastraten. Siehe RFC 6716, Abschnitt 2 für Details. Darüber hinaus gibt es einen optionalen Teil der Opus-Spezifikation (Opus-Custom), der nicht-standardmäßige Abtastraten ermöglicht, aber die Verwendung dieser Funktion ist nicht empfohlen. |
||||||||||||
Empfohlene Mindest-Bitrate für Stereo-Sound | 96 kbps bei einer Abtastrate von 48 kHz | ||||||||||||
Kompression | Lossy | ||||||||||||
Maximale Audiokanäle | 255 (bis zu 1 LFE-Kanal) | ||||||||||||
Audiofrequenzbandbreite |
Obwohl der Nyquist–Shannon Abtasttheorem zeigt, dass die Audiobandbreite bis zur Hälfte der Abtastrate reichen kann, erlaubt Opus keine Codierung außerhalb eines maximalen 20 kHz Audiobandbreite, da das menschliche Ohr ohnehin nichts über der 20 kHz-Marke wahrnehmen kann. Dies spart etwas Platz im codierten Audio. |
||||||||||||
Latenz | 5 ms bis 66,5 ms | ||||||||||||
Browser-Kompatibilität |
Diese Information bezieht sich auf die Unterstützung von Opus in HTML
Safari unterstützt Opus im |
||||||||||||
Container-Unterstützung | Ogg, WebM, MPEG-TS, MP4 | ||||||||||||
RTP / WebRTC kompatibel | Ja | ||||||||||||
Lizenzierung | Vollständig offen und frei von jeglichen Lizenzanforderungen |
Vorbis
Vorbis ist ein offenes Format von der Xiph.org Foundation, das eine Vielzahl von Kanal-Kombinationen unterstützt, einschließlich monaural, stereo, polyphonisch, quadrophonisch, 5.1 Surround, Ambisonic oder bis zu 255 diskrete Audiokanäle. Abhängig von der Qualitätsstufe, die während der Codierung verwendet wird, kann die resultierende Bitrate zwischen etwa 45 kbps und 500 kbps variieren. Vorbis verwendet standardmäßig eine variable Bitrate-Codierung; die Bitrate kann sich je nach Bedarf bei der Kompression von einem Sample zum nächsten ändern.
Im Allgemeinen ist Vorbis in Bezug auf Größe und Bitrate effizienter als MP3 bei ähnlichen Qualitätsstufen. Dies und seine freie und offene Lizenz machen es zu einer guten Wahl für viele Arten von Audiodaten, solange seine hohe Latenz kein Problem darstellt.
Unterstützte Bitraten | 45 kbps - 500 kbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützung für Variable Bit Rate (VBR) | Ja | ||||||||||||
Unterstützte Sample-Formate | 16-Bit-Integer | ||||||||||||
Unterstützte Abtastraten | 8 kHz - 192 kHz | ||||||||||||
Empfohlene minimale Bitrate für Stereo-Sound | 192 kbps bei 48 kHz; dies wird typischerweise durch Einstellen des Qualitätsniveaus auf 6 bis 8 erreicht. | ||||||||||||
Kompression | Lossy | ||||||||||||
Maximale Audiokanäle | 255 | ||||||||||||
Audio-Frequenzbandbreite | |||||||||||||
Latenz | Mindestens 100 ms | ||||||||||||
Browser-Kompatibilität |
Diese Informationen beziehen sich auf die Unterstützung von Vorbis in HTML
|
||||||||||||
Container-Unterstützung | Ogg, WebM | ||||||||||||
RTP / WebRTC kompatibel | Ja | ||||||||||||
Lizenzierung | Vollständig offen und frei von jeglichen Lizenzanforderungen |
Auswahl eines Audiocodecs
Typischerweise, unabhängig davon, welchen Codec Sie verwenden, wird er im Allgemeinen die Aufgabe erledigen, auch wenn er nicht die ideale Wahl ist, solange Sie einen Codec wählen, der nicht speziell für eine völlig andere Art von Quell-Audio entwickelt wurde. Wenn Sie beispielsweise einen reinen Sprachcodec auswählen und versuchen, ihn für Musik zu verwenden, werden Sie keine brauchbaren Ergebnisse erzielen.
Einige Codecs können jedoch die Kompatibilität einschränken, und andere können für Ihre Bedürfnisse optimaler sein als andere. Hier geben wir Ihnen Hinweise, um Ihnen bei der Auswahl eines geeigneten Codecs für Ihren Anwendungsfall zu helfen.
Bei der Auswahl eines Codecs für Ihr Audio sollten Sie zunächst die folgenden Fragen berücksichtigen:
- Wird das codierte Audio remixt oder recompressed? Wenn ja, vermeiden Sie verlustbehaftete Kompression, die durch das erneute Komprimieren des Audios verstärkt würde; oder verwenden Sie zumindest so wenig Kompression wie möglich.
- Wenn das Audio in eine bestimmte Dateityp eingehen muss, behalten Sie dies im Auge, da Mediencontainer typischerweise nur eine spezifische Untermenge der verfügbaren Codecs unterstützen.
- Welche Art von Audioinhalt wird der Codec bearbeiten? Einige Codecs sind speziell für reinen Sprachinhalt ausgelegt (sie nutzen den reduzierten Frequenzbereich, der für menschliche Sprache benötigt wird). Andere können eine algorithmische Tendenz haben, bei der Kodierung bestimmter Musikgenres schlechter zu performen.
- Welche Bitraten und anderen konfigurierbaren Eigenschaften hat jeder Codec, die ihn zu einer guten (oder schlechten) Wahl machen könnten?
- Inwieweit spielt Latenz für Ihre Bedürfnisse eine Rolle, falls überhaupt? Wenn Sie sehr präzise getimten Sound benötigen, ist eine niedrigere Latenz besser.
- Wie viel Kompression müssen Sie erreichen?
Lassen Sie uns ein paar häufige Szenarien betrachten, um ein Gespür für den Entscheidungsprozess zu bekommen.
Beispiel: Musik für Streaming
Für das Streaming von Musik möchten Sie einen Codec auswählen, der den Bandbreitenverbrauch so weit wie möglich minimiert und dabei so wenig wie möglich Artefakte in die Audioaufnahme durch Kompression einführt. Dies ist notwendig, weil die Geschwindigkeit, mit der die Musik heruntergeladen wird, nicht größer sein sollte als die verfügbare Bandbreite im Netzwerk, und idealerweise sollte noch Raum für Schwankungen der Netzgeschwindigkeit und die Nutzung des Netzwerks durch andere Anwendungen bleiben.
Es sei denn, es gibt einen spezifischen Bedarf für verlustfreie Kompression, oder die Netzwerkbandbreite ist garantiert hoch genug, um dies zu unterstützen, ist ein verlustbehaftetes Kompressionsschema eine gute Wahl. Welche Sie wählen, hängt von der Browser-Kompatibilität und der Verfügbarkeit spezieller Funktionen ab, die der Codec möglicherweise unterstützen muss.
Normalerweise ist die Latenz nicht besonders wichtig, wenn Musik gestreamt wird. Mögliche Ausnahmen sind wiederholte Musik, bei der Sie die Musik kontinuierlich ohne Unterbrechung abspielen müssen, oder wenn Sie in der Lage sein müssen, Songs nahtlos hintereinander abzuspielen. Dies kann insbesondere für klassische Musik, theatralische Soundtracks und für Hintergrundmusik während des Spielens wichtig sein.
Für die allgemeine Musikwiedergabe sind die drei wahrscheinlichsten Kandidaten MP3, AAC und Vorbis.
- AAC in einem MP4-Container wird von allen großen Browsern unterstützt, was dies zu einer großartigen Wahl macht.
- Vorbis wird fast immer in Ogg-Dateien verwendet, aber Ogg-Container werden nicht universell unterstützt. Selbst Microsoft Edge, das beide unterstützt, unterstützt noch keine Ogg-Container.
- MP3 (MPEG-1 Audio Layer III) wird von allen großen Browsern unterstützt. Diese Dateien sind MPEG-1-Dateien, die eine Audio Layer III-Spur enthalten.
Wenn Sie die Latenz bei der Musikwiedergabe minimieren müssen, sollten Sie ernsthaft über Opus nachdenken, das den niedrigsten Latenzbereich der Allzweck-Codecs aufweist (5 ms bis 66,5 ms im Vergleich zu mindestens 100 ms für die anderen).
Hinweis: Die hier beschriebene Kompatibilitätsinformation ist im Allgemeinen korrekt zum Zeitpunkt der Erstellung dieses Artikels; es kann jedoch Ausnahmen und Einschränkungen geben. Achten Sie darauf, die Kompatibilitätstabellen zu konsultieren, bevor Sie sich auf ein bestimmtes Medienformat festlegen.
Basierend darauf ist AAC wahrscheinlich Ihre beste Wahl, wenn Sie nur ein Audioformat unterstützen können. Natürlich können Sie, wenn Sie mehrere Formate zur Verfügung stellen (zum Beispiel durch Verwendung des <source>
Elements innerhalb Ihrer <audio>
und <video>
Elemente), viele oder alle dieser Ausnahmen vermeiden.
Beispiel: Musik für Downloads
Musik, die vom Benutzer heruntergeladen wird, kann zu einer größeren Gesamtdateigröße komprimiert werden als gestreamte Musik, da es (anders als beim Streaming) nicht wichtig ist, ob die Download-Geschwindigkeit langsamer ist als die Wiedergabegeschwindigkeit des Mediums. Das bedeutet, dass Sie über den Einsatz verlustbehafteter Kompression mit höheren Bitraten nachdenken können, was zu größeren Dateien, aber mit weniger Verlust der Klangtreue führt. Oder Sie können sich für ein verlustfreies Format entscheiden. Die Wahl hängt weitgehend von der Kombination Ihrer Anwendungsanforderungen und den Vorlieben Ihrer Benutzer ab.
Bei einem tatsächlichen Musik-Download-Service könnten Sie Songs zum Download als 128 Kbps MP3-Dateien, 256 kbps AAC-Dateien (in MP4-Containern) oder FLAC-Dateien anbieten, abhängig von einer vom Benutzer ausgewählten Präferenz. Wenn Sie nur ein Format auswählen müssen, wählen Sie eines, das Ihren Anforderungen und der Art der heruntergeladenen Audioinhalte entspricht.
Im Allgemeinen ist MP3 natürlich das am häufigsten verwendete Format für Musik; wählen Sie, wenn möglich, eine Bitrate von mindestens 192 kbps. Der iTunes Store verteilt Musik hingegen im 256 kbps AAC-Format.
Beispiel: Sprachaufnahme und Wiedergabe
Die spezifischen Eigenschaften der menschlichen Sprache ermöglichen es sprachspezifischen Codecs, die Audioaufnahme weit mehr zu komprimieren als die meisten allgemeinen Codecs es können. Denn obwohl Menschen Frequenzen im Bereich von etwa 20 Hz bis 20.000 Hz hören und menschliche Sprachgeräusche von etwa 300 Hz bis 18.000 Hz reichen, liegen die meisten Sprachlaute, die wir benötigen, um zu verstehen, was gesagt wird, im Frequenzbereich von etwa 500 Hz bis 3.000 Hz. Das bedeutet, dass sprachspezifische Codecs alles andere ignorieren können.
Die sprachspezifischen Codecs sind jedoch alle inhärent sehr verlustbehaftet, und jedes Geräusch mit erheblichen Informationen in den außerhalb des Stimmumfangs erfassten Frequenzbändern geht vollständig verloren. Dies macht diese Codecs völlig ungeeignet für alles andere als gesprochene Wörter. Selbst Audio, das nur Stimmen enthält, aber gesungen statt gesprochen wird, wird wahrscheinlich nicht von akzeptabler Qualität in einem dieser Formate sein.
Die Sprachaufnahme und -wiedergabe muss in der Regel latenzarm sein, um mit Videospuren synchronisiert zu werden, oder um Übersprechen oder andere Probleme zu vermeiden. Glücklicherweise führen die Eigenschaften, die Sprachcodecs so speicherplatzmäßig so effizient machen, auch dazu, dass sie tendenziell sehr niedrige Latenzen haben. Wenn Sie mit WebRTC arbeiten, hat zum Beispiel G.722 eine Latenz von 4 ms (im Vergleich zu über 100 ms für MP3), und die Latenz von AMR liegt bei etwa 25 ms.
Hinweis: Weitere Informationen zu WebRTC und den von WebRTC verwendeten Codecs finden Sie unter Codecs used by WebRTC.
Die im Web allgemein verwendeten Codecs, die für die kodierung von Sprache verwendet werden, sind G.722 und AMR. AMR ist ein Schmalband-Codec, der nur die Frequenzen zwischen 200 Hz und 3.400 Hz mit Bitraten typischerweise um 7,4 kbps kodiert, während G.722 ein Breitband-Codec ist, der die Audio-Bandbreite auf 50 Hz bis 7.000 Hz bei viel höheren Bitraten erweitert – in der Regel 64 kbps.
Wenn Sie reichlich Netzwerkbandbreite zur Verfügung haben und sich ziemlich sicher sind, dass Ihre Benutzer dies auch tun werden, ist G.722 die bessere Wahl. Um die Speicher- und Netzeffizienz in einer eingeschränkten Umgebung zu maximieren, wählen Sie AMR.
Beispiel: Audioclips für professionelles Mixing
Wenn Sie Audiomaterial komprimieren, das gemischt oder remixt wird, möchten Sie in der Regel eine verlustfreie oder nahezu verlustfreie Wiedergabetreue, was auf einen verlustfreien Codec hinweisen könnte. Allerdings besitzt verlustfreie Kodierung naturgemäß ein wesentlich geringeres Kompressionsniveau als verlustbehaftete Kodierung, sodass Sie feststellen könnten, dass Sie, wenn Ihr Quell-Audio groß genug ist, möglicherweise dennoch einen verlustbehafteten Encoder verwenden müssen, insbesondere in einer Webumgebung, in der Sie die Download-Rate des Mediums nicht kontrollieren können.
Angenommen, verlustfreie Kompression ist hier unsere beste Option (was sie in der Regel ist, solange die Audiodateien klein sind), sind die drei stärksten Kandidaten aus Codec-Sicht FLAC, Apple Lossless (ALA) und MPEG-4 ALS. Welche wir wählen, hängt von der Browserunterstützung und davon ab, welche Mediencontainerformate sie unterstützen.
Für die Zwecke dieses Beispiels nehmen wir an, dass alle Browser die gleiche Codec- und Containerunterstützung wie Firefox haben (obwohl dies bei Weitem nicht zutrifft). Berücksichtigen Sie die Breite der tatsächlichen Unterstützung für die Codecs bei Ihren Entscheidungen.
- Firefox unterstützt FLAC in den nativen Containern von FLAC sowie in Ogg- und MPEG-4 (MP4)-Dateien.
- Firefox unterstützt Apple Lossless nur über seine plattformspezifische QuickTime-Unterstützung.
- Firefox unterstützt MP4 ALS nicht.
In diesem Fall scheint FLAC der wahrscheinlich beste Codec zu sein; ALAC hat wenig bis keine direkte Browserunterstützung.
Audio-Codierungssoftware
Es gibt viele Tools zur Kodierung von Audio. Die einfachsten sind diejenigen, die zum Rippen von CDs oder zum Einlesen von Audiodateien gedacht sind und diese schnell und automatisch in MP3- oder AAC-Format konvertieren, um sie in einer Bibliothek zu speichern, wie etwa iTunes. Aber wenn Sie Web-Apps entwickeln, die Audio als Bestandteil der App verwenden, wie Spiele, benötigen Sie mehr Kontrolle über den Codierungsprozess und mehr Optionen hinsichtlich des während der Codierung verwendeten Formats.
Einige beliebte Optionen:
- FFmpeg
-
Arguably the best-known and most widely regarded open source codec package available, FFmpeg supports the majority of the most popular audio formats and provides command-line tools and libraries for encoding, decoding, and performing format conversions of both audio and video. Binaries are available for macOS, Linux, and Windows.
- Handbrake
-
A highly popular open source front-end to FFmpeg which adds a graphical user interface that makes it much easier to control the wide variety of options FFmpeg offers while encoding audio and/or video. Binaries are available for macOS, Linux, and Windows.
- Audacity
-
An open source audio editor that supports loading audio from many different formats, editing, filtering, and adjusting the audio, and saving it back out in either the original format or a new format. Available for macOS, Linux, and Windows.
- LAME
-
A high quality open source MP3 encoder with support for CBR, ABR, and VBR encoding as well as a variety of other options. Distributed only in source form by the LAME project, but can be installed using Homebrew or similar tools.