{"id":19928,"date":"2026-09-17T20:12:56","date_gmt":"2026-09-17T18:12:56","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/werkzeuge\/browser-audio-codec-support\/"},"modified":"2026-09-17T20:12:56","modified_gmt":"2026-09-17T18:12:56","slug":"browser-audio-codec-support","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/","title":{"rendered":"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt"},"content":{"rendered":"<div class=\"lw-cs\" id=\"cs-wurzel\" style=\"background: var(--bg-panel, #1e1e24); padding: 25px; border-radius: 8px; border: 1px solid var(--border, #2a2a35);\">\n<style>\n.lw-cs .cs-kacheln { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 14px 0 4px; }\n.lw-cs .cs-kachel { background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); border-radius: 8px; padding: 11px 14px; min-width: 0; }\n.lw-cs .cs-kachel-name { font-size: 0.74rem; color: var(--text-secondary, #a0a0b0); text-transform: uppercase; letter-spacing: 0.4px; }\n.lw-cs .cs-kachel-wert { font-family: monospace; font-size: 1.4rem; font-weight: 700; color: var(--text-primary, #e8e8ee); line-height: 1.25; white-space: nowrap; }\n.lw-cs .cs-tabelle { overflow-x: auto; margin-top: 6px; }\n.lw-cs table { border-collapse: collapse; width: 100%; font-size: 0.86rem; }\n.lw-cs th, .lw-cs td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--border, #2a2a35); white-space: nowrap; }\n.lw-cs th { color: var(--text-primary, #e8e8ee); }\n.lw-cs td { color: var(--text-primary, #e8e8ee); }\n.lw-cs td.cs-typ { font-family: monospace; color: var(--text-secondary, #a0a0b0); }\n.lw-cs .cs-ja { color: var(--ok, #7ee787); font-weight: 700; }\n.lw-cs .cs-vielleicht { color: var(--cs-warn); font-weight: 700; }\n.lw-cs .cs-nein { color: var(--text-secondary, #a0a0b0); }\n.lw-cs { --cs-warn: #e8a33d; }\n:root[data-theme=\"light\"] .lw-cs { --cs-warn: #8f5300; }\n.lw-cs .cs-h { font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.95rem; margin: 24px 0 8px; }\n.lw-cs .cs-klein { font-size: 0.84rem; color: var(--text-secondary, #a0a0b0); line-height: 1.55; }\n.lw-cs .cs-knopf { background: transparent; color: var(--text-secondary, #a0a0b0); border: 1px solid var(--border, #2a2a35); padding: 9px 14px; border-radius: 6px; cursor: pointer; font-size: 0.9rem; margin-top: 14px; }\n.lw-cs a { color: var(--accent, #2ba6df); }\n@media (max-width: 480px) {\n    .lw-cs .cs-kacheln { grid-template-columns: 1fr 1fr; gap: 8px; }\n    .lw-cs .cs-kachel-wert { font-size: 1.15rem; }\n    .lw-cs th, .lw-cs td { padding: 6px 6px; }\n}\n<\/style>\n<p style=\"color: var(--text-secondary, #a0a0b0); margin-bottom: 18px;\">Welche Audioformate ein Browser abspielt, entscheidet, was auf einer Seite ankommt und welches Format eine H\u00f6rprobe braucht. Die Pr\u00fcfung fragt genau diesen Browser: das Audio-Element \u00fcber canPlayType, die Media Source Extensions f\u00fcr das Streaming und den MediaRecorder f\u00fcr Aufnahmen. Nichts wird geladen oder gesendet, es sind reine Abfragen.<\/p>\n<div id=\"cs-kacheln\" class=\"cs-kacheln\" data-mp-mask aria-live=\"polite\"><\/div>\n<div class=\"cs-h\">Abspielen<\/div>\n<div class=\"cs-tabelle\">\n<table>\n<thead>\n<tr>\n<th>Format<\/th>\n<th>MIME-Typ<\/th>\n<th>Audio-Element<\/th>\n<th>MediaSource<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"cs-abspielen\" data-mp-mask><\/tbody>\n<\/table><\/div>\n<p class=\"cs-klein\" style=\"margin: 8px 0 0;\">\u201eWahrscheinlich\u201c hei\u00dft laut HTML-Standard, dass der Browser sich sicher ist; \u201evielleicht\u201c ist die vorsichtige Antwort, zu der der Standard r\u00e4t, solange Unterst\u00fctzung weder feststeht noch ausgeschlossen ist.<\/p>\n<div class=\"cs-h\">Aufnehmen im Browser<\/div>\n<div class=\"cs-tabelle\">\n<table>\n<thead>\n<tr>\n<th>Format<\/th>\n<th>MIME-Typ<\/th>\n<th>MediaRecorder<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"cs-aufnehmen\" data-mp-mask><\/tbody>\n<\/table><\/div>\n<p class=\"cs-klein\" style=\"margin: 8px 0 0;\">MediaRecorder betrifft Aufnahmen im Browser, etwa ein Sprachmemo auf einer Seite. Fehlt die Schnittstelle, steht in jeder Zeile \u201eunbekannt\u201c.<\/p>\n<p>    <button id=\"cs-kopieren\" type=\"button\" class=\"cs-knopf\">Ergebnis kopieren<\/button><br \/>\n    <span id=\"cs-kopiert\" data-mp-mask class=\"cs-klein\" style=\"margin-left: 10px;\"><\/span><\/p>\n<div class=\"cs-h\">Was die Antworten bedeuten<\/div>\n<p class=\"cs-klein\" style=\"margin: 0 0 6px;\">canPlayType am Audio-Element antwortet laut HTML-Standard mit leerem Text, wenn der Browser das Format sicher nicht darstellen kann, mit \u201emaybe\u201c, wenn er Unterst\u00fctzung weder feststellen noch ausschlie\u00dfen kann, und mit \u201eprobably\u201c, wenn er sich sicher ist.<\/p>\n<p class=\"cs-klein\" style=\"margin: 0 0 6px;\">MediaSource.isTypeSupported sagt nur, dass sich f\u00fcr diesen Typ ein SourceBuffer anlegen l\u00e4sst; die Spezifikation weist ausdr\u00fccklich darauf hin, dass ein sp\u00e4teres addSourceBuffer trotzdem scheitern kann, wenn die Mittel fehlen.<\/p>\n<p class=\"cs-klein\" style=\"margin: 0 0 6px;\">MediaRecorder.isTypeSupported nennt die Container und Codecs, in denen dieser Browser aufnehmen kann. Diese Liste unterscheidet sich oft von der Liste der abspielbaren Formate.<\/p>\n<p class=\"cs-klein\" style=\"margin: 20px 0 0;\">Quellen:<br \/>\n        <a href=\"https:\/\/html.spec.whatwg.org\/multipage\/media.html#mime-types\" rel=\"noopener\">HTML Standard, 4.8.11.3 MIME types<\/a> \u00b7<br \/>\n        <a href=\"https:\/\/www.w3.org\/TR\/media-source-2\/\" rel=\"noopener\">Media Source Extensions<\/a>\n    <\/p>\n<p class=\"cs-klein\" style=\"font-size: 0.8rem; margin: 14px 0 0;\">Die Antworten gelten f\u00fcr diesen Browser auf diesem Ger\u00e4t, samt Betriebssystem und seinen Hardware-Decodern; ein anderes Ger\u00e4t kann anders antworten. Gepr\u00fcft werden die Angaben des Browsers, nicht die Wiedergabe selbst.<\/p>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"Welche Audioformate ein Browser abspielt, entscheidet, was auf einer Seite ankommt und welches Format eine H\u00f6rprobe braucht. Die Pr\u00fcfung fragt genau diesen Browser: das Audio-Element \u00fcber canPlayType, die Media Source Extensions f\u00fcr das Streaming und den MediaRecorder f\u00fcr Aufnahmen. Nichts wird geladen oder gesendet, es sind reine Abfragen.\",\"h_abspielen\":\"Abspielen\",\"h_aufnehmen\":\"Aufnehmen im Browser\",\"sp_format\":\"Format\",\"sp_typ\":\"MIME-Typ\",\"sp_element\":\"Audio-Element\",\"sp_mediasource\":\"MediaSource\",\"sp_recorder\":\"MediaRecorder\",\"abspielen_hinweis\":\"\u201eWahrscheinlich\u201c hei\u00dft laut HTML-Standard, dass der Browser sich sicher ist; \u201evielleicht\u201c ist die vorsichtige Antwort, zu der der Standard r\u00e4t, solange Unterst\u00fctzung weder feststeht noch ausgeschlossen ist.\",\"aufnehmen_hinweis\":\"MediaRecorder betrifft Aufnahmen im Browser, etwa ein Sprachmemo auf einer Seite. Fehlt die Schnittstelle, steht in jeder Zeile \u201eunbekannt\u201c.\",\"knopf_kopieren\":\"Ergebnis kopieren\",\"kopiert\":\"kopiert\",\"kopieren_fehler\":\"Kopieren nicht m\u00f6glich\",\"k_spielbar\":\"Abspielbar\",\"k_sicher\":\"Sicher unterst\u00fctzt\",\"k_quelle\":\"\u00dcber MediaSource\",\"k_aufnahme\":\"Aufnahmeformate\",\"wert_probably\":\"wahrscheinlich\",\"wert_maybe\":\"vielleicht\",\"wert_ja\":\"ja\",\"wert_nein\":\"nein\",\"wert_unbekannt\":\"unbekannt\",\"h_erklaerung\":\"Was die Antworten bedeuten\",\"erkl_canplaytype\":\"canPlayType am Audio-Element antwortet laut HTML-Standard mit leerem Text, wenn der Browser das Format sicher nicht darstellen kann, mit \u201emaybe\u201c, wenn er Unterst\u00fctzung weder feststellen noch ausschlie\u00dfen kann, und mit \u201eprobably\u201c, wenn er sich sicher ist.\",\"erkl_mediasource\":\"MediaSource.isTypeSupported sagt nur, dass sich f\u00fcr diesen Typ ein SourceBuffer anlegen l\u00e4sst; die Spezifikation weist ausdr\u00fccklich darauf hin, dass ein sp\u00e4teres addSourceBuffer trotzdem scheitern kann, wenn die Mittel fehlen.\",\"erkl_aufnahme\":\"MediaRecorder.isTypeSupported nennt die Container und Codecs, in denen dieser Browser aufnehmen kann. Diese Liste unterscheidet sich oft von der Liste der abspielbaren Formate.\",\"quellen_titel\":\"Quellen\",\"grenze\":\"Die Antworten gelten f\u00fcr diesen Browser auf diesem Ger\u00e4t, samt Betriebssystem und seinen Hardware-Decodern; ein anderes Ger\u00e4t kann anders antworten. Gepr\u00fcft werden die Angaben des Browsers, nicht die Wiedergabe selbst.\"};<\/p>\n<p>    \/\/ KERN-ANFANG ------------------------------------------------------------\n    \/\/ Gefragt wird der Browser selbst: canPlayType am Audio-Element,\n    \/\/ MediaSource.isTypeSupported und MediaRecorder.isTypeSupported. Alle drei\n    \/\/ kommen als Funktionen herein, damit die Pruefung eigene einsetzen kann.<\/p>\n<p>    var ABSPIELEN = [\n        { id: 'wav', name: 'WAV (PCM)', typ: 'audio\/wav' },\n        { id: 'aiff', name: 'AIFF', typ: 'audio\/aiff' },\n        { id: 'flac', name: 'FLAC', typ: 'audio\/flac' },\n        { id: 'flac_mp4', name: 'FLAC in MP4', typ: 'audio\/mp4; codecs=\"flac\"' },\n        { id: 'mp3', name: 'MP3', typ: 'audio\/mpeg' },\n        { id: 'mp3_mp4', name: 'MP3 in MP4', typ: 'audio\/mp4; codecs=\"mp3\"' },\n        { id: 'aac_lc', name: 'AAC-LC in MP4', typ: 'audio\/mp4; codecs=\"mp4a.40.2\"' },\n        { id: 'he_aac', name: 'HE-AAC in MP4', typ: 'audio\/mp4; codecs=\"mp4a.40.5\"' },\n        { id: 'alac', name: 'ALAC in MP4', typ: 'audio\/mp4; codecs=\"alac\"' },\n        { id: 'vorbis_ogg', name: 'Vorbis in Ogg', typ: 'audio\/ogg; codecs=\"vorbis\"' },\n        { id: 'opus_ogg', name: 'Opus in Ogg', typ: 'audio\/ogg; codecs=\"opus\"' },\n        { id: 'opus_webm', name: 'Opus in WebM', typ: 'audio\/webm; codecs=\"opus\"' },\n        { id: 'vorbis_webm', name: 'Vorbis in WebM', typ: 'audio\/webm; codecs=\"vorbis\"' },\n        { id: 'ac3', name: 'AC-3 in MP4', typ: 'audio\/mp4; codecs=\"ac-3\"' },\n        { id: 'ec3', name: 'E-AC-3 in MP4', typ: 'audio\/mp4; codecs=\"ec-3\"' }\n    ];\n    var AUFNEHMEN = [\n        { id: 'webm_opus', name: 'Opus in WebM', typ: 'audio\/webm;codecs=opus' },\n        { id: 'webm', name: 'WebM (Vorgabe)', typ: 'audio\/webm' },\n        { id: 'ogg_opus', name: 'Opus in Ogg', typ: 'audio\/ogg;codecs=opus' },\n        { id: 'mp4_aac', name: 'AAC in MP4', typ: 'audio\/mp4;codecs=mp4a.40.2' },\n        { id: 'mp4', name: 'MP4 (Vorgabe)', typ: 'audio\/mp4' },\n        { id: 'wav', name: 'WAV (PCM)', typ: 'audio\/wav' },\n        { id: 'mpeg', name: 'MP3', typ: 'audio\/mpeg' }\n    ];<\/p>\n<p>    function pruefen(kannSpielen, quelleStuetzt, nimmtAuf) {\n        var abspielen = ABSPIELEN.map(function (f) {\n            var antwort = null;\n            if (kannSpielen) {\n                try { antwort = String(kannSpielen(f.typ) || ''); } catch (e) { antwort = null; }\n            }\n            var quelle = null;\n            if (quelleStuetzt) {\n                try { quelle = !!quelleStuetzt(f.typ); } catch (e) { quelle = null; }\n            }\n            return { id: f.id, name: f.name, typ: f.typ, element: antwort, quelle: quelle };\n        });\n        var aufnehmen = AUFNEHMEN.map(function (f) {\n            var kann = null;\n            if (nimmtAuf) {\n                try { kann = !!nimmtAuf(f.typ); } catch (e) { kann = null; }\n            }\n            return { id: f.id, name: f.name, typ: f.typ, kann: kann };\n        });\n        return { abspielen: abspielen, aufnehmen: aufnehmen };\n    }<\/p>\n<p>    function bewerten(e) {\n        var sicher = 0, vielleicht = 0, quelle = 0, aufnahme = 0, quelleBekannt = false, aufnahmeBekannt = false;\n        e.abspielen.forEach(function (z) {\n            if (z.element === 'probably') { sicher++; }\n            else if (z.element === 'maybe') { vielleicht++; }\n            if (z.quelle !== null) { quelleBekannt = true; if (z.quelle) { quelle++; } }\n        });\n        e.aufnehmen.forEach(function (z) {\n            if (z.kann !== null) { aufnahmeBekannt = true; if (z.kann) { aufnahme++; } }\n        });\n        return {\n            gesamt: e.abspielen.length, sicher: sicher, vielleicht: vielleicht, spielbar: sicher + vielleicht,\n            quelle: quelle, quelleBekannt: quelleBekannt, aufnahme: aufnahme, aufnahmeBekannt: aufnahmeBekannt,\n            aufnahmeGesamt: e.aufnehmen.length\n        };\n    }<\/p>\n<p>    function bericht(e) {\n        var zeilen = [T.h_abspielen];\n        e.abspielen.forEach(function (z) {\n            zeilen.push('  ' + z.name + ' (' + z.typ + '): ' + antwortText(z.element) + ' | MediaSource: ' + jaNein(z.quelle));\n        });\n        zeilen.push(T.h_aufnehmen);\n        e.aufnehmen.forEach(function (z) {\n            zeilen.push('  ' + z.name + ' (' + z.typ + '): ' + jaNein(z.kann));\n        });\n        return zeilen.join('\\n');\n    }\n    \/\/ KERN-ENDE --------------------------------------------------------------<\/p>\n<p>    function antwortText(a) {\n        if (a === 'probably') { return T.wert_probably; }\n        if (a === 'maybe') { return T.wert_maybe; }\n        if (a === '') { return T.wert_nein; }\n        return T.wert_unbekannt;\n    }\n    function jaNein(w) { return w === null ? T.wert_unbekannt : (w ? T.wert_ja : T.wert_nein); }\n    function klasse(a) {\n        if (a === 'probably' || a === true) { return 'cs-ja'; }\n        if (a === 'maybe') { return 'cs-vielleicht'; }\n        return 'cs-nein';\n    }\n    function text(schluessel, werte) {\n        return String(T[schluessel]).replace(\/\\{(\\w+)\\}\/g, function (m, k) { return werte && werte[k] !== undefined ? werte[k] : m; });\n    }\n    function el(id) { return document.getElementById(id); }<\/p>\n<p>    function kachel(name, wert) {\n        var d = document.createElement('div'), n = document.createElement('div'), w = document.createElement('div');\n        d.className = 'cs-kachel'; n.className = 'cs-kachel-name'; w.className = 'cs-kachel-wert';\n        n.textContent = name;\n        w.textContent = wert;\n        w.setAttribute('data-kachel', name);\n        d.appendChild(n); d.appendChild(w);\n        return d;\n    }<\/p>\n<p>    function darstellen(e) {\n        var z = bewerten(e);\n        var k = el('cs-kacheln');\n        k.textContent = '';\n        k.appendChild(kachel(T.k_spielbar, z.spielbar + ' \/ ' + z.gesamt));\n        k.appendChild(kachel(T.k_sicher, String(z.sicher)));\n        k.appendChild(kachel(T.k_quelle, z.quelleBekannt ? (z.quelle + ' \/ ' + z.gesamt) : T.wert_unbekannt));\n        k.appendChild(kachel(T.k_aufnahme, z.aufnahmeBekannt ? (z.aufnahme + ' \/ ' + z.aufnahmeGesamt) : T.wert_unbekannt));<\/p>\n<p>        var tb = el('cs-abspielen');\n        tb.textContent = '';\n        e.abspielen.forEach(function (zeile) {\n            var tr = document.createElement('tr');\n            [[zeile.name, ''], [zeile.typ, 'cs-typ'], [antwortText(zeile.element), klasse(zeile.element)], [jaNein(zeile.quelle), klasse(zeile.quelle)]]\n                .forEach(function (feld) {\n                    var td = document.createElement('td');\n                    td.textContent = feld[0];\n                    if (feld[1]) { td.className = feld[1]; }\n                    tr.appendChild(td);\n                });\n            tb.appendChild(tr);\n        });<\/p>\n<p>        var ta = el('cs-aufnehmen');\n        ta.textContent = '';\n        e.aufnehmen.forEach(function (zeile) {\n            var tr = document.createElement('tr');\n            [[zeile.name, ''], [zeile.typ, 'cs-typ'], [jaNein(zeile.kann), klasse(zeile.kann)]].forEach(function (feld) {\n                var td = document.createElement('td');\n                td.textContent = feld[0];\n                if (feld[1]) { td.className = feld[1]; }\n                tr.appendChild(td);\n            });\n            ta.appendChild(tr);\n        });\n        return e;\n    }<\/p>\n<p>    function messen() {\n        var audio = null;\n        try { audio = document.createElement('audio'); } catch (e) { audio = null; }\n        var kannSpielen = audio && audio.canPlayType ? function (t) { return audio.canPlayType(t); } : null;\n        var Quelle = window.MediaSource || window.WebKitMediaSource;\n        var quelleStuetzt = Quelle && Quelle.isTypeSupported ? function (t) { return Quelle.isTypeSupported(t); } : null;\n        var Rec = window.MediaRecorder;\n        var nimmtAuf = Rec && Rec.isTypeSupported ? function (t) { return Rec.isTypeSupported(t); } : null;\n        return pruefen(kannSpielen, quelleStuetzt, nimmtAuf);\n    }<\/p>\n<p>    window.LW_TEST = window.LW_TEST || {};\n    window.LW_TEST.CS = {\n        T: T, ABSPIELEN: ABSPIELEN, AUFNEHMEN: AUFNEHMEN, pruefen: pruefen, bewerten: bewerten, bericht: bericht,\n        darstellen: darstellen, messen: messen, antwortText: antwortText, jaNein: jaNein, text: text\n    };<\/p>\n<p>    if (!el('cs-wurzel') || !el('cs-kacheln')) { return; }\n    var ergebnis = darstellen(messen());\n    var kopieren = el('cs-kopieren'), kopiert = el('cs-kopiert');\n    if (kopieren) {\n        kopieren.addEventListener('click', function () {\n            var t = bericht(ergebnis);\n            function gut() { kopiert.textContent = T.kopiert; }\n            if (navigator.clipboard && navigator.clipboard.writeText) {\n                navigator.clipboard.writeText(t).then(gut, function () { kopiert.textContent = T.kopieren_fehler; });\n            } else {\n                kopiert.textContent = T.kopieren_fehler;\n            }\n        });\n    }\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fragt diesen Browser direkt, welche Audioformate er \u00fcber das Audio-Element abspielt, \u00fcber die Media Source Extensions streamt und mit dem MediaRecorder aufnimmt, und listet die Antwort je Container und Codec samt der Bedeutung von \u201ewahrscheinlich\u201c und \u201evielleicht\u201c.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92903],"class_list":["post-19928","page","type-page","status-publish","hentry","tag-music-production-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Fragt diesen Browser direkt, welche Audioformate er \u00fcber das Audio-Element abspielt, \u00fcber die Media Source Extensions streamt und mit dem MediaRecorder aufnimmt, und listet die Antwort je Container und Codec samt der Bedeutung von \u201ewahrscheinlich\u201c und \u201evielleicht\u201c.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/browser-audio-codec-support\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/browser-audio-codec-support\\\/\",\"name\":\"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-09-17T18:12:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/browser-audio-codec-support\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/browser-audio-codec-support\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/browser-audio-codec-support\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-2\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/","og_locale":"en_US","og_type":"article","og_title":"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt - Lukas Wojcik - Blog","og_description":"Fragt diesen Browser direkt, welche Audioformate er \u00fcber das Audio-Element abspielt, \u00fcber die Media Source Extensions streamt und mit dem MediaRecorder aufnimmt, und listet die Antwort je Container und Codec samt der Bedeutung von \u201ewahrscheinlich\u201c und \u201evielleicht\u201c.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/","og_site_name":"Lukas Wojcik - Blog","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/","name":"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-09-17T18:12:56+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/browser-audio-codec-support\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-2\/"},{"@type":"ListItem","position":3,"name":"Audio-Codecs im Browser pr\u00fcfen: welche Formate dieser Browser abspielt, streamt und aufnimmt"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/19928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=19928"}],"version-history":[{"count":0,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/19928\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9283"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=19928"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=19928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}