Skip to content

Instantly share code, notes, and snippets.

@wbamberg
Created October 15, 2021 00:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wbamberg/fdf49a295a131dee7fa70aa16f6d9a2d to your computer and use it in GitHub Desktop.
Save wbamberg/fdf49a295a131dee7fa70aa16f6d9a2d to your computer and use it in GitHub Desktop.

Report from 10/14/2021, 4:45:17 PM

All unhandled elements

  • tr (676)
  • th[scope="row"] (628)
  • table.standard-table (103)
  • td (77)
  • th[scope="col"] (60)
  • td[style="vertical-align: top;"] (47)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (16)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (15)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (10)
  • th[scope="row"][style="vertical-align: top;"] (7)
  • th[rowSpan="2"][scope="row"] (4)
  • th[scope="col"][style="vertical-align: bottom;"] (4)
  • table.standard-table[style="max-width: 42rem;"] (4)
  • td[rowSpan="2"][style="vertical-align: top;"] (3)
  • th[scope="col"][style="width: 216px;"] (3)
  • table.standard-table[style="margin-left: 4em; max-width: 30em;"] (2)
  • th[scope="col"][style="vertical-align: bottom; border-right: 2px solid #d4dde4;"] (2)
  • th[colSpan="3"][scope="col"][style="text-align: center; border-right: 2px solid #d4dde4;"] (1)
  • th[colSpan="3"][scope="col"][style="text-align: center;"] (1)
  • th[scope="row"][style="vertical-align: bottom;"] (1)
  • th[rowSpan="2"][scope="row"][style="vertical-align: top;"] (1)
  • th[colSpan="3"][style="font: italic 0.9em Arial, x-locale-body, sans-serif; vertical-align: middle;"] (1)
  • table.standard-table[style="max-width: 46em;"] (1)

Details per Document

Invalid AST transformations

tr (41:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name (short)</th>"
tr (48:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#aac_advanced_audio_coding\">AAC</a></th>"
tr (53:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#alac_apple_lossless_audio_codec\">ALAC</a></th>"
tr (58:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#amr_adaptive_multi-rate\">AMR</a></th>"
tr (63:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#flac_free_lossless_audio_codec\">FLAC</a></th>"
tr (68:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#g.711_pulse_code_modulation_of_voice_frequencies\">G.711</a></th>"
tr (73:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#g.722_64_kbps_7_khz_audio_coding\">G.722</a></th>"
td (81:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "When MPEG-1 Audio Layer III codec data is stored in an MPEG file, and there is no video track on the file, the file is typically referred to as an MP3 file, even though it's still an MPEG format file."
tr (78:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#mp3_mpeg-1_audio_layer_iii\">MP3</a></th>",type: "html"
value: "<td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#adts\">ADTS</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mpeg\">MPEG</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a><p>When MPEG-1 Audio Layer III codec data is stored in an MPEG file, and there is no video track on the file, the file is typically referred to as an MP3 file, even though it's still an MPEG format file.</p></td>"
tr (84:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#opus\">Opus</a></th>"
tr (89:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#vorbis\">Vorbis</a></th>"
table.standard-table (39:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name (short)</th><th scope=\"col\">Full codec name</th><th scope=\"col\">Container support</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#aac_advanced_audio_coding\">AAC</a></th><td>Advanced Audio Coding</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#adts\">ADTS</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#alac_apple_lossless_audio_codec\">ALAC</a></th><td>Apple Lossless Audio Codec</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#quicktime\">QuickTime</a> (MOV)</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#amr_adaptive_multi-rate\">AMR</a></th><td>Adaptive Multi-Rate</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#flac_free_lossless_audio_codec\">FLAC</a></th><td>Free Lossless Audio Codec</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#flac\">FLAC</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#g.711_pulse_code_modulation_of_voice_frequencies\">G.711</a></th><td>Pulse Code Modulation (PCM) of Voice Frequencies</td><td>{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#g.722_64_kbps_7_khz_audio_coding\">G.722</a></th><td>7 kHz Audio Coding Within 64 kbps (for telephony/{{R2xvc3NhcnkoIlZvSVAiKQ==}})</td><td>{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#mp3_mpeg-1_audio_layer_iii\">MP3</a></th><td>MPEG-1 Audio Layer III</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#adts\">ADTS</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mpeg\">MPEG</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a><p>When MPEG-1 Audio Layer III codec data is stored in an MPEG file, and there is no video track on the file, the file is typically referred to as an MP3 file, even though it's still an MPEG format file.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#opus\">Opus</a></th><td>Opus</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#vorbis\">Vorbis</a></th><td>Vorbis</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a></td></tr>"
tr (110:3) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (117:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#Audio_data_format_and_structure\">Channel count</a></th>"
tr (122:3) => tableRow
type: "html"
value: "<th scope=\"row\">Noise / Hiss</th>"
tr (127:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#Sampling_audio\">Sample rate</a></th>"
tr (132:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#Audio_data_format_and_structure\">Sample size</a></th>"
table.standard-table (107:1) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Effect on quality</th><th scope=\"col\">Effect on size</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#Audio_data_format_and_structure\">Channel count</a></th><td>The number of channels affects only the perception of directionality, not the quality.</td><td>Each channel may substantially increase the encoded audio size, depending on contents and encoder settings.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Noise / Hiss</th><td>Unwanted background noise or hiss tends to reduce audio quality both directly (by masking details of the foreground audio) and indirectly (by making the audio waveform more complicated and therefore difficult to reduce in size while maintaining precision).</td><td>Hiss, static, or background noise increases the audio complexity, which generally reduces the amount of compression which is possible.</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#Sampling_audio\">Sample rate</a></th><td>The more samples available per second, the higher the resulting encoded audio fidelity is likely to be.</td><td>Increasing the sample rate increases the encoded audio file's size.</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#Audio_data_format_and_structure\">Sample size</a></th><td>The larger the samples, the more detail each sample can contain, resulting in more accurate representation of each sample.</td><td>Depends on the codec; codecs typically have an internal sample format that may or may not be the same as the original sample size. But more source detail may make the encoded file larger; it will never make it smaller.</td></tr>"
tr (151:3) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (158:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#lossy_vs_lossless_compression\">Lossless compression</a></th>"
tr (163:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#lossy_vs_lossless_compression\">Lossy compression</a></th>"
tr (168:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#quality\">Quality setting</a></th>"
tr (173:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#bit_rate\">Bit rate</a></th>"
tr (178:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#audio_frequency_bandwidth\">Audio frequency bandwidth</a></th>"
tr (183:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#stereo_coding_method\">Stereo coding</a></th>"
table.standard-table (148:1) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Effect on quality</th><th scope=\"col\">Effect on size</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#lossy_vs_lossless_compression\">Lossless compression</a></th><td>No loss of fidelity</td><td>Unlikely to get more than 40-50% compression</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#lossy_vs_lossless_compression\">Lossy compression</a></th><td>Always some loss of fidelity; the higher the compression, the more the loss</td><td>Compression of up to 80-95% possible</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#quality\">Quality setting</a></th><td>The higher the quality, the better the fidelity of the encoded audio</td><td>The higher the fidelity, the larger the resulting file becomes, though the amount of change varies from codec to codec</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#bit_rate\">Bit rate</a></th><td>The higher the bit rate, the higher the quality can be</td><td>The higher the bit rate, the larger the encoded file is likely to be</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#audio_frequency_bandwidth\">Audio frequency bandwidth</a></th><td>If there is any audio in the removed frequency band(s), there may be a noticeable loss of fidelity</td><td>Removing frequency bands means less data to encode, thus smaller encoded files</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#stereo_coding_method\">Stereo coding</a></th><td>Simple stereo and <a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#mid-side_stereo_coding\">mid-side stereo coding</a> don't affect quality; <a href=\"/en-US/docs/Web/Media/Formats/Audio_concepts#intensity_stereo_coding\">intensity stereo coding</a> introduces loss of detail, however.</td><td>Joint stereo can reduce the size of the encoded audio to some extent</td></tr>"
tr (237:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Arbitrary, up to 512 kbps</td>"
tr (241:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (245:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (249:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (253:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (257:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (261:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (265:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency  bandwidth</th>"
tr (270:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (279:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (288:7) => tableRow
type: "html"
value: "<th scope=\"row\">AAC support</th>"
table.standard-table (277:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AAC support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>9</td><td>Yes</td><td>3.1</td></tr>"
td (276:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "Due to patent issues, Firefox does not directly support AAC. Instead, Firefox relies upon a platform's native support for AAC. This capability was introduced on each platform in different Firefox releases:",type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "Chrome supports AAC only in MP4 containers, and only supports AAC's Main Profile. In addition, AAC is not available in Chromium builds."
tr (274:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AAC support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>9</td><td>Yes</td><td>3.1</td></tr></tbody></table><p>Due to patent issues, Firefox does not directly support AAC. Instead, Firefox relies upon a platform's native support for AAC. This capability was introduced on each platform in different Firefox releases:</p><p>Chrome supports AAC only in MP4 containers, and only supports AAC's Main Profile. In addition, AAC is not available in Chromium builds.</p></td>"
tr (303:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (307:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (311:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (235:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Arbitrary, up to 512 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>32-bit integer</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>8 kHz - 96 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>96 kbps at 48 kHz sample rate</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>48 (plus 16 Low Frequency Enhancement channels)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency  bandwidth</th><td>0 Hz - 96 kHz (standard audio channels)<br>0 Hz - 120 Hz (LFE channels)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>20 ms to 405 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AAC support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>9</td><td>Yes</td><td>3.1</td></tr></tbody></table><p>Due to patent issues, Firefox does not directly support AAC. Instead, Firefox relies upon a platform's native support for AAC. This capability was introduced on each platform in different Firefox releases:</p><p>Chrome supports AAC only in MP4 containers, and only supports AAC's Main Profile. In addition, AAC is not available in Chromium builds.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>MP4, ADTS, 3GP</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>For streaming or distributing AAC-encoded content: no license required; developers of codecs are required to obtain a patent license through <a href=\"https://www.via-corp.com/licensing/aac/\">VIA Licensing</a></td></tr>"
tr (357:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Based on the sample format and sample rate, as well as the compression level</td>"
tr (361:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (365:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (369:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (373:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (377:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (381:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (385:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency bandwidth</th>"
tr (389:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (398:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (407:7) => tableRow
type: "html"
value: "<th scope=\"row\">ALAC support</th>"
table.standard-table (396:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">ALAC support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr>"
tr (393:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (420:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (424:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (428:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (355:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Based on the sample format and sample rate, as well as the compression level</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>16-bit, 20-bit, 24-bit, and 32-bit integer</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>1 Hz to 384,000 Hz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>n/a</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless; up to 45-60%</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>8 (up to 7.1 surround)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency bandwidth</th><td>?</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>?</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">ALAC support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>MP4</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Open license (Apache License 2.0); <a href=\"https://github.com/macosforge/alac\">source code available on GitHub</a></td></tr>"
tr (445:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td><strong>Half Rate (HR) and Full Rate (FR):</strong> 1.8 kbps, 4.75 kbps, 5.15 kbpz, 5.9 kbps, 6.7 kbps, 7.4 kbps, 7.95 kbps</td>"
tr (452:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (456:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (460:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (464:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (468:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (472:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (476:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency  bandwidth</th>"
tr (480:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (489:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (498:7) => tableRow
type: "html"
value: "<th scope=\"row\">AMR support</th>"
table.standard-table (487:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AMR support</th><td>No</td><td>?</td><td>No</td><td>?</td><td>No</td><td>?</td></tr>"
td (486:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 10
shouldWrap: true
children: 
  type: "text"
  value: "While the Chrome browser does not support AMR, Chrome OS supports AMR-NB (narrowband) and AMR-WB (wideband)."
tr (484:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AMR support</th><td>No</td><td>?</td><td>No</td><td>?</td><td>No</td><td>?</td></tr></tbody></table><p>While the Chrome browser does not support AMR, Chrome OS supports AMR-NB (narrowband) and AMR-WB (wideband).</p></td>"
tr (512:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (516:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (520:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (443:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\">Supported bit rates</th><td><strong>Half Rate (HR) and Full Rate (FR):</strong> 1.8 kbps, 4.75 kbps, 5.15 kbpz, 5.9 kbps, 6.7 kbps, 7.4 kbps, 7.95 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>13-bit integer</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>8 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>n/a</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>1</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency  bandwidth</th><td>200 Hz to 3,400 Hz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>25 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AMR support</th><td>No</td><td>?</td><td>No</td><td>?</td><td>No</td><td>?</td></tr></tbody></table><p>While the Chrome browser does not support AMR, Chrome OS supports AMR-NB (narrowband) and AMR-WB (wideband).</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>AMR, 3GPP</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Non-free; license fees and annual royalties apply. See <a href=\"http://www.voiceage.com/Overview-lic.html\">VoiceAge licensing</a> for details</td></tr>"
tr (535:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>—</td>"
tr (539:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (543:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (547:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (551:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (555:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (559:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (563:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency  bandwidth</th>"
tr (567:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (576:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (585:7) => tableRow
type: "html"
value: "<th scope=\"row\">FLAC support</th>"
table.standard-table (574:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">FLAC support</th><td>Yes</td><td>Yes</td><td>51 (desktop)<br>58 (mobile)</td><td>No</td><td>No</td><td>11</td></tr>"
tr (571:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (599:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (603:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (607:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (533:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>—</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>4-bit to 24-bit integers</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>1 Hz to 65,535 Hz (in 1 Hz increments) or 10 Hz to 655,350 Hz in 10 Hz increments</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>—</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless; up to 40-50% size reduction</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>8</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency  bandwidth</th><td>Full-spectrum</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>4.3 ms to 92 ms with 46.4 ms being the typical average</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">FLAC support</th><td>Yes</td><td>Yes</td><td>51 (desktop)<br>58 (mobile)</td><td>No</td><td>No</td><td>11</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>MP4, Ogg, FLAC</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Fully open and free of any licensing requirements</td></tr>"
tr (624:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>64 kbps</td>"
tr (628:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (632:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (636:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (640:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (644:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (648:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (652:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency bandwidth</th>"
tr (656:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (665:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (674:7) => tableRow
type: "html"
value: "<th scope=\"row\">G.711 support</th>"
table.standard-table (663:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">G.711 support</th><td>23</td><td>15</td><td>22</td><td>No</td><td>43</td><td>11</td></tr>"
td (662:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "G.711 is supported only for WebRTC connections."
tr (660:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">G.711 support</th><td>23</td><td>15</td><td>22</td><td>No</td><td>43</td><td>11</td></tr></tbody></table><p>G.711 is supported only for WebRTC connections.</p></td>"
tr (688:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (692:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (696:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (622:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>64 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>encoded audio is 8 bits per sample</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>8 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>128 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Logarithmic companding (µ-law or A-law)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>2</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency bandwidth</th><td>300 Hz – 3400 Hz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>0.125 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">G.711 support</th><td>23</td><td>15</td><td>22</td><td>No</td><td>43</td><td>11</td></tr></tbody></table><p>G.711 is supported only for WebRTC connections.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>3GP, WAV</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>All applicable patents have expired, so G.711 is free to use without restriction</td></tr>"
tr (713:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>G.722: 48 kbps, 56 kbps, and 64 kbps; however, in practice 64 kbps is always used<br>G.722 Annex B Super Wide-Band: 64 kbps, 80 kbps, and 96 kbps<br>G.722 Annex D Stereo Wide-Band: 64 kbps and 80 kbps<br>G.722 Annex D Stereo Super Wide-Band: 80 kbps, 96 kbps, 112 kbps, and 128 kbps</td>"
tr (720:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (724:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (728:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (732:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (736:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (740:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (744:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency bandwidth</th>"
tr (748:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (757:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (766:7) => tableRow
type: "html"
value: "<th scope=\"row\">G.722 support</th>"
table.standard-table (755:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">G.722 support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>No</td><td>Yes</td><td>Yes</td></tr>"
td (754:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "WebRTC only."
tr (752:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">G.722 support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>No</td><td>Yes</td><td>Yes</td></tr></tbody></table><p>WebRTC only.</p></td>"
tr (780:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (784:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (788:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (711:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>G.722: 48 kbps, 56 kbps, and 64 kbps; however, in practice 64 kbps is always used<br>G.722 Annex B Super Wide-Band: 64 kbps, 80 kbps, and 96 kbps<br>G.722 Annex D Stereo Wide-Band: 64 kbps and 80 kbps<br>G.722 Annex D Stereo Super Wide-Band: 80 kbps, 96 kbps, 112 kbps, and 128 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>14-bit integer</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>16 kHz (ADPCM is specified to allow 8 kHz, 11.025 kHz, 22.05 kHz, 44.1 kHz, but G.722 uses 16 kHz)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>128 kbps at 44.1 kHz sample rate</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>2</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency bandwidth</th><td>50 Hz - 7 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>4 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">G.722 support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>No</td><td>Yes</td><td>Yes</td></tr></tbody></table><p>WebRTC only.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>3GP, AMR-WB</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>All applicable patents have expired; G.722 is free to use without restriction</td></tr>"
tr (807:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td><strong>MPEG-1 mode:</strong> 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</td>"
tr (814:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (818:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (822:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\">Supported sample rates</th>"
tr (829:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (833:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (837:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\">Maximum audio channels</th>"
tr (844:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency bandwidth</th>"
tr (848:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (857:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (866:7) => tableRow
type: "html"
value: "<th scope=\"row\">MP3 support</th>"
table.standard-table (855:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">MP3 support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>9</td><td>Yes</td><td>3.1</td></tr>"
tr (852:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (879:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (883:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (887:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (805:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\">Supported bit rates</th><td><strong>MPEG-1 mode:</strong> 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</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>16-bit integer</td></tr>",type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\">Supported sample rates</th><td><strong>MPEG-1 mode:</strong> 32000 Hz, 44100 Hz, 48000 Hz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>128 kbps at 48 kHz sample rate</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy</td></tr>",type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\">Maximum audio channels</th><td><strong>MPEG-1 mode:</strong> 2 [2.0]</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency bandwidth</th><td>Varies, depending on bit rate and psychoacoustic analysis</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>At least 100 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">MP3 support</th><td>Yes</td><td>Yes</td><td>Yes</td><td>9</td><td>Yes</td><td>3.1</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>MPEG-1, MPEG-2, MP4, ADTS, 3GP</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Patent-free in the EU as of 2012; patent-free in the United States as of April 16, 2017; now free to use</td></tr>"
tr (935:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>6 kbps - 510 kbps</td>"
tr (939:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (943:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (952:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile</th>"
tr (956:7) => tableRow
type: "html"
value: "<th scope=\"row\">Narrowband (NB)</th>"
tr (960:7) => tableRow
type: "html"
value: "<th scope=\"row\">Medium band (MB)</th>"
tr (964:7) => tableRow
type: "html"
value: "<th scope=\"row\">Wideband (WB)</th>"
tr (968:7) => tableRow
type: "html"
value: "<th scope=\"row\">Super Wideband (SWB)</th>"
tr (972:7) => tableRow
type: "html"
value: "<th scope=\"row\">Fullband (FB)</th>"
table.standard-table (950:5) => table
type: "html"
value: "<tr><th scope=\"row\">Profile</th><th scope=\"col\">Effective sample rate</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Narrowband (NB)</th><td>8 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Medium band (MB)</th><td>12 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Wideband (WB)</th><td>16 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Super Wideband (SWB)</th><td>24 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Fullband (FB)</th><td>48 kHz</td></tr>"
td (949:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 3
shouldWrap: true
children: 
  type: "text"
  value: "The specified sample rates are "
  type: "emphasis"
  children: 
    type: "text"
    value: "effective sample rates"
  type: "text"
  value: ". Opus uses an algorithm based on audio bandwidths rather than sample rates. See {{UkZDKDY3MTYsICIiLCAyKQ==}} for details. In addition, there is an "
  type: "emphasis"
  children: 
    type: "text"
    value: "optional"
  type: "text"
  value: " part of the Opus specification (Opus Custom) that does allow for non-standard sample rates, but the use of this feature is discouraged."
tr (947:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Profile</th><th scope=\"col\">Effective sample rate</th></tr><tr><th scope=\"row\">Narrowband (NB)</th><td>8 kHz</td></tr><tr><th scope=\"row\">Medium band (MB)</th><td>12 kHz</td></tr><tr><th scope=\"row\">Wideband (WB)</th><td>16 kHz</td></tr><tr><th scope=\"row\">Super Wideband (SWB)</th><td>24 kHz</td></tr><tr><th scope=\"row\">Fullband (FB)</th><td>48 kHz</td></tr></tbody></table><p>The specified sample rates are <em>effective sample rates</em>. Opus uses an algorithm based on audio bandwidths rather than sample rates. See {{UkZDKDY3MTYsICIiLCAyKQ==}} for details. In addition, there is an <em>optional</em> part of the Opus specification (Opus Custom) that does allow for non-standard sample rates, but the use of this feature is discouraged.</p></td>"
tr (981:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (985:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (989:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (998:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile</th>"
tr (1004:7) => tableRow
type: "html"
value: "<th scope=\"row\">Narrowband (NB)</th>"
tr (1008:7) => tableRow
type: "html"
value: "<th scope=\"row\">Medium band (MB)</th>"
tr (1012:7) => tableRow
type: "html"
value: "<th scope=\"row\">Wideband (WB)</th>"
tr (1016:7) => tableRow
type: "html"
value: "<th scope=\"row\">Super Wideband (SWB)</th>"
tr (1020:7) => tableRow
type: "html"
value: "<th scope=\"row\">Fullband (FB)</th>"
table.standard-table (996:5) => table
type: "html"
value: "<tr><th scope=\"row\">Profile</th><th scope=\"col\">Audio bandwidth</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Narrowband (NB)</th><td>4 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Medium band (MB)</th><td>6 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Wideband (WB)</th><td>8 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Super Wideband (SWB)</th><td>12 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Fullband (FB)</th><td>20 kHz</td></tr>"
td (995:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Although the {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiTnlxdWlzdOKAk1NoYW5ub24gc2FtcGxpbmcgdGhlb3JlbSIp}} shows that audio bandwidth can be as much as one half of the sampling rate, Opus doesn't allow encoding outside a maximum 20 kHz audio frequency band, since the human ear can't percieve anything above the 20 kHz point anyway. This saves some space in the encoded audio."
tr (993:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency bandwidth</th>",type: "html"
value: "<td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Profile</th><th scope=\"col\">Audio bandwidth</th></tr></thead><tbody><tr><th scope=\"row\">Narrowband (NB)</th><td>4 kHz</td></tr><tr><th scope=\"row\">Medium band (MB)</th><td>6 kHz</td></tr><tr><th scope=\"row\">Wideband (WB)</th><td>8 kHz</td></tr><tr><th scope=\"row\">Super Wideband (SWB)</th><td>12 kHz</td></tr><tr><th scope=\"row\">Fullband (FB)</th><td>20 kHz</td></tr></tbody></table><p>Although the {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiTnlxdWlzdOKAk1NoYW5ub24gc2FtcGxpbmcgdGhlb3JlbSIp}} shows that audio bandwidth can be as much as one half of the sampling rate, Opus doesn't allow encoding outside a maximum 20 kHz audio frequency band, since the human ear can't percieve anything above the 20 kHz point anyway. This saves some space in the encoded audio.</p></td>"
tr (1029:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (1038:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1047:7) => tableRow
type: "html"
value: "<th scope=\"row\">Opus support</th>"
table.standard-table (1036:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Opus support</th><td>33</td><td>14</td><td>15</td><td>No</td><td>20</td><td>11</td></tr>"
td (1035:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "This information refers to support for Opus in HTML {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} and {{SFRNTEVsZW1lbnQoInZpZGVvIik=}} elements, and not to WebRTC.",type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "Safari supports Opus in the {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} element only when packaged in a CAF file, and only on macOS High Sierra (10.13) or iOS 11."
tr (1033:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Opus support</th><td>33</td><td>14</td><td>15</td><td>No</td><td>20</td><td>11</td></tr></tbody></table><p>This information refers to support for Opus in HTML {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} and {{SFRNTEVsZW1lbnQoInZpZGVvIik=}} elements, and not to WebRTC.</p><p>Safari supports Opus in the {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} element only when packaged in a CAF file, and only on macOS High Sierra (10.13) or iOS 11.</p></td>"
tr (1063:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1067:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1071:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (933:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>6 kbps - 510 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>16-bit integer and 32-bit float (-1.0 to 1.0)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Profile</th><th scope=\"col\">Effective sample rate</th></tr><tr><th scope=\"row\">Narrowband (NB)</th><td>8 kHz</td></tr><tr><th scope=\"row\">Medium band (MB)</th><td>12 kHz</td></tr><tr><th scope=\"row\">Wideband (WB)</th><td>16 kHz</td></tr><tr><th scope=\"row\">Super Wideband (SWB)</th><td>24 kHz</td></tr><tr><th scope=\"row\">Fullband (FB)</th><td>48 kHz</td></tr></tbody></table><p>The specified sample rates are <em>effective sample rates</em>. Opus uses an algorithm based on audio bandwidths rather than sample rates. See {{UkZDKDY3MTYsICIiLCAyKQ==}} for details. In addition, there is an <em>optional</em> part of the Opus specification (Opus Custom) that does allow for non-standard sample rates, but the use of this feature is discouraged.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>96 kbps at 48 kHz sample rate</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>255 (up to 1 LFE channel)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency bandwidth</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Profile</th><th scope=\"col\">Audio bandwidth</th></tr></thead><tbody><tr><th scope=\"row\">Narrowband (NB)</th><td>4 kHz</td></tr><tr><th scope=\"row\">Medium band (MB)</th><td>6 kHz</td></tr><tr><th scope=\"row\">Wideband (WB)</th><td>8 kHz</td></tr><tr><th scope=\"row\">Super Wideband (SWB)</th><td>12 kHz</td></tr><tr><th scope=\"row\">Fullband (FB)</th><td>20 kHz</td></tr></tbody></table><p>Although the {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiTnlxdWlzdOKAk1NoYW5ub24gc2FtcGxpbmcgdGhlb3JlbSIp}} shows that audio bandwidth can be as much as one half of the sampling rate, Opus doesn't allow encoding outside a maximum 20 kHz audio frequency band, since the human ear can't percieve anything above the 20 kHz point anyway. This saves some space in the encoded audio.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>5 ms to 66.5 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Opus support</th><td>33</td><td>14</td><td>15</td><td>No</td><td>20</td><td>11</td></tr></tbody></table><p>This information refers to support for Opus in HTML {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} and {{SFRNTEVsZW1lbnQoInZpZGVvIik=}} elements, and not to WebRTC.</p><p>Safari supports Opus in the {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} element only when packaged in a CAF file, and only on macOS High Sierra (10.13) or iOS 11.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>Ogg, WebM, MPEG-TS, MP4</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Fully open and free of any licensing requirements</td></tr>"
tr (1086:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>45 kbps - 500 kbps</td>"
tr (1090:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Bit Rate (VBR) support</th>"
tr (1094:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample formats</th>"
tr (1098:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported sample rates</th>"
tr (1102:3) => tableRow
type: "html"
value: "<th scope=\"row\">Recommended minimum bit rate for stereo sound</th>"
tr (1106:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1110:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum audio channels</th>"
tr (1114:3) => tableRow
type: "html"
value: "<th scope=\"row\">Audio frequency bandwidth</th>"
tr (1118:3) => tableRow
type: "html"
value: "<th scope=\"row\">Latency</th>"
tr (1127:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1136:7) => tableRow
type: "html"
value: "<th scope=\"row\">Vorbis support</th>"
table.standard-table (1125:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Vorbis support</th><td>4</td><td>17</td><td>3.5</td><td>No</td><td>11.5</td><td>No</td></tr>"
td (1124:4) => tableCell
type: "paragraph"
summary: "In this article, we look at audio codecs used on the web to compress and decompress audio, what their capabilities and use cases are, and offer guidance when choosing audio codecs to use for your content."
locale: "en-US"
rowIndex: 9
shouldWrap: true
children: 
  type: "text"
  value: "This information refers to support for Vorbis in HTML {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} and {{SFRNTEVsZW1lbnQoInZpZGVvIik=}} elements, and not to WebRTC."
tr (1122:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Vorbis support</th><td>4</td><td>17</td><td>3.5</td><td>No</td><td>11.5</td><td>No</td></tr></tbody></table><p>This information refers to support for Vorbis in HTML {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} and {{SFRNTEVsZW1lbnQoInZpZGVvIik=}} elements, and not to WebRTC.</p></td>"
tr (1151:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1155:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1159:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1084:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>45 kbps - 500 kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Bit Rate (VBR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample formats</th><td>16-bit integer</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported sample rates</th><td>8 kHz - 192 kHz</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Recommended minimum bit rate for stereo sound</th><td>192 kbps at 48 kHz; this is typically accomplished by setting the quality level to 6 to 8.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum audio channels</th><td>255</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Audio frequency bandwidth</th><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Latency</th><td>At least 100 ms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Vorbis support</th><td>4</td><td>17</td><td>3.5</td><td>No</td><td>11.5</td><td>No</td></tr></tbody></table><p>This information refers to support for Vorbis in HTML {{SFRNTEVsZW1lbnQoImF1ZGlvIik=}} and {{SFRNTEVsZW1lbnQoInZpZGVvIik=}} elements, and not to WebRTC.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>Ogg, WebM</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Fully open and free of any licensing requirements</td></tr>"

Missing conversion rules

  • th[scope="row"] (42:4)
  • th[scope="row"] (49:4)
  • th[scope="row"] (54:4)
  • th[scope="row"] (59:4)
  • th[scope="row"] (64:4)
  • th[scope="row"] (69:4)
  • th[scope="row"] (74:4)
  • th[scope="row"] (79:4)
  • th[scope="row"] (85:4)
  • th[scope="row"] (90:4)
  • th[scope="row"] (111:4)
  • th[scope="row"] (118:4)
  • th[scope="row"] (123:4)
  • th[scope="row"] (128:4)
  • th[scope="row"] (133:4)
  • th[scope="row"] (152:4)
  • th[scope="row"] (159:4)
  • th[scope="row"] (164:4)
  • th[scope="row"] (169:4)
  • th[scope="row"] (174:4)
  • th[scope="row"] (179:4)
  • th[scope="row"] (184:4)
  • th[scope="row"] (238:4)
  • td (239:4)
  • th[scope="row"] (242:4)
  • th[scope="row"] (246:4)
  • th[scope="row"] (250:4)
  • th[scope="row"] (254:4)
  • th[scope="row"] (258:4)
  • th[scope="row"] (262:4)
  • th[scope="row"] (266:4)
  • th[scope="row"] (271:4)
  • th[scope="row"] (275:4)
  • th[scope="row"] (280:8)
  • th[scope="row"] (289:8)
  • th[scope="row"] (304:4)
  • th[scope="row"] (308:4)
  • th[scope="row"] (312:4)
  • table.standard-table[style="margin-left: 4em; max-width: 30em;"] (318:1)
  • th[scope="row"] (358:4)
  • td (359:4)
  • th[scope="row"] (362:4)
  • th[scope="row"] (366:4)
  • th[scope="row"] (370:4)
  • th[scope="row"] (374:4)
  • th[scope="row"] (378:4)
  • th[scope="row"] (382:4)
  • th[scope="row"] (386:4)
  • th[scope="row"] (390:4)
  • th[scope="row"] (394:4)
  • th[scope="row"] (399:8)
  • th[scope="row"] (408:8)
  • th[scope="row"] (421:4)
  • th[scope="row"] (425:4)
  • th[scope="row"] (429:4)
  • th[rowSpan="2"][scope="row"] (446:4)
  • td (447:4)
  • th[scope="row"] (453:4)
  • th[scope="row"] (457:4)
  • th[scope="row"] (461:4)
  • th[scope="row"] (465:4)
  • th[scope="row"] (469:4)
  • th[scope="row"] (473:4)
  • th[scope="row"] (477:4)
  • th[scope="row"] (481:4)
  • th[scope="row"] (485:4)
  • th[scope="row"] (490:8)
  • th[scope="row"] (499:8)
  • th[scope="row"] (513:4)
  • th[scope="row"] (517:4)
  • th[scope="row"] (521:4)
  • th[scope="row"] (536:4)
  • td (537:4)
  • th[scope="row"] (540:4)
  • th[scope="row"] (544:4)
  • th[scope="row"] (548:4)
  • th[scope="row"] (552:4)
  • th[scope="row"] (556:4)
  • th[scope="row"] (560:4)
  • th[scope="row"] (564:4)
  • th[scope="row"] (568:4)
  • th[scope="row"] (572:4)
  • th[scope="row"] (577:8)
  • th[scope="row"] (586:8)
  • th[scope="row"] (600:4)
  • th[scope="row"] (604:4)
  • th[scope="row"] (608:4)
  • th[scope="row"] (625:4)
  • td (626:4)
  • th[scope="row"] (629:4)
  • th[scope="row"] (633:4)
  • th[scope="row"] (637:4)
  • th[scope="row"] (641:4)
  • th[scope="row"] (645:4)
  • th[scope="row"] (649:4)
  • th[scope="row"] (653:4)
  • th[scope="row"] (657:4)
  • th[scope="row"] (661:4)
  • th[scope="row"] (666:8)
  • th[scope="row"] (675:8)
  • th[scope="row"] (689:4)
  • th[scope="row"] (693:4)
  • th[scope="row"] (697:4)
  • th[scope="row"] (714:4)
  • td (715:4)
  • th[scope="row"] (721:4)
  • th[scope="row"] (725:4)
  • th[scope="row"] (729:4)
  • th[scope="row"] (733:4)
  • th[scope="row"] (737:4)
  • th[scope="row"] (741:4)
  • th[scope="row"] (745:4)
  • th[scope="row"] (749:4)
  • th[scope="row"] (753:4)
  • th[scope="row"] (758:8)
  • th[scope="row"] (767:8)
  • th[scope="row"] (781:4)
  • th[scope="row"] (785:4)
  • th[scope="row"] (789:4)
  • th[rowSpan="2"][scope="row"] (808:4)
  • td (809:4)
  • th[scope="row"] (815:4)
  • th[scope="row"] (819:4)
  • th[rowSpan="2"][scope="row"] (823:4)
  • th[scope="row"] (830:4)
  • th[scope="row"] (834:4)
  • th[rowSpan="2"][scope="row"] (838:4)
  • th[scope="row"] (845:4)
  • th[scope="row"] (849:4)
  • th[scope="row"] (853:4)
  • th[scope="row"] (858:8)
  • th[scope="row"] (867:8)
  • th[scope="row"] (880:4)
  • th[scope="row"] (884:4)
  • th[scope="row"] (888:4)
  • table.standard-table[style="margin-left: 4em; max-width: 30em;"] (896:1)
  • th[scope="row"] (936:4)
  • td (937:4)
  • th[scope="row"] (940:4)
  • th[scope="row"] (944:4)
  • th[scope="row"] (948:4)
  • th[scope="row"] (953:8)
  • th[scope="row"] (957:8)
  • th[scope="row"] (961:8)
  • th[scope="row"] (965:8)
  • th[scope="row"] (969:8)
  • th[scope="row"] (973:8)
  • th[scope="row"] (982:4)
  • th[scope="row"] (986:4)
  • th[scope="row"] (990:4)
  • th[scope="row"] (994:4)
  • th[scope="row"] (999:8)
  • th[scope="row"] (1005:8)
  • th[scope="row"] (1009:8)
  • th[scope="row"] (1013:8)
  • th[scope="row"] (1017:8)
  • th[scope="row"] (1021:8)
  • th[scope="row"] (1030:4)
  • th[scope="row"] (1034:4)
  • th[scope="row"] (1039:8)
  • th[scope="row"] (1048:8)
  • th[scope="row"] (1064:4)
  • th[scope="row"] (1068:4)
  • th[scope="row"] (1072:4)
  • th[scope="row"] (1087:4)
  • td (1088:4)
  • th[scope="row"] (1091:4)
  • th[scope="row"] (1095:4)
  • th[scope="row"] (1099:4)
  • th[scope="row"] (1103:4)
  • th[scope="row"] (1107:4)
  • th[scope="row"] (1111:4)
  • th[scope="row"] (1115:4)
  • th[scope="row"] (1119:4)
  • th[scope="row"] (1123:4)
  • th[scope="row"] (1128:8)
  • th[scope="row"] (1137:8)
  • th[scope="row"] (1152:4)
  • th[scope="row"] (1156:4)
  • th[scope="row"] (1160:4)

Invalid AST transformations

td (95:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 1
shouldWrap: true
children: 
  type: "text"
  value: "The one-digit profile number:",type: "table"
children: 
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Profile number"
    type: "tableCell"
    children: 
      type: "text"
      value: "Description"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "\"Main\" profile; supports YUV 4:2:0 or monochrome bitstreams with bit depth of 8 or 10 bits per component."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "\"High\" profile adds support for 4:4:4 chroma subsampling."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "2"
    type: "tableCell"
    children: 
      type: "text"
      value: "\"Professional\" profile adds support for 4:2:2 chroma subsampling and 12 bit per component color."
tr (93:3) => tableRow
type: "html"
value: "<td><p>The one-digit profile number:</p><table class=\"standard-table\"><caption>AV1 profile numbers</caption><thead><tr><th scope=\"col\">Profile number</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><td>0</td><td>\"Main\" profile; supports YUV 4:2:0 or monochrome bitstreams with bit depth of 8 or 10 bits per component.</td></tr><tr><td>1</td><td>\"High\" profile adds support for 4:4:4 chroma subsampling.</td></tr><tr><td>2</td><td>\"Professional\" profile adds support for 4:2:2 chroma subsampling and 12 bit per component color.</td></tr></tbody></table></td>"
td (141:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "inlineCode"
  value: "CCC"
  type: "text"
  value: " indicates the chroma subsampling as three digits. The first digit is "
  type: "inlineCode"
  value: "subsampling_x"
  type: "text"
  value: ", the second is "
  type: "inlineCode"
  value: "subsampling_y"
  type: "text"
  value: ". If both of those are 1, the third is the value of "
  type: "inlineCode"
  value: "chroma_sample_position"
  type: "text"
  value: "; otherwise, the third digit is always 0. This, combined with the "
  type: "inlineCode"
  value: "M"
  type: "text"
  value: " component, can be used to construct the chroma subsampling format:",type: "table"
children: 
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "subsampling_x"
    type: "tableCell"
    children: 
      type: "text"
      value: "subsampling_y"
    type: "tableCell"
    children: 
      type: "text"
      value: "Monochrome flag"
    type: "tableCell"
    children: 
      type: "text"
      value: "Chroma subsampling format"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "YUV 4:4:4"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "YUV 4:2:2"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "0"
    type: "tableCell"
    children: 
      type: "text"
      value: "YUV 4:2:0"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 4
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "1"
    type: "tableCell"
    children: 
      type: "text"
      value: "YUV 4:0:0 (Monochrome)",type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "The third digit in "
  type: "inlineCode"
  value: "CCC"
  type: "text"
  value: " indicates the chroma sample position, with a value of 0 indicating that the position is unknown and must be separately provided during decoding; a value of 1 indicating that the sample position is horizontally colocated with the (0, 0) luma sample; and a value of 2 indicating that the sample position is colocated with (0, 0) luma.",type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "The default value is "
  type: "inlineCode"
  value: "110"
  type: "text"
  value: " (4:2:0 chroma subsampling)."
tr (139:3) => tableRow
type: "html"
value: "<td><p><code>CCC</code> indicates the chroma subsampling as three digits. The first digit is <code>subsampling_x</code>, the second is <code>subsampling_y</code>. If both of those are 1, the third is the value of <code>chroma_sample_position</code>; otherwise, the third digit is always 0. This, combined with the <code>M</code> component, can be used to construct the chroma subsampling format:</p><table class=\"standard-table\"><caption>Determining the chroma subsampling format</caption><thead><tr><th scope=\"col\">subsampling_x</th><th scope=\"col\">subsampling_y</th><th scope=\"col\">Monochrome flag</th><th scope=\"col\">Chroma subsampling format</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td><td>YUV 4:4:4</td></tr><tr><td>1</td><td>0</td><td>0</td><td>YUV 4:2:2</td></tr><tr><td>1</td><td>1</td><td>0</td><td>YUV 4:2:0</td></tr><tr><td>1</td><td>1</td><td>1</td><td>YUV 4:0:0 (Monochrome)</td></tr></tbody></table><p>The third digit in <code>CCC</code> indicates the chroma sample position, with a value of 0 indicating that the position is unknown and must be separately provided during decoding; a value of 1 indicating that the sample position is horizontally colocated with the (0, 0) luma sample; and a value of 2 indicating that the sample position is colocated with (0, 0) luma.</p><p>The default value is <code>110</code> (4:2:0 chroma subsampling).</p></td>"
table.standard-table (84:1) => table
type: "html"
value: "<tr><td><code>P</code></td><td><p>The one-digit profile number:</p><table class=\"standard-table\"><caption>AV1 profile numbers</caption><thead><tr><th scope=\"col\">Profile number</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><td>0</td><td>\"Main\" profile; supports YUV 4:2:0 or monochrome bitstreams with bit depth of 8 or 10 bits per component.</td></tr><tr><td>1</td><td>\"High\" profile adds support for 4:4:4 chroma subsampling.</td></tr><tr><td>2</td><td>\"Professional\" profile adds support for 4:2:2 chroma subsampling and 12 bit per component color.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><td><code>CCC</code></td><td><p><code>CCC</code> indicates the chroma subsampling as three digits. The first digit is <code>subsampling_x</code>, the second is <code>subsampling_y</code>. If both of those are 1, the third is the value of <code>chroma_sample_position</code>; otherwise, the third digit is always 0. This, combined with the <code>M</code> component, can be used to construct the chroma subsampling format:</p><table class=\"standard-table\"><caption>Determining the chroma subsampling format</caption><thead><tr><th scope=\"col\">subsampling_x</th><th scope=\"col\">subsampling_y</th><th scope=\"col\">Monochrome flag</th><th scope=\"col\">Chroma subsampling format</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td><td>YUV 4:4:4</td></tr><tr><td>1</td><td>0</td><td>0</td><td>YUV 4:2:2</td></tr><tr><td>1</td><td>1</td><td>0</td><td>YUV 4:2:0</td></tr><tr><td>1</td><td>1</td><td>1</td><td>YUV 4:0:0 (Monochrome)</td></tr></tbody></table><p>The third digit in <code>CCC</code> indicates the chroma sample position, with a value of 0 indicating that the position is unknown and must be separately provided during decoding; a value of 1 indicating that the sample position is horizontally colocated with the (0, 0) luma sample; and a value of 2 indicating that the sample position is colocated with (0, 0) luma.</p><p>The default value is <code>110</code> (4:2:0 chroma subsampling).</p></td></tr>"
td (671:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 43
shouldWrap: true
children: 
  type: "text"
  value: "SAOC (Spatial Audio Object Coding)",type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 43
shouldWrap: true
children: 
  type: "text"
  value: "Defined in "
  type: "link"
  title: 

  url: "https://www.iso.org/standard/54838.html"
  children: 
    type: "text"
    value: "ISO/IEC 14496-3:2009/Amd.2:2010(E)"
  type: "text"
  value: "."
tr (669:3) => tableRow
type: "html"
value: "<td><p>SAOC (Spatial Audio Object Coding)</p><p>Defined in <a href=\"https://www.iso.org/standard/54838.html\">ISO/IEC 14496-3:2009/Amd.2:2010(E)</a>.</p></td>"
td (678:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 44
shouldWrap: true
children: 
  type: "text"
  value: "LD MPEG Surround (Low Delay MPEG Surround)",type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 44
shouldWrap: true
children: 
  type: "text"
  value: "Defined in "
  type: "link"
  title: 

  url: "https://www.iso.org/standard/54838.html"
  children: 
    type: "text"
    value: "ISO/IEC 14496-3:2009/Amd.2:2010(E)"
  type: "text"
  value: "."
tr (676:3) => tableRow
type: "html"
value: "<td><p>LD MPEG Surround (Low Delay MPEG Surround)</p><p>Defined in <a href=\"https://www.iso.org/standard/54838.html\">ISO/IEC 14496-3:2009/Amd.2:2010(E)</a>.</p></td>"
table.standard-table (449:1) => table
type: "html"
value: "<tr><td><code>43</code></td><td><p>SAOC (Spatial Audio Object Coding)</p><p>Defined in <a href=\"https://www.iso.org/standard/54838.html\">ISO/IEC 14496-3:2009/Amd.2:2010(E)</a>.</p></td><td></td></tr>",type: "html"
value: "<tr><td><code>44</code></td><td><p>LD MPEG Surround (Low Delay MPEG Surround)</p><p>Defined in <a href=\"https://www.iso.org/standard/54838.html\">ISO/IEC 14496-3:2009/Amd.2:2010(E)</a>.</p></td><td></td></tr>"
td (755:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 1
shouldWrap: true
children: 
  type: "text"
  value: "A four-character code indicating which indicates which of the possible codecs is being described. Potential values are:",type: "table"
children: 
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Four-character code"
    type: "tableCell"
    children: 
      type: "text"
      value: "Codec"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "vp08"
    type: "tableCell"
    children: 
      type: "text"
      value: "VP8"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "vp09"
    type: "tableCell"
    children: 
      type: "text"
      value: "VP9"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "vp10"
    type: "tableCell"
    children: 
      type: "text"
      value: "VP10"
tr (753:3) => tableRow
type: "html"
value: "<td><p>A four-character code indicating which indicates which of the possible codecs is being described. Potential values are:</p><table class=\"standard-table\"><caption>Four-character codes for WebM-supported codecs</caption><thead><tr><th scope=\"col\">Four-character code</th><th scope=\"col\">Codec</th></tr></thead><tbody><tr><td><code>vp08</code></td><td>VP8</td></tr><tr><td><code>vp09</code></td><td>VP9</td></tr><tr><td><code>vp10</code></td><td>VP10</td></tr></tbody></table></td>"
td (785:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "The two-digit profile number, padded with leading zeroes if necessary to be exactly two digits.",type: "table"
children: 
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Profile"
    type: "tableCell"
    children: 
      type: "text"
      value: "Description"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "00"
    type: "tableCell"
    children: 
      type: "text"
      value: "Only 4:2:0 (chroma subsampled both horizontally and vertically). Allows only 8 bits per color component."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "01"
    type: "tableCell"
    children: 
      type: "text"
      value: "All chroma subsampling formats are allowed. Allows only 8 bits per color component."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "02"
    type: "tableCell"
    children: 
      type: "text"
      value: "Only 4:2:0 (chroma subsampled both horizontally and vertically). Supports 8, 10, or 12 bits per color sample component."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 4
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "03"
    type: "tableCell"
    children: 
      type: "text"
      value: "All chroma subsampling formats are allowed. Supports 8, 10, or 12 bits per color sample component."
tr (783:3) => tableRow
type: "html"
value: "<td><p>The two-digit profile number, padded with leading zeroes if necessary to be exactly two digits.</p><table class=\"standard-table\"><caption>WebM profile numbers</caption><thead><tr><th scope=\"col\">Profile</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><td><code>00</code></td><td>Only 4:2:0 (chroma subsampled both horizontally and vertically). Allows only 8 bits per color component.</td></tr><tr><td><code>01</code></td><td>All chroma subsampling formats are allowed. Allows only 8 bits per color component.</td></tr><tr><td><code>02</code></td><td>Only 4:2:0 (chroma subsampled both horizontally and vertically). Supports 8, 10, or 12 bits per color sample component.</td></tr><tr><td><code>03</code></td><td>All chroma subsampling formats are allowed. Supports 8, 10, or 12 bits per color sample component.</td></tr></tbody></table></td>"
td (827:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 5
shouldWrap: true
children: 
  type: "text"
  value: "A two-digit value indicating which chroma subsampling format to use. The following table lists permitted values; see {{U2VjdGlvbk9uUGFnZSgiZW4tVVMvZG9jcy9XZWIvTWVkaWEvRm9ybWF0cy9WaWRlb19jb25jZXB0cyIsICJDaHJvbWEgc3Vic2FtcGxpbmciKQ==}} for additional information about this topic and others.",type: "table"
children: 
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Value"
    type: "tableCell"
    children: 
      type: "text"
      value: "Chroma subsampling format"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "00"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:2:0 with the chroma samples sited interstitially between the pixels"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "01"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:2:0 chroma subsampling with the samples colocated with luma (0, 0)"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "02"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:2:2 chroma subsampling (4 out of each 4 horizontal pixels' luminance are used)"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 4
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "03"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:4:4 chroma subsampling (every pixel's luminance and chrominance are both retained)"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 5
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "04"
    type: "tableCell"
    children: 
      type: "emphasis"
      children: 
        type: "text"
        value: "Reserved"
tr (825:3) => tableRow
type: "html"
value: "<td><p>A two-digit value indicating which chroma subsampling format to use. The following table lists permitted values; see {{U2VjdGlvbk9uUGFnZSgiZW4tVVMvZG9jcy9XZWIvTWVkaWEvRm9ybWF0cy9WaWRlb19jb25jZXB0cyIsICJDaHJvbWEgc3Vic2FtcGxpbmciKQ==}} for additional information about this topic and others.</p><table class=\"standard-table\"><caption>WebM chroma subsampling identifiers</caption><thead><tr><th scope=\"col\">Value</th><th scope=\"col\">Chroma subsampling format</th></tr></thead><tbody><tr><td><code>00</code></td><td>4:2:0 with the chroma samples sited interstitially between the pixels</td></tr><tr><td><code>01</code></td><td>4:2:0 chroma subsampling with the samples colocated with luma (0, 0)</td></tr><tr><td><code>02</code></td><td>4:2:2 chroma subsampling (4 out of each 4 horizontal pixels' luminance are used)</td></tr><tr><td><code>03</code></td><td>4:4:4 chroma subsampling (every pixel's luminance and chrominance are both retained)</td></tr><tr><td><code>04</code></td><td><em>Reserved</em></td></tr></tbody></table></td>"
td (865:4) => tableCell
type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "A two-digit integer specifying which of the color primaries from Section 8.1 of the "
  type: "link"
  title: 

  url: "https://www.itu.int/rec/T-REC-H.273/en"
  children: 
    type: "text"
    value: "ISO/IEC 23001-8:2016"
  type: "text"
  value: " standard. This component, and every component after it, is optional.",type: "paragraph"
summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "The possible values of the color primaries component are:",type: "table"
children: 
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Value"
    type: "tableCell"
    children: 
      type: "text"
      value: "Details"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "00"
    type: "tableCell"
    children: 
      type: "emphasis"
      children: 
        type: "text"
        value: "Reserved for future use by ITU or ISO/IEC"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "01"
    type: "tableCell"
    children: 
      type: "text"
      value: "BT.709, sRGB, sYCC. BT.709 is the standard for high definition (HD) television; sRGB is the most common color space used for computer displays. Broadcast BT.709 uses 8-bit color depth with the legal range being from 16 (black) to 235 (white)."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "02"
    type: "tableCell"
    children: 
      type: "text"
      value: "Image characteristics are unknown, or are to be determined by the application"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 4
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "03"
    type: "tableCell"
    children: 
      type: "emphasis"
      children: 
        type: "text"
        value: "Reserved for future use by ITU or ISO/IEC"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 5
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "04"
    type: "tableCell"
    children: 
      type: "text"
      value: "BT.470 System M, NTSC (standard definition television in the United States)"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 6
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "05"
    type: "tableCell"
    children: 
      type: "text"
      value: "BT.470 System B, G; BT.601; BT.1358 625; BT.1700 625 PAL and 625 SECAM"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 7
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "06"
    type: "tableCell"
    children: 
      type: "text"
      value: "BT.601 525; BT.1358 525 or 625; BT.1700 NTSC; SMPTE 170M. "
      type: "emphasis"
      children: 
        type: "text"
        value: "Functionally identical to "
        type: "inlineCode"
        value: "7"
        type: "text"
        value: "."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 8
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "70"
    type: "tableCell"
    children: 
      type: "text"
      value: "{{R2xvc3NhcnkoIlNNUFRFIik=}} 240M (historical). "
      type: "emphasis"
      children: 
        type: "text"
        value: "Functionally identical to "
        type: "inlineCode"
        value: "6"
        type: "text"
        value: "."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 9
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "08"
    type: "tableCell"
    children: 
      type: "text"
      value: "Generic film"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 10
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "09"
    type: "tableCell"
    children: 
      type: "text"
      value: "BT.2020; BT.2100. Used for ultra-high definition (4K) High Dynamic Range (HDR) video, these have a very wide color gamut and support 10-bit and 12-bit color component depths."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 11
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "10"
    type: "tableCell"
    children: 
      type: "text"
      value: "SMPTE ST 428 (D-Cinema Distribution Master: Image characteristics). Defines the uncompressed image characteristics for DCDM."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 12
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "11"
    type: "tableCell"
    children: 
      type: "text"
      value: "SMPTE RP 431 (D-Cinema Quality: Reference projector and environment). Describes the reference projector and environment conditions that provide a consistent film presentation experience."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 13
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "12"
    type: "tableCell"
    children: 
      type: "text"
      value: "SMPTE EG 432 (Digital Source Processing: Color Processing for D-Cinema). Engineering guideline making color signal decoding recommendations for digital movies."
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 14
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "13"
      type: "text"
      value: " – "
      type: "inlineCode"
      value: "21"
    type: "tableCell"
    children: 
      type: "emphasis"
      children: 
        type: "text"
        value: "Reserved for future use by ITU-T or ISO/IEC"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 15
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "22"
    type: "tableCell"
    children: 
      type: "text"
      value: "EBU Tech 3213-E"
  type: "tableRow"
  summary: "This guide briefly examines the syntax of the media type codecs parameter and how it's used with the MIME type string to provide details about the contents of audio or video media beyond indicating the container type."
  locale: "en-US"
  rowIndex: 16
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "inlineCode"
      value: "23"
      type: "text"
      value: " – "
      type: "inlineCode"
      value: "255"
    type: "tableCell"
    children: 
      type: "emphasis"
      children: 
        type: "text"
        value: "Reserved for future use by ITU-T or ISO/IEC"
tr (863:3) => tableRow
type: "html"
value: "<td><p>A two-digit integer specifying which of the color primaries from Section 8.1 of the <a href=\"https://www.itu.int/rec/T-REC-H.273/en\">ISO/IEC 23001-8:2016</a> standard. This component, and every component after it, is optional.</p><p>The possible values of the color primaries component are:</p><table class=\"standard-table\"><caption>ISO/IEC Color primary identifiers</caption><thead><tr><th scope=\"col\">Value</th><th scope=\"col\">Details</th></tr></thead><tbody><tr><td><code>00</code></td><td><em>Reserved for future use by ITU or ISO/IEC</em></td></tr><tr><td><code>01</code></td><td>BT.709, sRGB, sYCC. BT.709 is the standard for high definition (HD) television; sRGB is the most common color space used for computer displays. Broadcast BT.709 uses 8-bit color depth with the legal range being from 16 (black) to 235 (white).</td></tr><tr><td><code>02</code></td><td>Image characteristics are unknown, or are to be determined by the application</td></tr><tr><td><code>03</code></td><td><em>Reserved for future use by ITU or ISO/IEC</em></td></tr><tr><td><code>04</code></td><td>BT.470 System M, NTSC (standard definition television in the United States)</td></tr><tr><td><code>05</code></td><td>BT.470 System B, G; BT.601; BT.1358 625; BT.1700 625 PAL and 625 SECAM</td></tr><tr><td><code>06</code></td><td>BT.601 525; BT.1358 525 or 625; BT.1700 NTSC; SMPTE 170M. <em>Functionally identical to <code>7</code>.</em></td></tr><tr><td><code>70</code></td><td>{{R2xvc3NhcnkoIlNNUFRFIik=}} 240M (historical). <em>Functionally identical to <code>6</code>.</em></td></tr><tr><td><code>08</code></td><td>Generic film</td></tr><tr><td><code>09</code></td><td>BT.2020; BT.2100. Used for ultra-high definition (4K) High Dynamic Range (HDR) video, these have a very wide color gamut and support 10-bit and 12-bit color component depths.</td></tr><tr><td><code>10</code></td><td>SMPTE ST 428 (D-Cinema Distribution Master: Image characteristics). Defines the uncompressed image characteristics for DCDM.</td></tr><tr><td><code>11</code></td><td>SMPTE RP 431 (D-Cinema Quality: Reference projector and environment). Describes the reference projector and environment conditions that provide a consistent film presentation experience.</td></tr><tr><td><code>12</code></td><td>SMPTE EG 432 (Digital Source Processing: Color Processing for D-Cinema). Engineering guideline making color signal decoding recommendations for digital movies.</td></tr><tr><td><code>13</code> – <code>21</code></td><td><em>Reserved for future use by ITU-T or ISO/IEC</em></td></tr><tr><td><code>22</code></td><td>EBU Tech 3213-E</td></tr><tr><td><code>23</code> – <code>255</code></td><td><em>Reserved for future use by ITU-T or ISO/IEC</em></td></tr></tbody></table></td>"
table.standard-table (744:1) => table
type: "html"
value: "<tr><td><code>cccc</code></td><td><p>A four-character code indicating which indicates which of the possible codecs is being described. Potential values are:</p><table class=\"standard-table\"><caption>Four-character codes for WebM-supported codecs</caption><thead><tr><th scope=\"col\">Four-character code</th><th scope=\"col\">Codec</th></tr></thead><tbody><tr><td><code>vp08</code></td><td>VP8</td></tr><tr><td><code>vp09</code></td><td>VP9</td></tr><tr><td><code>vp10</code></td><td>VP10</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><td><code>PP</code></td><td><p>The two-digit profile number, padded with leading zeroes if necessary to be exactly two digits.</p><table class=\"standard-table\"><caption>WebM profile numbers</caption><thead><tr><th scope=\"col\">Profile</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><td><code>00</code></td><td>Only 4:2:0 (chroma subsampled both horizontally and vertically). Allows only 8 bits per color component.</td></tr><tr><td><code>01</code></td><td>All chroma subsampling formats are allowed. Allows only 8 bits per color component.</td></tr><tr><td><code>02</code></td><td>Only 4:2:0 (chroma subsampled both horizontally and vertically). Supports 8, 10, or 12 bits per color sample component.</td></tr><tr><td><code>03</code></td><td>All chroma subsampling formats are allowed. Supports 8, 10, or 12 bits per color sample component.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><td><code>CC</code></td><td><p>A two-digit value indicating which chroma subsampling format to use. The following table lists permitted values; see {{U2VjdGlvbk9uUGFnZSgiZW4tVVMvZG9jcy9XZWIvTWVkaWEvRm9ybWF0cy9WaWRlb19jb25jZXB0cyIsICJDaHJvbWEgc3Vic2FtcGxpbmciKQ==}} for additional information about this topic and others.</p><table class=\"standard-table\"><caption>WebM chroma subsampling identifiers</caption><thead><tr><th scope=\"col\">Value</th><th scope=\"col\">Chroma subsampling format</th></tr></thead><tbody><tr><td><code>00</code></td><td>4:2:0 with the chroma samples sited interstitially between the pixels</td></tr><tr><td><code>01</code></td><td>4:2:0 chroma subsampling with the samples colocated with luma (0, 0)</td></tr><tr><td><code>02</code></td><td>4:2:2 chroma subsampling (4 out of each 4 horizontal pixels' luminance are used)</td></tr><tr><td><code>03</code></td><td>4:4:4 chroma subsampling (every pixel's luminance and chrominance are both retained)</td></tr><tr><td><code>04</code></td><td><em>Reserved</em></td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><td><code>cp</code></td><td><p>A two-digit integer specifying which of the color primaries from Section 8.1 of the <a href=\"https://www.itu.int/rec/T-REC-H.273/en\">ISO/IEC 23001-8:2016</a> standard. This component, and every component after it, is optional.</p><p>The possible values of the color primaries component are:</p><table class=\"standard-table\"><caption>ISO/IEC Color primary identifiers</caption><thead><tr><th scope=\"col\">Value</th><th scope=\"col\">Details</th></tr></thead><tbody><tr><td><code>00</code></td><td><em>Reserved for future use by ITU or ISO/IEC</em></td></tr><tr><td><code>01</code></td><td>BT.709, sRGB, sYCC. BT.709 is the standard for high definition (HD) television; sRGB is the most common color space used for computer displays. Broadcast BT.709 uses 8-bit color depth with the legal range being from 16 (black) to 235 (white).</td></tr><tr><td><code>02</code></td><td>Image characteristics are unknown, or are to be determined by the application</td></tr><tr><td><code>03</code></td><td><em>Reserved for future use by ITU or ISO/IEC</em></td></tr><tr><td><code>04</code></td><td>BT.470 System M, NTSC (standard definition television in the United States)</td></tr><tr><td><code>05</code></td><td>BT.470 System B, G; BT.601; BT.1358 625; BT.1700 625 PAL and 625 SECAM</td></tr><tr><td><code>06</code></td><td>BT.601 525; BT.1358 525 or 625; BT.1700 NTSC; SMPTE 170M. <em>Functionally identical to <code>7</code>.</em></td></tr><tr><td><code>70</code></td><td>{{R2xvc3NhcnkoIlNNUFRFIik=}} 240M (historical). <em>Functionally identical to <code>6</code>.</em></td></tr><tr><td><code>08</code></td><td>Generic film</td></tr><tr><td><code>09</code></td><td>BT.2020; BT.2100. Used for ultra-high definition (4K) High Dynamic Range (HDR) video, these have a very wide color gamut and support 10-bit and 12-bit color component depths.</td></tr><tr><td><code>10</code></td><td>SMPTE ST 428 (D-Cinema Distribution Master: Image characteristics). Defines the uncompressed image characteristics for DCDM.</td></tr><tr><td><code>11</code></td><td>SMPTE RP 431 (D-Cinema Quality: Reference projector and environment). Describes the reference projector and environment conditions that provide a consistent film presentation experience.</td></tr><tr><td><code>12</code></td><td>SMPTE EG 432 (Digital Source Processing: Color Processing for D-Cinema). Engineering guideline making color signal decoding recommendations for digital movies.</td></tr><tr><td><code>13</code> – <code>21</code></td><td><em>Reserved for future use by ITU-T or ISO/IEC</em></td></tr><tr><td><code>22</code></td><td>EBU Tech 3213-E</td></tr><tr><td><code>23</code> – <code>255</code></td><td><em>Reserved for future use by ITU-T or ISO/IEC</em></td></tr></tbody></table></td></tr>"

Invalid AST transformations

tr (35:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name (short)</th>"
tr (42:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiM0dQIik=}}</th>"
td (50:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Firefox",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Available only if available on the underlying operating system's media framework."
tr (47:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiQURUUyIp}}</th>",type: "html"
value: "<td><p>Firefox</p><p>Available only if available on the underlying operating system's media framework.</p></td>"
tr (54:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiRkxBQyIp}}</th>"
tr (59:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiTVBFR01QRUctMiIsICJNUEVHIC8gTVBFRy0yIik=}}</th>"
tr (64:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiTVBFRy00X01QNCIsICJNUEVHLTQgKE1QNCkiKQ==}}</th>"
td (72:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "Chrome 3, Firefox 3.5, Edge 17 (desktop only), Internet Explorer 9, Opera 10.50",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "Edge requires "
  type: "link"
  title: 

  url: "https://www.microsoft.com/store/productId/9N5TDP8VCMHS"
  children: 
    type: "text"
    value: "Web Media Extensions"
  type: "text"
  value: " to be installed."
tr (69:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiT2dnIik=}}</th>",type: "html"
value: "<td><p>Chrome 3, Firefox 3.5, Edge 17 (desktop only), Internet Explorer 9, Opera 10.50</p><p>Edge requires <a href=\"https://www.microsoft.com/store/productId/9N5TDP8VCMHS\">Web Media Extensions</a> to be installed.</p></td>"
tr (77:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiUXVpY2tUaW1lIiwgIlF1aWNrVGltZSAoTU9WKSIp}}</th>"
td (85:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 8
shouldWrap: true
children: 
  type: "text"
  value: "Chrome 6, Edge 17 (desktop only), Firefox 4, Opera 10.6, Safari (WebRTC only)",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 8
shouldWrap: true
children: 
  type: "text"
  value: "Edge requires "
  type: "link"
  title: 

  url: "https://www.microsoft.com/store/productId/9N5TDP8VCMHS"
  children: 
    type: "text"
    value: "Web Media Extensions"
  type: "text"
  value: " to be installed."
tr (82:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiV2ViTSIp}}</th>",type: "html"
value: "<td><p>Chrome 6, Edge 17 (desktop only), Firefox 4, Opera 10.6, Safari (WebRTC only)</p><p>Edge requires <a href=\"https://www.microsoft.com/store/productId/9N5TDP8VCMHS\">Web Media Extensions</a> to be installed.</p></td>"
table.standard-table (33:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name (short)</th><th scope=\"col\">Full codec name</th><th scope=\"col\">Browser compatibility</th></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiM0dQIik=}}</th><td>Third Generation Partnership</td><td>Firefox for Android</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiQURUUyIp}}</th><td>Audio Data Transport Stream</td><td><p>Firefox</p><p>Available only if available on the underlying operating system's media framework.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiRkxBQyIp}}</th><td>Free Lossless Audio Codec</td><td>Chrome 56, Edge 16, Firefox 51, Safari 11</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiTVBFR01QRUctMiIsICJNUEVHIC8gTVBFRy0yIik=}}</th><td>Moving Picture Experts Group (1 and 2)</td><td>—</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiTVBFRy00X01QNCIsICJNUEVHLTQgKE1QNCkiKQ==}}</th><td>Moving Picture Experts Group 4</td><td>Chrome 3, Edge 12, Firefox, Internet Explorer 9, Opera 24, Safari 3.1</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiT2dnIik=}}</th><td>Ogg</td><td><p>Chrome 3, Firefox 3.5, Edge 17 (desktop only), Internet Explorer 9, Opera 10.50</p><p>Edge requires <a href=\"https://www.microsoft.com/store/productId/9N5TDP8VCMHS\">Web Media Extensions</a> to be installed.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiUXVpY2tUaW1lIiwgIlF1aWNrVGltZSAoTU9WKSIp}}</th><td>Apple QuickTime movie</td><td>Only older versions of Safari, plus other browsers that supported Apple's QuickTime plugin</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiV2ViTSIp}}</th><td>Web Media</td><td><p>Chrome 6, Edge 17 (desktop only), Firefox 4, Opera 10.6, Safari (WebRTC only)</p><p>Edge requires <a href=\"https://www.microsoft.com/store/productId/9N5TDP8VCMHS\">Web Media Extensions</a> to be installed.</p></td></tr>"
tr (130:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (134:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (142:3) => tableRow
type: "html"
value: "<th scope=\"row\">AVC (H.264)</th>"
tr (149:3) => tableRow
type: "html"
value: "<th scope=\"row\">H.263</th>"
tr (156:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-4 Part 2 (MP4v-es)</th>"
tr (163:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP8</th>"
table.standard-table (127:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AVC (H.264)</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">H.263</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-4 Part 2 (MP4v-es)</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">VP8</th><td></td><td></td><td></td><td></td></tr>"
tr (176:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (180:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (188:3) => tableRow
type: "html"
value: "<th scope=\"row\">AMR-NB</th>"
tr (195:3) => tableRow
type: "html"
value: "<th scope=\"row\">AMR-WB</th>"
tr (202:3) => tableRow
type: "html"
value: "<th scope=\"row\">AMR-WB+</th>"
tr (209:3) => tableRow
type: "html"
value: "<th scope=\"row\">AAC-LC</th>"
tr (216:3) => tableRow
type: "html"
value: "<th scope=\"row\">HE-AAC v1</th>"
tr (223:3) => tableRow
type: "html"
value: "<th scope=\"row\">HE-AAC v2</th>"
tr (230:3) => tableRow
type: "html"
value: "<th scope=\"row\">MP3</th>"
table.standard-table (173:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AMR-NB</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">AMR-WB</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">AMR-WB+</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">AAC-LC</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HE-AAC v1</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HE-AAC v2</th><td></td><td></td><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MP3</th><td></td><td></td><td></td><td></td></tr>"
tr (266:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (270:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (278:3) => tableRow
type: "html"
value: "<th scope=\"row\">AAC</th>"
tr (285:3) => tableRow
type: "html"
value: "<th scope=\"row\">MP3</th>"
table.standard-table (263:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AAC</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MP3</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (321:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (325:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (333:3) => tableRow
type: "html"
value: "<th scope=\"row\">FLAC</th>"
table.standard-table (318:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">FLAC</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (370:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (374:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (382:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Part 2</th>"
tr (389:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-2 Part 2</th>"
table.standard-table (367:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Part 2</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-2 Part 2</th><td></td><td></td><td>No</td><td></td></tr>"
tr (402:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (406:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (414:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Audio Layer I</th>"
tr (421:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Audio Layer II</th>"
tr (428:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th>"
table.standard-table (399:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Audio Layer I</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Audio Layer II</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (467:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (471:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
td (483:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Yes",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Firefox support for H.264 relies upon the operating system's media infrastructure, so it is available as long as the OS supports it."
tr (479:3) => tableRow
type: "html"
value: "<th scope=\"row\">AVC (H.264)</th>",type: "html"
value: "<td><p>Yes</p><p>Firefox support for H.264 relies upon the operating system's media infrastructure, so it is available as long as the OS supports it.</p></td>"
td (493:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 3
shouldWrap: true
children: 
  type: "text"
  value: "Yes",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 3
shouldWrap: true
children: 
  type: "text"
  value: "Firefox support for AV1 is currently disabled by default; it can be enabled by setting the preference "
  type: "inlineCode"
  value: "media.av1.enabled"
  type: "text"
  value: " to "
  type: "inlineCode"
  value: "true"
  type: "text"
  value: "."
tr (489:3) => tableRow
type: "html"
value: "<th scope=\"row\">AV1</th>",type: "html"
value: "<td><p>Yes</p><p>Firefox support for AV1 is currently disabled by default; it can be enabled by setting the preference <code>media.av1.enabled</code> to <code>true</code>.</p></td>"
tr (499:3) => tableRow
type: "html"
value: "<th scope=\"row\">H.263</th>"
tr (506:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-4 Part 2 Visual</th>"
tr (513:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP9</th>"
table.standard-table (464:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AVC (H.264)</th><td></td><td></td><td><p>Yes</p><p>Firefox support for H.264 relies upon the operating system's media infrastructure, so it is available as long as the OS supports it.</p></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">AV1</th><td></td><td></td><td><p>Yes</p><p>Firefox support for AV1 is currently disabled by default; it can be enabled by setting the preference <code>media.av1.enabled</code> to <code>true</code>.</p></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">H.263</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-4 Part 2 Visual</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">VP9</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (526:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (530:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
td (542:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Yes",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Firefox support for H.264 relies upon the operating system's media infrastructure, so it is available as long as the OS supports it."
tr (538:3) => tableRow
type: "html"
value: "<th scope=\"row\">AAC</th>",type: "html"
value: "<td><p>Yes</p><p>Firefox support for H.264 relies upon the operating system's media infrastructure, so it is available as long as the OS supports it.</p></td>"
tr (548:3) => tableRow
type: "html"
value: "<th scope=\"row\">FLAC</th>"
tr (555:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th>"
tr (562:3) => tableRow
type: "html"
value: "<th scope=\"row\">Opus</th>"
table.standard-table (523:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AAC</th><td></td><td></td><td><p>Yes</p><p>Firefox support for H.264 relies upon the operating system's media infrastructure, so it is available as long as the OS supports it.</p></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">FLAC</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Opus</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (603:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (607:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (615:3) => tableRow
type: "html"
value: "<th scope=\"row\">Theora</th>"
tr (622:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP8</th>"
tr (629:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP9</th>"
table.standard-table (600:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Theora</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">VP8</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">VP9</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (642:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (646:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (654:3) => tableRow
type: "html"
value: "<th scope=\"row\">FLAC</th>"
tr (661:3) => tableRow
type: "html"
value: "<th scope=\"row\">Opus</th>"
tr (668:3) => tableRow
type: "html"
value: "<th scope=\"row\">Vorbis</th>"
table.standard-table (639:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">FLAC</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Opus</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Vorbis</th><td></td><td></td><td>Yes</td><td></td></tr>"
tr (711:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (715:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (723:3) => tableRow
type: "html"
value: "<th scope=\"row\">AVC (H.264)</th>"
tr (730:3) => tableRow
type: "html"
value: "<th scope=\"row\">Cinepak</th>"
tr (737:3) => tableRow
type: "html"
value: "<th scope=\"row\">Component Video</th>"
tr (744:3) => tableRow
type: "html"
value: "<th scope=\"row\">DV</th>"
tr (751:3) => tableRow
type: "html"
value: "<th scope=\"row\">H.261</th>"
tr (758:3) => tableRow
type: "html"
value: "<th scope=\"row\">H.263</th>"
tr (765:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-2</th>"
tr (772:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-4 Part 2 Visual</th>"
tr (779:3) => tableRow
type: "html"
value: "<th scope=\"row\">Motion JPEG</th>"
tr (786:3) => tableRow
type: "html"
value: "<th scope=\"row\">Sorenson Video 2</th>"
tr (793:3) => tableRow
type: "html"
value: "<th scope=\"row\">Sorenson Video 3</th>"
table.standard-table (708:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AVC (H.264)</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Cinepak</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Component Video</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">DV</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">H.261</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">H.263</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-2</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-4 Part 2 Visual</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Motion JPEG</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Sorenson Video 2</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Sorenson Video 3</th><td></td><td></td><td>No</td><td></td></tr>"
tr (806:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (810:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (818:3) => tableRow
type: "html"
value: "<th scope=\"row\">AAC</th>"
tr (825:3) => tableRow
type: "html"
value: "<th scope=\"row\">ALaw 2:1</th>"
tr (832:3) => tableRow
type: "html"
value: "<th scope=\"row\">Apple Lossless (ALAC)</th>"
tr (839:3) => tableRow
type: "html"
value: "<th scope=\"row\">HE-AAC</th>"
tr (846:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th>"
tr (853:3) => tableRow
type: "html"
value: "<th scope=\"row\">Microsoft ADPCM</th>"
tr (860:3) => tableRow
type: "html"
value: "<th scope=\"row\">µ-Law 2:1 (u-Law)</th>"
table.standard-table (803:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AAC</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">ALaw 2:1</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Apple Lossless (ALAC)</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HE-AAC</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Microsoft ADPCM</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">µ-Law 2:1 (u-Law)</th><td></td><td></td><td>No</td><td></td></tr>"
tr (906:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (910:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (918:3) => tableRow
type: "html"
value: "<th scope=\"row\">ADPCM (Adaptive Differential Pulse Code Modulation)</th>"
tr (925:3) => tableRow
type: "html"
value: "<th scope=\"row\">GSM 06.10</th>"
tr (932:3) => tableRow
type: "html"
value: "<th scope=\"row\">LPCM (Linear Pulse Code Modulation)</th>"
tr (939:3) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th>"
tr (946:3) => tableRow
type: "html"
value: "<th scope=\"row\">µ-Law (u-Law)</th>"
table.standard-table (903:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">ADPCM (Adaptive Differential Pulse Code Modulation)</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">GSM 06.10</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">LPCM (Linear Pulse Code Modulation)</th><td></td><td></td><td>Yes</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 Audio Layer III (MP3)</th><td></td><td></td><td>No</td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">µ-Law (u-Law)</th><td></td><td></td><td>No</td><td></td></tr>"
tr (981:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (985:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
td (997:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Yes",type: "paragraph"
summary: "In this guide, we'll look at the container formats used most commonly on the web, covering basics about their specifications as well as their benefits, limitations, and ideal use cases."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Firefox support for AV1 was added to macOS in Firefox 66; for Windows in Firefox 67; and Firefox 68 on Linux. Firefox for Android does not yet support AV1; the implementation in Firefox is designed to use a secure process, which is not supported yet in Android."
tr (993:3) => tableRow
type: "html"
value: "<th scope=\"row\">AV1</th>",type: "html"
value: "<td><p>Yes</p><p>Firefox support for AV1 was added to macOS in Firefox 66; for Windows in Firefox 67; and Firefox 68 on Linux. Firefox for Android does not yet support AV1; the implementation in Firefox is designed to use a secure process, which is not supported yet in Android.</p></td>"
tr (1003:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP8</th>"
tr (1010:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP9</th>"
table.standard-table (978:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AV1</th><td>Yes</td><td>Yes</td><td><p>Yes</p><p>Firefox support for AV1 was added to macOS in Firefox 66; for Windows in Firefox 67; and Firefox 68 on Linux. Firefox for Android does not yet support AV1; the implementation in Firefox is designed to use a secure process, which is not supported yet in Android.</p></td><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">VP8</th><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">VP9</th><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>"
tr (1023:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th>",type: "html"
value: "<th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th>"
tr (1027:3) => tableRow
type: "html"
value: "<th scope=\"col\">Chrome</th>",type: "html"
value: "<th scope=\"col\">Edge</th>",type: "html"
value: "<th scope=\"col\">Firefox</th>",type: "html"
value: "<th scope=\"col\">Safari</th>"
tr (1035:3) => tableRow
type: "html"
value: "<th scope=\"row\">Opus</th>"
tr (1042:3) => tableRow
type: "html"
value: "<th scope=\"row\">Vorbis</th>"
table.standard-table (1020:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Codec</th><th colspan=\"4\" scope=\"col\" style=\"text-align: center;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Opus</th><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Vorbis</th><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>"
tr (1219:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Container format name</th>",type: "html"
value: "<th colspan=\"3\" scope=\"col\" style=\"text-align: center; border-right: 2px solid #d4dde4;\">Audio</th>",type: "html"
value: "<th colspan=\"3\" scope=\"col\" style=\"text-align: center;\">Video</th>"
tr (1224:3) => tableRow
type: "html"
value: "<th scope=\"col\" style=\"vertical-align: bottom;\">MIME type</th>",type: "html"
value: "<th scope=\"col\" style=\"vertical-align: bottom;\">Extension(s)</th>",type: "html"
value: "<th scope=\"col\" style=\"vertical-align: bottom; border-right: 2px solid #d4dde4;\">Browser support</th>",type: "html"
value: "<th scope=\"col\" style=\"vertical-align: bottom;\">MIME type</th>",type: "html"
value: "<th scope=\"col\" style=\"vertical-align: bottom;\">Extension(s)</th>",type: "html"
value: "<th scope=\"col\" style=\"vertical-align: bottom; border-right: 2px solid #d4dde4;\">Browser support</th>"
tr (1234:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: bottom;\">3GP</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/3gpp</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.3gp</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>video/3gpp</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.3gp</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\">Firefox</td>"
tr (1243:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">ADTS (Audio Data Transport Stream)</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/aac</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.aac</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>"
tr (1252:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">FLAC</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/flac</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.flac</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>"
tr (1261:3) => tableRow
type: "html"
value: "<th rowspan=\"2\" scope=\"row\" style=\"vertical-align: top;\">MPEG-1 / MPEG-2 (MPG or MPEG)</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/mpeg</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.mpg</code><br><code>.mpeg</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td rowspan=\"2\" style=\"vertical-align: top;\"><code>video/mpeg</code></td>",type: "html"
value: "<td rowspan=\"2\" style=\"vertical-align: top;\"><code>.mpg</code><br><code>.mpeg</code></td>",type: "html"
value: "<td rowspan=\"2\" style=\"vertical-align: top;\">Firefox</td>"
tr (1272:3) => tableRow
type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/mp3</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.mp3</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>"
tr (1277:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">MPEG-4 (MP4)</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/mp4</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.mp4</code><br><code>.m4a</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>video/mp4</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.mp4</code><br><code>.m4v</code><br><code>.m4p</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\">Firefox</td>"
tr (1289:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">Ogg</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/ogg</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.oga</code><br><code>.ogg</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>video/ogg</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.ogv</code><br><code>.ogg</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\">Firefox</td>"
tr (1300:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">QuickTime Movie (MOV)</th>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>video/quicktime</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.mov</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\">Safari</td>"
tr (1309:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">WAV (Waveform Audiofile)</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/wav</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.wav</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>",type: "html"
value: "<td style=\"vertical-align: top;\">—</td>"
tr (1318:3) => tableRow
type: "html"
value: "<th scope=\"row\" style=\"vertical-align: top;\">WebM</th>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>audio/webm</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.webm</code></td>",type: "html"
value: "<td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>video/webm</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\"><code>.webm</code></td>",type: "html"
value: "<td style=\"vertical-align: top;\">Firefox</td>"
table.standard-table (1217:1) => table
type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: bottom;\">Container format name</th><th colspan=\"3\" scope=\"col\" style=\"text-align: center; border-right: 2px solid #d4dde4;\">Audio</th><th colspan=\"3\" scope=\"col\" style=\"text-align: center;\">Video</th></tr>",type: "html"
value: "<tr><th scope=\"col\" style=\"vertical-align: bottom;\">MIME type</th><th scope=\"col\" style=\"vertical-align: bottom;\">Extension(s)</th><th scope=\"col\" style=\"vertical-align: bottom; border-right: 2px solid #d4dde4;\">Browser support</th><th scope=\"col\" style=\"vertical-align: bottom;\">MIME type</th><th scope=\"col\" style=\"vertical-align: bottom;\">Extension(s)</th><th scope=\"col\" style=\"vertical-align: bottom; border-right: 2px solid #d4dde4;\">Browser support</th></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: bottom;\">3GP</th><td style=\"vertical-align: top;\"><code>audio/3gpp</code></td><td style=\"vertical-align: top;\"><code>.3gp</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\"><code>video/3gpp</code></td><td style=\"vertical-align: top;\"><code>.3gp</code></td><td style=\"vertical-align: top;\">Firefox</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">ADTS (Audio Data Transport Stream)</th><td style=\"vertical-align: top;\"><code>audio/aac</code></td><td style=\"vertical-align: top;\"><code>.aac</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">FLAC</th><td style=\"vertical-align: top;\"><code>audio/flac</code></td><td style=\"vertical-align: top;\"><code>.flac</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td></tr>",type: "html"
value: "<tr><th rowspan=\"2\" scope=\"row\" style=\"vertical-align: top;\">MPEG-1 / MPEG-2 (MPG or MPEG)</th><td style=\"vertical-align: top;\"><code>audio/mpeg</code></td><td style=\"vertical-align: top;\"><code>.mpg</code><br><code>.mpeg</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td rowspan=\"2\" style=\"vertical-align: top;\"><code>video/mpeg</code></td><td rowspan=\"2\" style=\"vertical-align: top;\"><code>.mpg</code><br><code>.mpeg</code></td><td rowspan=\"2\" style=\"vertical-align: top;\">Firefox</td></tr>",type: "html"
value: "<tr><td style=\"vertical-align: top;\"><code>audio/mp3</code></td><td style=\"vertical-align: top;\"><code>.mp3</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">MPEG-4 (MP4)</th><td style=\"vertical-align: top;\"><code>audio/mp4</code></td><td style=\"vertical-align: top;\"><code>.mp4</code><br><code>.m4a</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\"><code>video/mp4</code></td><td style=\"vertical-align: top;\"><code>.mp4</code><br><code>.m4v</code><br><code>.m4p</code></td><td style=\"vertical-align: top;\">Firefox</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">Ogg</th><td style=\"vertical-align: top;\"><code>audio/ogg</code></td><td style=\"vertical-align: top;\"><code>.oga</code><br><code>.ogg</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\"><code>video/ogg</code></td><td style=\"vertical-align: top;\"><code>.ogv</code><br><code>.ogg</code></td><td style=\"vertical-align: top;\">Firefox</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">QuickTime Movie (MOV)</th><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">—</td><td style=\"vertical-align: top;\"><code>video/quicktime</code></td><td style=\"vertical-align: top;\"><code>.mov</code></td><td style=\"vertical-align: top;\">Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">WAV (Waveform Audiofile)</th><td style=\"vertical-align: top;\"><code>audio/wav</code></td><td style=\"vertical-align: top;\"><code>.wav</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td><td style=\"vertical-align: top;\">—</td></tr>",type: "html"
value: "<tr><th scope=\"row\" style=\"vertical-align: top;\">WebM</th><td style=\"vertical-align: top;\"><code>audio/webm</code></td><td style=\"vertical-align: top;\"><code>.webm</code></td><td style=\"vertical-align: top; border-right: 2px solid #d4dde4;\">Firefox</td><td style=\"vertical-align: top;\"><code>video/webm</code></td><td style=\"vertical-align: top;\"><code>.webm</code></td><td style=\"vertical-align: top;\">Firefox</td></tr>"

Missing conversion rules

  • th[scope="row"] (36:4)
  • th[scope="row"] (43:4)
  • th[scope="row"] (48:4)
  • th[scope="row"] (55:4)
  • th[scope="row"] (60:4)
  • th[scope="row"] (65:4)
  • th[scope="row"] (70:4)
  • th[scope="row"] (78:4)
  • th[scope="row"] (83:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (131:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (132:4)
  • th[scope="col"] (135:4)
  • th[scope="col"] (136:4)
  • th[scope="col"] (137:4)
  • th[scope="col"] (138:4)
  • th[scope="row"] (143:4)
  • th[scope="row"] (150:4)
  • th[scope="row"] (157:4)
  • th[scope="row"] (164:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (177:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (178:4)
  • th[scope="col"] (181:4)
  • th[scope="col"] (182:4)
  • th[scope="col"] (183:4)
  • th[scope="col"] (184:4)
  • th[scope="row"] (189:4)
  • th[scope="row"] (196:4)
  • th[scope="row"] (203:4)
  • th[scope="row"] (210:4)
  • th[scope="row"] (217:4)
  • th[scope="row"] (224:4)
  • th[scope="row"] (231:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (267:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (268:4)
  • th[scope="col"] (271:4)
  • th[scope="col"] (272:4)
  • th[scope="col"] (273:4)
  • th[scope="col"] (274:4)
  • th[scope="row"] (279:4)
  • th[scope="row"] (286:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (322:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (323:4)
  • th[scope="col"] (326:4)
  • th[scope="col"] (327:4)
  • th[scope="col"] (328:4)
  • th[scope="col"] (329:4)
  • th[scope="row"] (334:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (371:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (372:4)
  • th[scope="col"] (375:4)
  • th[scope="col"] (376:4)
  • th[scope="col"] (377:4)
  • th[scope="col"] (378:4)
  • th[scope="row"] (383:4)
  • th[scope="row"] (390:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (403:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (404:4)
  • th[scope="col"] (407:4)
  • th[scope="col"] (408:4)
  • th[scope="col"] (409:4)
  • th[scope="col"] (410:4)
  • th[scope="row"] (415:4)
  • th[scope="row"] (422:4)
  • th[scope="row"] (429:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (468:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (469:4)
  • th[scope="col"] (472:4)
  • th[scope="col"] (473:4)
  • th[scope="col"] (474:4)
  • th[scope="col"] (475:4)
  • th[scope="row"] (480:4)
  • th[scope="row"] (490:4)
  • th[scope="row"] (500:4)
  • th[scope="row"] (507:4)
  • th[scope="row"] (514:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (527:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (528:4)
  • th[scope="col"] (531:4)
  • th[scope="col"] (532:4)
  • th[scope="col"] (533:4)
  • th[scope="col"] (534:4)
  • th[scope="row"] (539:4)
  • th[scope="row"] (549:4)
  • th[scope="row"] (556:4)
  • th[scope="row"] (563:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (604:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (605:4)
  • th[scope="col"] (608:4)
  • th[scope="col"] (609:4)
  • th[scope="col"] (610:4)
  • th[scope="col"] (611:4)
  • th[scope="row"] (616:4)
  • th[scope="row"] (623:4)
  • th[scope="row"] (630:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (643:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (644:4)
  • th[scope="col"] (647:4)
  • th[scope="col"] (648:4)
  • th[scope="col"] (649:4)
  • th[scope="col"] (650:4)
  • th[scope="row"] (655:4)
  • th[scope="row"] (662:4)
  • th[scope="row"] (669:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (712:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (713:4)
  • th[scope="col"] (716:4)
  • th[scope="col"] (717:4)
  • th[scope="col"] (718:4)
  • th[scope="col"] (719:4)
  • th[scope="row"] (724:4)
  • th[scope="row"] (731:4)
  • th[scope="row"] (738:4)
  • th[scope="row"] (745:4)
  • th[scope="row"] (752:4)
  • th[scope="row"] (759:4)
  • th[scope="row"] (766:4)
  • th[scope="row"] (773:4)
  • th[scope="row"] (780:4)
  • th[scope="row"] (787:4)
  • th[scope="row"] (794:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (807:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (808:4)
  • th[scope="col"] (811:4)
  • th[scope="col"] (812:4)
  • th[scope="col"] (813:4)
  • th[scope="col"] (814:4)
  • th[scope="row"] (819:4)
  • th[scope="row"] (826:4)
  • th[scope="row"] (833:4)
  • th[scope="row"] (840:4)
  • th[scope="row"] (847:4)
  • th[scope="row"] (854:4)
  • th[scope="row"] (861:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (907:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (908:4)
  • th[scope="col"] (911:4)
  • th[scope="col"] (912:4)
  • th[scope="col"] (913:4)
  • th[scope="col"] (914:4)
  • th[scope="row"] (919:4)
  • th[scope="row"] (926:4)
  • th[scope="row"] (933:4)
  • th[scope="row"] (940:4)
  • th[scope="row"] (947:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (982:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (983:4)
  • th[scope="col"] (986:4)
  • th[scope="col"] (987:4)
  • th[scope="col"] (988:4)
  • th[scope="col"] (989:4)
  • th[scope="row"] (994:4)
  • th[scope="row"] (1004:4)
  • th[scope="row"] (1011:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (1024:4)
  • th[colSpan="4"][scope="col"][style="text-align: center;"] (1025:4)
  • th[scope="col"] (1028:4)
  • th[scope="col"] (1029:4)
  • th[scope="col"] (1030:4)
  • th[scope="col"] (1031:4)
  • th[scope="row"] (1036:4)
  • th[scope="row"] (1043:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: bottom;"] (1220:4)
  • th[colSpan="3"][scope="col"][style="text-align: center; border-right: 2px solid #d4dde4;"] (1221:4)
  • th[colSpan="3"][scope="col"][style="text-align: center;"] (1222:4)
  • th[scope="col"][style="vertical-align: bottom;"] (1225:4)
  • th[scope="col"][style="vertical-align: bottom;"] (1226:4)
  • th[scope="col"][style="vertical-align: bottom; border-right: 2px solid #d4dde4;"] (1227:4)
  • th[scope="col"][style="vertical-align: bottom;"] (1228:4)
  • th[scope="col"][style="vertical-align: bottom;"] (1229:4)
  • th[scope="col"][style="vertical-align: bottom; border-right: 2px solid #d4dde4;"] (1230:4)
  • th[scope="row"][style="vertical-align: bottom;"] (1235:4)
  • td[style="vertical-align: top;"] (1236:4)
  • td[style="vertical-align: top;"] (1237:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1238:4)
  • td[style="vertical-align: top;"] (1239:4)
  • td[style="vertical-align: top;"] (1240:4)
  • td[style="vertical-align: top;"] (1241:4)
  • th[scope="row"][style="vertical-align: top;"] (1244:4)
  • td[style="vertical-align: top;"] (1245:4)
  • td[style="vertical-align: top;"] (1246:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1247:4)
  • td[style="vertical-align: top;"] (1248:4)
  • td[style="vertical-align: top;"] (1249:4)
  • td[style="vertical-align: top;"] (1250:4)
  • th[scope="row"][style="vertical-align: top;"] (1253:4)
  • td[style="vertical-align: top;"] (1254:4)
  • td[style="vertical-align: top;"] (1255:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1256:4)
  • td[style="vertical-align: top;"] (1257:4)
  • td[style="vertical-align: top;"] (1258:4)
  • td[style="vertical-align: top;"] (1259:4)
  • th[rowSpan="2"][scope="row"][style="vertical-align: top;"] (1262:4)
  • td[style="vertical-align: top;"] (1263:4)
  • td[style="vertical-align: top;"] (1264:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1266:4)
  • td[rowSpan="2"][style="vertical-align: top;"] (1267:4)
  • td[rowSpan="2"][style="vertical-align: top;"] (1268:4)
  • td[rowSpan="2"][style="vertical-align: top;"] (1270:4)
  • td[style="vertical-align: top;"] (1273:4)
  • td[style="vertical-align: top;"] (1274:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1275:4)
  • th[scope="row"][style="vertical-align: top;"] (1278:4)
  • td[style="vertical-align: top;"] (1279:4)
  • td[style="vertical-align: top;"] (1280:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1282:4)
  • td[style="vertical-align: top;"] (1283:4)
  • td[style="vertical-align: top;"] (1284:4)
  • td[style="vertical-align: top;"] (1287:4)
  • th[scope="row"][style="vertical-align: top;"] (1290:4)
  • td[style="vertical-align: top;"] (1291:4)
  • td[style="vertical-align: top;"] (1292:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1294:4)
  • td[style="vertical-align: top;"] (1295:4)
  • td[style="vertical-align: top;"] (1296:4)
  • td[style="vertical-align: top;"] (1298:4)
  • th[scope="row"][style="vertical-align: top;"] (1301:4)
  • td[style="vertical-align: top;"] (1302:4)
  • td[style="vertical-align: top;"] (1303:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1304:4)
  • td[style="vertical-align: top;"] (1305:4)
  • td[style="vertical-align: top;"] (1306:4)
  • td[style="vertical-align: top;"] (1307:4)
  • th[scope="row"][style="vertical-align: top;"] (1310:4)
  • td[style="vertical-align: top;"] (1311:4)
  • td[style="vertical-align: top;"] (1312:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1313:4)
  • td[style="vertical-align: top;"] (1314:4)
  • td[style="vertical-align: top;"] (1315:4)
  • td[style="vertical-align: top;"] (1316:4)
  • th[scope="row"][style="vertical-align: top;"] (1319:4)
  • td[style="vertical-align: top;"] (1320:4)
  • td[style="vertical-align: top;"] (1321:4)
  • td[style="vertical-align: top; border-right: 2px solid #d4dde4;"] (1322:4)
  • td[style="vertical-align: top;"] (1323:4)
  • td[style="vertical-align: top;"] (1324:4)
  • td[style="vertical-align: top;"] (1325:4)

Invalid AST transformations

tr (40:3) => tableRow
type: "html"
value: "<th scope=\"row\">Abbreviation</th>",type: "html"
value: "<th scope=\"row\">File format</th>"
tr (49:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#APNG_Animated_Portable_Network_Graphics\">APNG</a></th>",type: "html"
value: "<th scope=\"row\">Animated Portable Network Graphics</th>"
td (62:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Good choice for both images and animated images due to high performance and royalty free image format. It offers much better compression than PNG or JPEG with support for higher color depths, animated frames, transparency etc. Note that when using AVIF, you should include fallbacks to formats with better browser support (i.e. using the "
  type: "link"
  title: 

  url: "/en-US/docs/Web/HTML/Element/picture"
  children: 
    type: "inlineCode"
    value: "<picture>"
  type: "text"
  value: " element). "
  type: "break"
  type: "strong"
  children: 
    type: "text"
    value: "Supported:"
  type: "text"
  value: " Chrome, Opera, Firefox (still images only: animated images not implemented)."
tr (57:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#AVIF_image\">AVIF</a></th>",type: "html"
value: "<th scope=\"row\">AV1 Image File Format</th>",type: "html"
value: "<td><p>Good choice for both images and animated images due to high performance and royalty free image format. It offers much better compression than PNG or JPEG with support for higher color depths, animated frames, transparency etc. Note that when using AVIF, you should include fallbacks to formats with better browser support (i.e. using the <code><a href=\"/en-US/docs/Web/HTML/Element/picture\">&#x3C;picture></a></code> element). <br><strong>Supported:</strong> Chrome, Opera, Firefox (still images only: animated images not implemented).</p></td>"
tr (67:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#GIF_Graphics_Interchange_Format\">GIF</a></th>",type: "html"
value: "<th scope=\"row\">Graphics Interchange Format</th>"
td (80:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 4
shouldWrap: true
children: 
  type: "text"
  value: "Good choice for lossy compression of still images (currently the most popular). Prefer PNG when more precise reproduction of the image is required, or WebP/AVIF if both better reproduction and higher compression are required."
  type: "break"
  type: "strong"
  children: 
    type: "text"
    value: "Support:"
  type: "text"
  value: " Chrome, Edge, Firefox, IE, Opera, Safari."
tr (75:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#JPEG_Joint_Photographic_Experts_Group_image\">JPEG</a></th>",type: "html"
value: "<th scope=\"row\">Joint Photographic Expert Group image</th>",type: "html"
value: "<td><p>Good choice for lossy compression of still images (currently the most popular). Prefer PNG when more precise reproduction of the image is required, or WebP/AVIF if both better reproduction and higher compression are required.<br><strong>Support:</strong> Chrome, Edge, Firefox, IE, Opera, Safari.</p></td>"
td (90:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 5
shouldWrap: true
children: 
  type: "text"
  value: "PNG is preferred over JPEG for more precise reproduction of source images, or when transparency is needed. WebP/AVIF provide even better compression and reproduction, but browser support is more limited."
  type: "break"
  type: "strong"
  children: 
    type: "text"
    value: "Support:"
  type: "text"
  value: " Chrome, Edge, Firefox, IE, Opera, Safari."
tr (85:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#PNG_Portable_Network_Graphics\">PNG</a></th>",type: "html"
value: "<th scope=\"row\">Portable Network Graphics</th>",type: "html"
value: "<td><p>PNG is preferred over JPEG for more precise reproduction of source images, or when transparency is needed. WebP/AVIF provide even better compression and reproduction, but browser support is more limited.<br><strong>Support:</strong> Chrome, Edge, Firefox, IE, Opera, Safari.</p></td>"
tr (95:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#SVG_Scalable_Vector_Graphics\">SVG</a></th>",type: "html"
value: "<th scope=\"row\">Scalable Vector Graphics</th>"
tr (103:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#WebP_image\">WebP</a></th>",type: "html"
value: "<th scope=\"row\">Web Picture format</th>"
table.standard-table (38:1) => table
type: "html"
value: "<tr><th scope=\"row\">Abbreviation</th><th scope=\"row\">File format</th><th scope=\"col\">MIME type</th><th scope=\"col\">File extension(s)</th><th scope=\"col\">Summary</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#APNG_Animated_Portable_Network_Graphics\">APNG</a></th><th scope=\"row\">Animated Portable Network Graphics</th><td><code>image/apng</code></td><td><code>.apng</code></td><td>Good choice for lossless animation sequences (GIF is less performant). AVIF and WebP have better performance but less broad browser support.<br><strong>Supported</strong>: Chrome, Edge, Firefox, Opera, Safari.</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#AVIF_image\">AVIF</a></th><th scope=\"row\">AV1 Image File Format</th><td><code>image/avif</code></td><td><code>.avif</code></td><td><p>Good choice for both images and animated images due to high performance and royalty free image format. It offers much better compression than PNG or JPEG with support for higher color depths, animated frames, transparency etc. Note that when using AVIF, you should include fallbacks to formats with better browser support (i.e. using the <code><a href=\"/en-US/docs/Web/HTML/Element/picture\">&#x3C;picture></a></code> element). <br><strong>Supported:</strong> Chrome, Opera, Firefox (still images only: animated images not implemented).</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#GIF_Graphics_Interchange_Format\">GIF</a></th><th scope=\"row\">Graphics Interchange Format</th><td><code>image/gif</code></td><td><code>.gif</code></td><td>Good choice for simple images and animations. Prefer PNG for lossless <em>and</em> indexed still images, and consider WebP, AVIF or APNG for animation sequences.<br><strong>Supported:</strong> Chrome, Edge, Firefox, IE, Opera, Safari.</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#JPEG_Joint_Photographic_Experts_Group_image\">JPEG</a></th><th scope=\"row\">Joint Photographic Expert Group image</th><td><code>image/jpeg</code></td><td><code>.jpg</code>, <code>.jpeg</code>, <code>.jfif</code>, <code>.pjpeg</code>, <code>.pjp</code></td><td><p>Good choice for lossy compression of still images (currently the most popular). Prefer PNG when more precise reproduction of the image is required, or WebP/AVIF if both better reproduction and higher compression are required.<br><strong>Support:</strong> Chrome, Edge, Firefox, IE, Opera, Safari.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#PNG_Portable_Network_Graphics\">PNG</a></th><th scope=\"row\">Portable Network Graphics</th><td><code>image/png</code></td><td><code>.png</code></td><td><p>PNG is preferred over JPEG for more precise reproduction of source images, or when transparency is needed. WebP/AVIF provide even better compression and reproduction, but browser support is more limited.<br><strong>Support:</strong> Chrome, Edge, Firefox, IE, Opera, Safari.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#SVG_Scalable_Vector_Graphics\">SVG</a></th><th scope=\"row\">Scalable Vector Graphics</th><td><code>image/svg+xml</code></td><td><code>.svg</code></td><td>Vector image format; ideal for user interface elements, icons, diagrams, etc., that must be drawn accurately at different sizes.<br><strong>Support:</strong> Chrome, Edge, Firefox, IE, Opera, Safari.</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#WebP_image\">WebP</a></th><th scope=\"row\">Web Picture format</th><td><code>image/webp</code></td><td><code>.webp</code></td><td>Excellent choice for both images and animated images. WebP offers much better compression than PNG or JPEG with support for higher color depths, animated frames, transparency etc. AVIF offers slightly better compression, but is not quite as well-supported in browsers and does not support progressive rendering.<br><strong>Support:</strong> Chrome, Edge, Firefox, Opera, Safari</td></tr>"
tr (122:3) => tableRow
type: "html"
value: "<th scope=\"row\">Abbreviation</th>",type: "html"
value: "<th scope=\"row\">File format</th>"
tr (131:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#BMP_Bitmap_file\">BMP</a></th>",type: "html"
value: "<th scope=\"row\">Bitmap file</th>"
tr (138:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#ICO_Microsoft_Windows_icon\">ICO</a></th>",type: "html"
value: "<th scope=\"row\">Microsoft Icon</th>"
tr (145:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#TIFF_Tagged_Image_File_Format\">TIFF</a></th>",type: "html"
value: "<th scope=\"row\">Tagged Image File Format</th>"
table.standard-table (120:1) => table
type: "html"
value: "<tr><th scope=\"row\">Abbreviation</th><th scope=\"row\">File format</th><th scope=\"col\">MIME type</th><th scope=\"col\">File extension(s)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#BMP_Bitmap_file\">BMP</a></th><th scope=\"row\">Bitmap file</th><td><code>image/bmp</code></td><td><code>.bmp</code></td><td>Chrome, Edge, Firefox, IE, Opera, Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#ICO_Microsoft_Windows_icon\">ICO</a></th><th scope=\"row\">Microsoft Icon</th><td><code>image/x-icon</code></td><td><code>.ico</code>, <code>.cur</code></td><td>Chrome, Edge, Firefox, IE, Opera, Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#TIFF_Tagged_Image_File_Format\">TIFF</a></th><th scope=\"row\">Tagged Image File Format</th><td><code>image/tiff</code></td><td><code>.tif</code>, <code>.tiff</code></td><td>Safari</td></tr>"
tr (177:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/apng</code></td>"
tr (181:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (185:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (189:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (193:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (202:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (209:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (214:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (219:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (224:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (229:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (200:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>1, 2, 4, 8, and 16</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three <em>D</em>-bit values indicating the level of the red, green, and blue color components.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>1, 2, 4, and 8</td><td>Each pixel is a <em>D</em>-bit value indicating an index into a color palette which is contained within a <code><a href=\"https://www.w3.org/TR/PNG/#11PLTE\">PLTE</a></code> chunk in the APNG file; the colors in the palette all use an 8-bit depth.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td>8 and 16</td><td>Each pixel is represented by two <em>D</em>-bit values: the intensity of the greyscale pixel and an alpha sample, indicating how opaque the pixel is.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is comprised of four <em>D</em>-pixel color components: red, green, blue, and the alpha sample indicating how opaque the pixel is.</td></tr>"
tr (197:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (238:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (242:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (175:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/apng</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.apng</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://wiki.mozilla.org/APNG_Specification\">wiki.mozilla.org/APNG_Specification</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>Chrome 59, Edge 12, Firefox 3, Opera 46, Safari 8</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>2,147,483,647×2,147,483,647 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><th scope=\"row\">Greyscale</th><td>1, 2, 4, 8, and 16</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr><tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three <em>D</em>-bit values indicating the level of the red, green, and blue color components.</td></tr><tr><th scope=\"row\">Indexed color</th><td>1, 2, 4, and 8</td><td>Each pixel is a <em>D</em>-bit value indicating an index into a color palette which is contained within a <code><a href=\"https://www.w3.org/TR/PNG/#11PLTE\">PLTE</a></code> chunk in the APNG file; the colors in the palette all use an 8-bit depth.</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td>8 and 16</td><td>Each pixel is represented by two <em>D</em>-bit values: the intensity of the greyscale pixel and an alpha sample, indicating how opaque the pixel is.</td></tr><tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is comprised of four <em>D</em>-pixel color components: red, green, blue, and the alpha sample indicating how opaque the pixel is.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Free and open under the <a href=\"https://creativecommons.org/licenses/by-sa/3.0/\">Creative Commons Attribution-ShareAlike license</a> (<a href=\"https://creativecommons.org/licenses/by-sa/3.0/\">CC-BY-SA</a>) version 3.0 or later.</td></tr>"
tr (281:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/avif</code></td>"
tr (285:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
td (291:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "link"
  title: 

  url: "https://aomediacodec.github.io/av1-avif/"
  children: 
    type: "text"
    value: "AV1 Image File Format (AVIF)"
tr (289:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>",type: "html"
value: "<td><p><a href=\"https://aomediacodec.github.io/av1-avif/\">AV1 Image File Format (AVIF)</a></p></td>"
td (297:4) => tableCell
type: "list"
ordered: false
start: 

spread: false
children: 
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Firefox 93 supports still images, with colorspace support for both full and limited range colors, image transforms for mirroring and rotation. The preference "
      type: "link"
      title: 

      url: "/en-US/docs/Mozilla/Firefox/Experimental_features#avif_compliance_strictness"
      children: 
        type: "text"
        value: "image.avif.compliance_strictness"
      type: "text"
      value: " can be used to adjust the compliance strictness with the specification. Animated images are not supported."
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Firefox 77 to 92 require the preference "
      type: "inlineCode"
      value: "image.avif.enable"
      type: "text"
      value: " set "
      type: "inlineCode"
      value: "true"
      type: "text"
      value: ". Earlier versions provide only basic support."
tr (295:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td>Chrome 85, Opera 71, and Firefox 93.<ul><li>Firefox 93 supports still images, with colorspace support for both full and limited range colors, image transforms for mirroring and rotation. The preference <a href=\"/en-US/docs/Mozilla/Firefox/Experimental_features#avif_compliance_strictness\">image.avif.compliance_strictness</a> can be used to adjust the compliance strictness with the specification.\nAnimated images are not supported.</li><li>Firefox 77 to 92 require the preference <code>image.avif.enable</code> set <code>true</code>. Earlier versions provide only basic support.</li></ul></td>"
tr (305:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
td (311:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 5
shouldWrap: true
children: 
  type: "text"
  value: "Color mode support information is provided in the "
  type: "link"
  title: 

  url: "https://aomediacodec.github.io/av1-spec/av1-spec.pdf"
  children: 
    type: "text"
    value: "AV1 Bitstream & Decoding Process Specification"
  type: "text"
  value: ", section 6.4.2 : Color config semantics.",type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 5
shouldWrap: true
children: 
  type: "text"
  value: "A non-exhaustive summary is:",type: "list"
ordered: false
start: 

spread: false
children: 
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Color modes: YUV444, YUV422, YUV420"
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Greyscale support: YUV400"
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Bits: 8/10/12 bit"
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Alpha support"
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "ICC profile support"
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "NCLX support: sRGB, linear sRGB, linear Rec2020, PQ Rec2020, HLG Rec2020, PQ P3, HLG P3, etc."
  type: "listItem"
  spread: false
  children: 
    type: "paragraph"
    children: 
      type: "text"
      value: "Tiling support"
tr (309:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>",type: "html"
value: "<td><p>Color mode support information is provided in the <a href=\"https://aomediacodec.github.io/av1-spec/av1-spec.pdf\">AV1 Bitstream &#x26; Decoding Process Specification</a>, section 6.4.2 : Color config semantics.</p><p>A non-exhaustive summary is:</p><ul><li>Color modes: YUV444, YUV422, YUV420</li><li>Greyscale support: YUV400</li><li>Bits: 8/10/12 bit</li><li>Alpha support</li><li>ICC profile support</li><li>NCLX support: sRGB, linear sRGB, linear Rec2020, PQ Rec2020, HLG Rec2020, PQ P3, HLG P3, etc.</li><li>Tiling support</li></ul></td>"
tr (327:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (331:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (279:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/avif</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.avif</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><p><a href=\"https://aomediacodec.github.io/av1-avif/\">AV1 Image File Format (AVIF)</a></p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>Chrome 85, Opera 71, and Firefox 93.<ul><li>Firefox 93 supports still images, with colorspace support for both full and limited range colors, image transforms for mirroring and rotation. The preference <a href=\"/en-US/docs/Mozilla/Firefox/Experimental_features#avif_compliance_strictness\">image.avif.compliance_strictness</a> can be used to adjust the compliance strictness with the specification.\nAnimated images are not supported.</li><li>Firefox 77 to 92 require the preference <code>image.avif.enable</code> set <code>true</code>. Earlier versions provide only basic support.</li></ul></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>2,147,483,647×2,147,483,647 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><p>Color mode support information is provided in the <a href=\"https://aomediacodec.github.io/av1-spec/av1-spec.pdf\">AV1 Bitstream &#x26; Decoding Process Specification</a>, section 6.4.2 : Color config semantics.</p><p>A non-exhaustive summary is:</p><ul><li>Color modes: YUV444, YUV422, YUV420</li><li>Greyscale support: YUV400</li><li>Bits: 8/10/12 bit</li><li>Alpha support</li><li>ICC profile support</li><li>NCLX support: sRGB, linear sRGB, linear Rec2020, PQ Rec2020, HLG Rec2020, PQ P3, HLG P3, etc.</li><li>Tiling support</li></ul></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy and lossless.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Royalty free. Licensing information is available at http://aomedia.org/license/ .</td></tr>"
tr (354:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/bmp</code></td>"
tr (358:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (362:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (366:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (370:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (379:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (386:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (391:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (396:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (401:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (406:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (377:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>1</td><td>Each bit represents a single pixel, which can be either black or white.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three values representing the red, green, and blue color components; each is <em>D</em> bits.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>2, 4, and 8</td><td>Each pixel is represented by a value which is one 2, 4, or 8 bits, serving as an index into the color table.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>BMP has no distinct grayscale format.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is represented by four values representing the red, green, blue, and alpha color components; each is <em>D</em> bits.</td></tr>"
tr (374:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (415:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (419:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (352:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/bmp</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.bmp</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td>No specification; however, Microsoft provides general documentation of the format at <a href=\"https://docs.microsoft.com/en-us/windows/desktop/gdi/bitmap-storage\">docs.microsoft.com/en-us/windows/desktop/gdi/bitmap-storage</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>All versions of Chrome, Edge, Firefox, Internet Explorer, Opera, and Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>Either 32,767×32,767 or 2,147,483,647×2,147,483,647 pixels, depending on the format version</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><th scope=\"row\">Greyscale</th><td>1</td><td>Each bit represents a single pixel, which can be either black or white.</td></tr><tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three values representing the red, green, and blue color components; each is <em>D</em> bits.</td></tr><tr><th scope=\"row\">Indexed color</th><td>2, 4, and 8</td><td>Each pixel is represented by a value which is one 2, 4, or 8 bits, serving as an index into the color table.</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>BMP has no distinct grayscale format.</td></tr><tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is represented by four values representing the red, green, blue, and alpha color components; each is <em>D</em> bits.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Several compression methods are supported, including lossy or lossless algorithms</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Covered by the <a href=\"https://docs.microsoft.com/en-us/openspecs/dev_center/ms-devcentlp/1c24c7c8-28b0-4ce1-a47d-95fe1ff504bc\">Microsoft Open Specification Promise</a>; while Microsoft holds patents against BMP, they have published a promise not to assert its patent rights as long as specific conditions are met. This is not the same as a license, however. BMP is included under the Windows Metafile Format (<code>.wmf</code>).</td></tr>"
tr (444:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/gif</code></td>"
tr (448:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (452:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (457:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (461:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (470:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (477:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (482:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (487:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (492:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (497:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (468:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td><em>n/a</em></td><td>GIF does not include a dedicated greyscale format.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td><em>n/a</em></td><td>GIF does not support true color pixels.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>8</td><td>Each color in a GIF palette is defined as 8 bits each of red, green, and blue (24 total bits per pixel).</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>GIF does not provide a dedicated greyscale format.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td><em>n/a</em></td><td>GIF does not support true color pixels.</td></tr>"
tr (465:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (506:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (510:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (442:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/gif</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.gif</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.w3.org/Graphics/GIF/spec-gif87.txt\">GIF87a specification</a><br><a href=\"https://www.w3.org/Graphics/GIF/spec-gif89a.txt\">GIF89a specification</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>All versions of Chrome, Edge, Firefox, Internet Explorer, Opera, and Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>65,536×65,536 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><th scope=\"row\">Greyscale</th><td><em>n/a</em></td><td>GIF does not include a dedicated greyscale format.</td></tr><tr><th scope=\"row\">True color</th><td><em>n/a</em></td><td>GIF does not support true color pixels.</td></tr><tr><th scope=\"row\">Indexed color</th><td>8</td><td>Each color in a GIF palette is defined as 8 bits each of red, green, and blue (24 total bits per pixel).</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>GIF does not provide a dedicated greyscale format.</td></tr><tr><th scope=\"row\">True color with alpha</th><td><em>n/a</em></td><td>GIF does not support true color pixels.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless (LZW)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>While the GIF format itself is open, the LZW compression algorithm was covered by patents until the early 2000s. As of July 7, 2004, all relevant patents have expired and the GIF format may be used freely</td></tr>"
tr (529:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/vnd.microsoft.icon</code> (official), <code>image/x-icon</code> (used by Microsoft)</td>"
tr (533:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (537:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (541:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (545:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (555:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (560:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (565:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (570:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (575:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (580:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (552:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>1</td><td>Each bit represents a single pixel, which can be either black or white.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three values representing the red, green, and blue color components; each is <em>D</em> bits.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>2, 4, and 8</td><td>Each pixel is represented by a value which is one 2, 4, or 8 bits, serving as an index into the color table.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>BMP has no distinct grayscale format.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is represented by four values representing the red, green, blue, and alpha color components; each is <em>D</em> bits.</td></tr>"
tr (591:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (596:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (601:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (606:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (611:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (616:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (588:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>1, 2, 4, 8, and 16</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three <em>D</em>-bit values indicating the level of the red, green, and blue color components.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>1, 2, 4, and 8</td><td>Each pixel is a <em>D</em>-bit value indicating an index into a color palette which is contained within a <code><a href=\"https://www.w3.org/TR/PNG/#11PLTE\">PLTE</a></code> chunk in the APNG file; the colors in the palette all use an 8-bit depth.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td>8 and 16</td><td>Each pixel is represented by two <em>D</em>-bit values: the intensity of the greyscale pixel and an alpha sample, indicating how opaque the pixel is.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is comprised of four <em>D</em>-pixel color components: red, green, blue, and the alpha sample indicating how opaque the pixel is.</td></tr>"
tr (549:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (625:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (629:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (527:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/vnd.microsoft.icon</code> (official), <code>image/x-icon</code> (used by Microsoft)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.ico</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>All versions of Chrome, Edge, Firefox, Internet Explorer, Opera, and Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>256×256 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><caption>Icons in BMP format</caption><tbody><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr><tr><th scope=\"row\">Greyscale</th><td>1</td><td>Each bit represents a single pixel, which can be either black or white.</td></tr><tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three values representing the red, green, and blue color components; each is <em>D</em> bits.</td></tr><tr><th scope=\"row\">Indexed color</th><td>2, 4, and 8</td><td>Each pixel is represented by a value which is one 2, 4, or 8 bits, serving as an index into the color table.</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>BMP has no distinct grayscale format.</td></tr><tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is represented by four values representing the red, green, blue, and alpha color components; each is <em>D</em> bits.</td></tr></tbody></table><table class=\"standard-table\"><caption>Icons in PNG format</caption><tbody><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr><tr><th scope=\"row\">Greyscale</th><td>1, 2, 4, 8, and 16</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr><tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three <em>D</em>-bit values indicating the level of the red, green, and blue color components.</td></tr><tr><th scope=\"row\">Indexed color</th><td>1, 2, 4, and 8</td><td>Each pixel is a <em>D</em>-bit value indicating an index into a color palette which is contained within a <code><a href=\"https://www.w3.org/TR/PNG/#11PLTE\">PLTE</a></code> chunk in the APNG file; the colors in the palette all use an 8-bit depth.</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td>8 and 16</td><td>Each pixel is represented by two <em>D</em>-bit values: the intensity of the greyscale pixel and an alpha sample, indicating how opaque the pixel is.</td></tr><tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is comprised of four <em>D</em>-pixel color components: red, green, blue, and the alpha sample indicating how opaque the pixel is.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>BMP-format icons nearly always use lossless compression, but lossy methods are available. PNG icons are always compressed losslessly.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>—</td></tr>"
tr (644:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/jpeg</code></td>"
tr (648:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (652:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (656:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (660:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (669:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (676:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (681:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (686:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (691:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (696:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (667:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td><em>n/a</em></td><td>JPEG has no distinct greyscale mode.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8</td><td>Each pixel is described by the red, blue, and green color components, each of which is 8 bits.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td><em>n/a</em></td><td>JPEG does not offer an indexed color mode.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>JPEG does not support an alpha channel.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td><em>n/a</em></td><td>JPEG does not support an alpha channel.</td></tr>"
tr (664:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (705:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (709:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (642:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/jpeg</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.jpg</code>, <code>.jpeg</code>, <code>.jpe</code>, <code>.jif</code>, <code>.jfif</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://jpeg.org/jpeg/\">jpeg.org/jpeg/</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>All versions of Chrome, Edge, Firefox, Internet Explorer, Opera, and Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>65,535×65,535 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><th scope=\"row\">Greyscale</th><td><em>n/a</em></td><td>JPEG has no distinct greyscale mode.</td></tr><tr><th scope=\"row\">True color</th><td>8</td><td>Each pixel is described by the red, blue, and green color components, each of which is 8 bits.</td></tr><tr><th scope=\"row\">Indexed color</th><td><em>n/a</em></td><td>JPEG does not offer an indexed color mode.</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td>JPEG does not support an alpha channel.</td></tr><tr><th scope=\"row\">True color with alpha</th><td><em>n/a</em></td><td>JPEG does not support an alpha channel.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy; based on the {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiZGlzY3JldGUgY29zaW5lIHRyYW5zZm9ybSIp}}</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>As of October 27, 2006, all United States patents have expired.</td></tr>"
tr (724:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/png</code></td>"
tr (728:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (732:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (741:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (752:7) => tableRow
type: "html"
value: "<th scope=\"row\">Basic support</th>"
tr (762:7) => tableRow
type: "html"
value: "<th scope=\"row\">Alpha channel</th>"
tr (772:7) => tableRow
type: "html"
value: "<th scope=\"row\">Gamma correction</th>"
tr (781:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color correction</th>"
tr (790:7) => tableRow
type: "html"
value: "<th scope=\"row\">Interlacing</th>"
table.standard-table (739:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Basic support</th><td>1</td><td>12</td><td>1</td><td>5</td><td>3.5.1 (Presto)<br>15 (Blink)</td><td>1</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Alpha channel</th><td>1</td><td>12</td><td>1</td><td>5</td><td>6 (Presto)<br>All (Blink)</td><td>1</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Gamma correction</th><td>no</td><td>yes</td><td>1</td><td>8</td><td>1</td><td>broken</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Color correction</th><td>no</td><td>yes</td><td>3</td><td>9</td><td>no</td><td>no</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Interlacing</th><td>no</td><td>?</td><td>1</td><td>broken</td><td>3.5.1</td><td>no</td></tr>"
tr (736:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (803:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (812:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (819:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (824:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (829:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (834:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (839:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (810:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>1, 2, 4, 8, and 16</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three <em>D</em>-bit values indicating the level of the red, green, and blue color components.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>1, 2, 4, and 8</td><td>Each pixel is a <em>D</em>-bit value indicating an index into a color palette which is contained within a <code><a href=\"https://www.w3.org/TR/PNG/#11PLTE\">PLTE</a></code> chunk in the APNG file; the colors in the palette all use an 8-bit depth.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td>8 and 16</td><td>Each pixel is represented by two <em>D</em>-bit values: the intensity of the greyscale pixel and an alpha sample, indicating how opaque the pixel is.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is comprised of four <em>D</em>-pixel color components: red, green, blue, and the alpha sample indicating how opaque the pixel is.</td></tr>"
tr (807:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (848:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (852:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (722:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/png</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.png</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.w3.org/TR/PNG\">w3.org/TR/PNG</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr></thead><tbody><tr><th scope=\"row\">Basic support</th><td>1</td><td>12</td><td>1</td><td>5</td><td>3.5.1 (Presto)<br>15 (Blink)</td><td>1</td></tr><tr><th scope=\"row\">Alpha channel</th><td>1</td><td>12</td><td>1</td><td>5</td><td>6 (Presto)<br>All (Blink)</td><td>1</td></tr><tr><th scope=\"row\">Gamma correction</th><td>no</td><td>yes</td><td>1</td><td>8</td><td>1</td><td>broken</td></tr><tr><th scope=\"row\">Color correction</th><td>no</td><td>yes</td><td>3</td><td>9</td><td>no</td><td>no</td></tr><tr><th scope=\"row\">Interlacing</th><td>no</td><td>?</td><td>1</td><td>broken</td><td>3.5.1</td><td>no</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>2,147,483,647×2,147,483,647 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><th scope=\"row\">Greyscale</th><td>1, 2, 4, 8, and 16</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr><tr><th scope=\"row\">True color</th><td>8 and 16</td><td>Each pixel is represented by three <em>D</em>-bit values indicating the level of the red, green, and blue color components.</td></tr><tr><th scope=\"row\">Indexed color</th><td>1, 2, 4, and 8</td><td>Each pixel is a <em>D</em>-bit value indicating an index into a color palette which is contained within a <code><a href=\"https://www.w3.org/TR/PNG/#11PLTE\">PLTE</a></code> chunk in the APNG file; the colors in the palette all use an 8-bit depth.</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td>8 and 16</td><td>Each pixel is represented by two <em>D</em>-bit values: the intensity of the greyscale pixel and an alpha sample, indicating how opaque the pixel is.</td></tr><tr><th scope=\"row\">True color with alpha</th><td>8 and 16</td><td>Each pixel is comprised of four <em>D</em>-pixel color components: red, green, blue, and the alpha sample indicating how opaque the pixel is.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless, optionally indexed color like GIF</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>©2003 <a href=\"https://www.w3.org/\">W3C</a> (<a href=\"http://www.lcs.mit.edu/\">MIT</a>, <a href=\"http://www.ercim.org/\">ERCIM</a>, <a href=\"https://www.keio.ac.jp/\">Keio</a>), All Rights Reserved. W3C <a href=\"https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer\">liability</a>, <a href=\"https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks\">trademark</a>, <a href=\"https://www.w3.org/Consortium/Legal/copyright-documents\">document use</a> and <a href=\"https://www.w3.org/Consortium/Legal/copyright-software\">software licensing</a> rules apply. No known royalty-bearing patents.</td></tr>"
tr (880:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/svg+xml</code></td>"
tr (884:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (888:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (897:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (908:7) => tableRow
type: "html"
value: "<th scope=\"row\">SVG support</th>"
tr (918:7) => tableRow
type: "html"
value: "<th scope=\"row\">SVG as image ({{SFRNTEVsZW1lbnQoImltZyIp}} etc)</th>"
table.standard-table (895:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">SVG support</th><td>4</td><td>12</td><td>3</td><td>9</td><td>10 (Presto)<br>15 (Blink)</td><td>3.2</td></tr>",type: "html"
value: "<tr><th scope=\"row\">SVG as image ({{SFRNTEVsZW1lbnQoImltZyIp}} etc)</th><td>28</td><td>12</td><td>4</td><td>9</td><td>10 (Presto)<br>15 (Blink)</td><td>9</td></tr>"
tr (892:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (932:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (936:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (940:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (944:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (878:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/svg+xml</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.svg</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.w3.org/TR/SVG2\">w3.org/TR/SVG2</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr></thead><tbody><tr><th scope=\"row\">SVG support</th><td>4</td><td>12</td><td>3</td><td>9</td><td>10 (Presto)<br>15 (Blink)</td><td>3.2</td></tr><tr><th scope=\"row\">SVG as image ({{SFRNTEVsZW1lbnQoImltZyIp}} etc)</th><td>28</td><td>12</td><td>4</td><td>9</td><td>10 (Presto)<br>15 (Blink)</td><td>9</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>Unlimited</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>Colors in SVG are specified using <a href=\"/en-US/docs/Web/CSS/color_value\">CSS color syntax</a>.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>SVG source may be compressed during transit using <a href=\"/en-US/docs/Web/HTTP/Compression\">HTTP compression</a> techniques, or on disk as an <code>.svgz</code> file.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>©2018 <a href=\"https://www.w3.org/\">W3C</a> (<a href=\"http://www.lcs.mit.edu/\">MIT</a>, <a href=\"http://www.ercim.org/\">ERCIM</a>, <a href=\"https://www.keio.ac.jp/\">Keio</a>, <a href=\"https://ev.buaa.edu.cn/\">Beihang</a>), All Rights Reserved. W3C <a href=\"https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer\">liability</a>, <a href=\"https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks\">trademark</a>, <a href=\"https://www.w3.org/Consortium/Legal/copyright-documents\">document use</a> and <a href=\"https://www.w3.org/Consortium/Legal/copyright-software\">software licensing</a> rules apply. No known royalty-bearing patents.</td></tr>"
tr (1013:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/tiff</code></td>"
tr (1017:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (1021:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1025:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (1029:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (1038:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (1043:7) => tableRow
type: "html"
value: "<th scope=\"row\">Bilevel</th>"
tr (1048:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (1053:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (1058:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (1063:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (1068:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (1036:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Bilevel</th><td>1</td><td>A bilevel TIFF stores 8 bits in each byte, one bit per pixel. The <code>PhotometricInterpretation</code> field specifies which of 0 and 1 are black and which is white.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>4 and 8</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td>8</td><td>All true color RGB images are stored using 8-bits each of red, green, and blue.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td>4 and 8</td><td>Each pixel is an index into a <code>ColorMap</code> record, which defines the colors used in the image. The color map lists all of the red values, then all of the green values, then all of the blue values (rather than <code>rgb, rgb, rgb...</code>).</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td>4 and 8</td><td>Alpha information is added by specifying that there are more than 3 samples per pixel in the <code>SamplesPerPixel</code> field, and indicating the type of alpha (1 for an associated, pre-multiplied alpha component, and 2 for unassociated alpha (a separate matte); however, alpha channels are rarely used in TIFF files and may be unsupported by the user's software.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td>8</td><td>Alpha information is added by specifying that there are more than 3 samples per pixel in the <code>SamplesPerPixel</code> field, and indicating the type of alpha (1 for an associated, pre-multiplied alpha component, and 2 for unassociated alpha (a separate matte); however, alpha channels are rarely used in TIFF files and may be unsupported by the user's software.</td></tr>"
tr (1033:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (1077:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1081:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1011:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/tiff</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.tif</code>, <code>.tiff</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.adobe.io/open/standards/TIFF.html\">adobe.io/open/standards/TIFF.html</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>No browsers integrate support for TIFF; its value is as a download format</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>4,294,967,295×4,294,967,295 pixels (theoretical)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component (<em>D</em>)</th><th scope=\"col\">Description</th></tr><tr><th scope=\"row\">Bilevel</th><td>1</td><td>A bilevel TIFF stores 8 bits in each byte, one bit per pixel. The <code>PhotometricInterpretation</code> field specifies which of 0 and 1 are black and which is white.</td></tr><tr><th scope=\"row\">Greyscale</th><td>4 and 8</td><td>Each pixel consists of a single <em>D</em>-bit value indicating the brightness of the greyscale pixel.</td></tr><tr><th scope=\"row\">True color</th><td>8</td><td>All true color RGB images are stored using 8-bits each of red, green, and blue.</td></tr><tr><th scope=\"row\">Indexed color</th><td>4 and 8</td><td>Each pixel is an index into a <code>ColorMap</code> record, which defines the colors used in the image. The color map lists all of the red values, then all of the green values, then all of the blue values (rather than <code>rgb, rgb, rgb...</code>).</td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td>4 and 8</td><td>Alpha information is added by specifying that there are more than 3 samples per pixel in the <code>SamplesPerPixel</code> field, and indicating the type of alpha (1 for an associated, pre-multiplied alpha component, and 2 for unassociated alpha (a separate matte); however, alpha channels are rarely used in TIFF files and may be unsupported by the user's software.</td></tr><tr><th scope=\"row\">True color with alpha</th><td>8</td><td>Alpha information is added by specifying that there are more than 3 samples per pixel in the <code>SamplesPerPixel</code> field, and indicating the type of alpha (1 for an associated, pre-multiplied alpha component, and 2 for unassociated alpha (a separate matte); however, alpha channels are rarely used in TIFF files and may be unsupported by the user's software.</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Most TIFF files are uncompressed, but lossless PackBits and LZW compression are supported, as is lossy JPEG compression.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>No license required (aside from any associated with libraries you might use); all known patents have expired.</td></tr>"
tr (1098:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/webp</code></td>"
tr (1102:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
td (1108:4) => tableCell
type: "paragraph"
summary: "In this guide, we'll cover the image file types generally supported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "link"
  title: 

  url: "https://developers.google.com/speed/webp/docs/riff_container"
  children: 
    type: "text"
    value: "RIFF Container Specification"
  type: "break"
  type: "text"
  value: "{{UkZDKDYzODYsICJWUDggRGF0YSBGb3JtYXQgYW5kIERlY29kaW5nIEd1aWRlIik=}} (lossy encoding)"
  type: "break"
  type: "link"
  title: 

  url: "https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification"
  children: 
    type: "text"
    value: "WebP Lossless Bitstream Specification"
tr (1106:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>",type: "html"
value: "<td><p><a href=\"https://developers.google.com/speed/webp/docs/riff_container\">RIFF Container Specification</a><br>{{UkZDKDYzODYsICJWUDggRGF0YSBGb3JtYXQgYW5kIERlY29kaW5nIEd1aWRlIik=}} (lossy encoding)<br><a href=\"https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification\">WebP Lossless Bitstream Specification</a></p></td>"
tr (1119:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1128:7) => tableRow
type: "html"
value: "<th scope=\"row\">Lossy WebP support</th>"
tr (1138:7) => tableRow
type: "html"
value: "<th scope=\"row\">Lossless WebP</th>"
tr (1149:7) => tableRow
type: "html"
value: "<th scope=\"row\">Animation</th>"
table.standard-table (1117:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Lossy WebP support</th><td>17</td><td>18</td><td>65</td><td>no</td><td>11.10 (Presto)<br>15 (Blink)</td><td>14</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Lossless WebP</th><td>23<br>25 on Android</td><td>18</td><td>65</td><td>no</td><td>12.10 (Presto)<br>15 (Blink)</td><td>14</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Animation</th><td>32</td><td>18</td><td>65</td><td>no</td><td>19 (Blink)</td><td>14</td></tr>"
tr (1114:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (1162:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (1166:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (1170:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1174:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1096:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/webp</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.webp</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><p><a href=\"https://developers.google.com/speed/webp/docs/riff_container\">RIFF Container Specification</a><br>{{UkZDKDYzODYsICJWUDggRGF0YSBGb3JtYXQgYW5kIERlY29kaW5nIEd1aWRlIik=}} (lossy encoding)<br><a href=\"https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification\">WebP Lossless Bitstream Specification</a></p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Lossy WebP support</th><td>17</td><td>18</td><td>65</td><td>no</td><td>11.10 (Presto)<br>15 (Blink)</td><td>14</td></tr><tr><th scope=\"row\">Lossless WebP</th><td>23<br>25 on Android</td><td>18</td><td>65</td><td>no</td><td>12.10 (Presto)<br>15 (Blink)</td><td>14</td></tr><tr><th scope=\"row\">Animation</th><td>32</td><td>18</td><td>65</td><td>no</td><td>19 (Blink)</td><td>14</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>16,383×16,383 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>Lossy WebP stores the image in 8-bit Y'CbCr 4:2:0 (YUV420) format. Lossless WebP uses 8-bit ARGB color, with each component taking 8 bits for a total of 32 bits per pixel.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless (Huffman, LZ77, or color cache codes) or lossy (VP8).</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>No license required; source code is openly available.</td></tr>"
tr (1202:3) => tableRow
type: "html"
value: "<th scope=\"row\">MIME type</th>",type: "html"
value: "<td><code>image/xbm</code>, <code>image-xbitmap</code></td>"
tr (1206:3) => tableRow
type: "html"
value: "<th scope=\"row\">File extension(s)</th>"
tr (1210:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1214:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (1218:3) => tableRow
type: "html"
value: "<th scope=\"row\">Maximum dimensions</th>"
tr (1227:7) => tableRow
type: "html"
value: "<th scope=\"row\">Color mode</th>"
tr (1234:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale</th>"
tr (1239:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color</th>"
tr (1244:7) => tableRow
type: "html"
value: "<th scope=\"row\">Indexed color</th>"
tr (1249:7) => tableRow
type: "html"
value: "<th scope=\"row\">Greyscale with alpha</th>"
tr (1254:7) => tableRow
type: "html"
value: "<th scope=\"row\">True color with alpha</th>"
table.standard-table (1225:5) => table
type: "html"
value: "<tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component</th><th scope=\"col\">Description</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale</th><td>1</td><td>Each byte contains eight 1-bit pixels.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color</th><td><em>n/a</em></td><td><em>n/a</em></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Indexed color</th><td><em>n/a</em></td><td><em>n/a</em></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td><em>n/a</em></td></tr>",type: "html"
value: "<tr><th scope=\"row\">True color with alpha</th><td><em>n/a</em></td><td><em>n/a</em></td></tr>"
tr (1222:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (1263:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1267:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1200:1) => table
type: "html"
value: "<tr><th scope=\"row\">MIME type</th><td><code>image/xbm</code>, <code>image-xbitmap</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">File extension(s)</th><td><code>.xbm</code></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td>None</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td>Firefox 1–3.5, Internet Explorer 1–5</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Maximum dimensions</th><td>Unlimited</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Color mode</th><th scope=\"col\">Bits per component</th><th scope=\"col\">Description</th></tr></thead><tbody><tr><th scope=\"row\">Greyscale</th><td>1</td><td>Each byte contains eight 1-bit pixels.</td></tr><tr><th scope=\"row\">True color</th><td><em>n/a</em></td><td><em>n/a</em></td></tr><tr><th scope=\"row\">Indexed color</th><td><em>n/a</em></td><td><em>n/a</em></td></tr><tr><th scope=\"row\">Greyscale with alpha</th><td><em>n/a</em></td><td><em>n/a</em></td></tr><tr><th scope=\"row\">True color with alpha</th><td><em>n/a</em></td><td><em>n/a</em></td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossless</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Open source</td></tr>"

Missing conversion rules

  • th[scope="row"] (41:4)
  • th[scope="row"] (42:4)
  • th[scope="row"] (50:4)
  • th[scope="row"] (51:4)
  • th[scope="row"] (58:4)
  • th[scope="row"] (59:4)
  • th[scope="row"] (68:4)
  • th[scope="row"] (69:4)
  • th[scope="row"] (76:4)
  • th[scope="row"] (77:4)
  • th[scope="row"] (86:4)
  • th[scope="row"] (87:4)
  • th[scope="row"] (96:4)
  • th[scope="row"] (97:4)
  • th[scope="row"] (104:4)
  • th[scope="row"] (105:4)
  • th[scope="row"] (123:4)
  • th[scope="row"] (124:4)
  • th[scope="row"] (132:4)
  • th[scope="row"] (133:4)
  • th[scope="row"] (139:4)
  • th[scope="row"] (140:4)
  • th[scope="row"] (146:4)
  • th[scope="row"] (147:4)
  • th[scope="row"] (178:4)
  • td (179:4)
  • th[scope="row"] (182:4)
  • th[scope="row"] (186:4)
  • th[scope="row"] (190:4)
  • th[scope="row"] (194:4)
  • th[scope="row"] (198:4)
  • th[scope="row"] (203:8)
  • th[scope="row"] (210:8)
  • th[scope="row"] (215:8)
  • th[scope="row"] (220:8)
  • th[scope="row"] (225:8)
  • th[scope="row"] (230:8)
  • th[scope="row"] (239:4)
  • th[scope="row"] (243:4)
  • th[scope="row"] (282:4)
  • td (283:4)
  • th[scope="row"] (286:4)
  • th[scope="row"] (290:4)
  • th[scope="row"] (296:4)
  • th[scope="row"] (306:4)
  • th[scope="row"] (310:4)
  • th[scope="row"] (328:4)
  • th[scope="row"] (332:4)
  • th[scope="row"] (355:4)
  • td (356:4)
  • th[scope="row"] (359:4)
  • th[scope="row"] (363:4)
  • th[scope="row"] (367:4)
  • th[scope="row"] (371:4)
  • th[scope="row"] (375:4)
  • th[scope="row"] (380:8)
  • th[scope="row"] (387:8)
  • th[scope="row"] (392:8)
  • th[scope="row"] (397:8)
  • th[scope="row"] (402:8)
  • th[scope="row"] (407:8)
  • th[scope="row"] (416:4)
  • th[scope="row"] (420:4)
  • th[scope="row"] (445:4)
  • td (446:4)
  • th[scope="row"] (449:4)
  • th[scope="row"] (453:4)
  • th[scope="row"] (458:4)
  • th[scope="row"] (462:4)
  • th[scope="row"] (466:4)
  • th[scope="row"] (471:8)
  • th[scope="row"] (478:8)
  • th[scope="row"] (483:8)
  • th[scope="row"] (488:8)
  • th[scope="row"] (493:8)
  • th[scope="row"] (498:8)
  • th[scope="row"] (507:4)
  • th[scope="row"] (511:4)
  • th[scope="row"] (530:4)
  • td (531:4)
  • th[scope="row"] (534:4)
  • th[scope="row"] (538:4)
  • th[scope="row"] (542:4)
  • th[scope="row"] (546:4)
  • th[scope="row"] (550:4)
  • th[scope="row"] (556:8)
  • th[scope="row"] (561:8)
  • th[scope="row"] (566:8)
  • th[scope="row"] (571:8)
  • th[scope="row"] (576:8)
  • th[scope="row"] (581:8)
  • th[scope="row"] (592:8)
  • th[scope="row"] (597:8)
  • th[scope="row"] (602:8)
  • th[scope="row"] (607:8)
  • th[scope="row"] (612:8)
  • th[scope="row"] (617:8)
  • th[scope="row"] (626:4)
  • th[scope="row"] (630:4)
  • th[scope="row"] (645:4)
  • td (646:4)
  • th[scope="row"] (649:4)
  • th[scope="row"] (653:4)
  • th[scope="row"] (657:4)
  • th[scope="row"] (661:4)
  • th[scope="row"] (665:4)
  • th[scope="row"] (670:8)
  • th[scope="row"] (677:8)
  • th[scope="row"] (682:8)
  • th[scope="row"] (687:8)
  • th[scope="row"] (692:8)
  • th[scope="row"] (697:8)
  • th[scope="row"] (706:4)
  • th[scope="row"] (710:4)
  • th[scope="row"] (725:4)
  • td (726:4)
  • th[scope="row"] (729:4)
  • th[scope="row"] (733:4)
  • th[scope="row"] (737:4)
  • th[scope="row"] (742:8)
  • th[scope="row"] (753:8)
  • th[scope="row"] (763:8)
  • th[scope="row"] (773:8)
  • th[scope="row"] (782:8)
  • th[scope="row"] (791:8)
  • th[scope="row"] (804:4)
  • th[scope="row"] (808:4)
  • th[scope="row"] (813:8)
  • th[scope="row"] (820:8)
  • th[scope="row"] (825:8)
  • th[scope="row"] (830:8)
  • th[scope="row"] (835:8)
  • th[scope="row"] (840:8)
  • th[scope="row"] (849:4)
  • th[scope="row"] (853:4)
  • th[scope="row"] (881:4)
  • td (882:4)
  • th[scope="row"] (885:4)
  • th[scope="row"] (889:4)
  • th[scope="row"] (893:4)
  • th[scope="row"] (898:8)
  • th[scope="row"] (909:8)
  • th[scope="row"] (919:8)
  • th[scope="row"] (933:4)
  • th[scope="row"] (937:4)
  • th[scope="row"] (941:4)
  • th[scope="row"] (945:4)
  • th[scope="row"] (1014:4)
  • td (1015:4)
  • th[scope="row"] (1018:4)
  • th[scope="row"] (1022:4)
  • th[scope="row"] (1026:4)
  • th[scope="row"] (1030:4)
  • th[scope="row"] (1034:4)
  • th[scope="row"] (1039:8)
  • th[scope="row"] (1044:8)
  • th[scope="row"] (1049:8)
  • th[scope="row"] (1054:8)
  • th[scope="row"] (1059:8)
  • th[scope="row"] (1064:8)
  • th[scope="row"] (1069:8)
  • th[scope="row"] (1078:4)
  • th[scope="row"] (1082:4)
  • th[scope="row"] (1099:4)
  • td (1100:4)
  • th[scope="row"] (1103:4)
  • th[scope="row"] (1107:4)
  • th[scope="row"] (1115:4)
  • th[scope="row"] (1120:8)
  • th[scope="row"] (1129:8)
  • th[scope="row"] (1139:8)
  • th[scope="row"] (1150:8)
  • th[scope="row"] (1163:4)
  • th[scope="row"] (1167:4)
  • th[scope="row"] (1171:4)
  • th[scope="row"] (1175:4)
  • th[scope="row"] (1203:4)
  • td (1204:4)
  • th[scope="row"] (1207:4)
  • th[scope="row"] (1211:4)
  • th[scope="row"] (1215:4)
  • th[scope="row"] (1219:4)
  • th[scope="row"] (1223:4)
  • th[scope="row"] (1228:8)
  • th[scope="row"] (1235:8)
  • th[scope="row"] (1240:8)
  • th[scope="row"] (1245:8)
  • th[scope="row"] (1250:8)
  • th[scope="row"] (1255:8)
  • th[scope="row"] (1264:4)
  • th[scope="row"] (1268:4)
  • table.standard-table[style="max-width: 42rem;"] (1282:1)
  • table.standard-table[style="max-width: 42rem;"] (1303:1)
  • table.standard-table[style="max-width: 42rem;"] (1322:1)
  • table.standard-table[style="max-width: 42rem;"] (1341:1)

Invalid AST transformations

tr (49:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name (short)</th>"
tr (56:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#av1\">AV1</a></th>"
tr (61:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#avc_h.264\">AVC (H.264)</a></th>"
tr (66:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#h.263\">H.263</a></th>"
tr (71:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#hevc_h.265\">HEVC (H.265)</a></th>"
tr (76:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#mp4v-es\">MP4V-ES</a></th>"
tr (81:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#mpeg-1_part_2_video\">MPEG-1</a></th>"
tr (86:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#mpeg-2_part_2_video\">MPEG-2</a></th>"
tr (91:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#theora\">Theora</a></th>"
tr (96:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#vp8\">VP8</a></th>"
tr (101:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"#vp9\">VP9</a></th>"
table.standard-table (47:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name (short)</th><th scope=\"col\">Full codec name</th><th scope=\"col\">Container support</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#av1\">AV1</a></th><td>AOMedia Video 1</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#avc_h.264\">AVC (H.264)</a></th><td>Advanced Video Coding</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#h.263\">H.263</a></th><td>H.263 Video</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#hevc_h.265\">HEVC (H.265)</a></th><td>High Efficiency Video Coding</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#mp4v-es\">MP4V-ES</a></th><td>MPEG-4 Video Elemental Stream</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#mpeg-1_part_2_video\">MPEG-1</a></th><td>MPEG-1 Part 2 Visual</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mpegmpeg-2\">MPEG</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#quicktime\">QuickTime</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#mpeg-2_part_2_video\">MPEG-2</a></th><td>MPEG-2 Part 2 Visual</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mpegmpeg-2\">MPEG</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#quicktime\">QuickTime</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#theora\">Theora</a></th><td>Theora</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#vp8\">VP8</a></th><td>Video Processor 8</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"#vp9\">VP9</a></th><td>Video Processor 9</td><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a></td></tr>"
tr (124:3) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (131:3) => tableRow
type: "html"
value: "<th scope=\"row\">Color depth (bit depth)</th>"
tr (136:3) => tableRow
type: "html"
value: "<th scope=\"row\">Frame rate</th>"
tr (141:3) => tableRow
type: "html"
value: "<th scope=\"row\">Motion</th>"
tr (146:3) => tableRow
type: "html"
value: "<th scope=\"row\">Noise</th>"
tr (151:3) => tableRow
type: "html"
value: "<th scope=\"row\">Resolution (width and height)</th>"
table.standard-table (121:1) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Effect on quality</th><th scope=\"col\">Effect on size</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Color depth (bit depth)</th><td>The higher the color bit depth, the higher the quality of color fidelity is achieved in the video. Additionally, in saturated portions of the image (that is, where colors are pure and intense, such as a bright, pure red [<code>rgba(255, 0, 0, 1)</code>]), color depths below 10 bits per component (10-bit color) allow banding, where gradients cannot be represented without visible stepping of the colors.</td><td>Depending on the codec, higher color depths may result in larger compressed file sizes. The determining factor is what internal storage format is used for the compressed data.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Frame rate</th><td>Primarily affects the perceived smoothness of the motion in the image. To a point, the higher the frame rate, the smoother and more realistic the motion will appear. Eventually the point of diminishing returns is reached. See <a href=\"#reduced_frame_rate\">Frame rate</a> below for details.</td><td>Assuming the frame rate is not reduced during encoding, higher frame rates cause larger compressed video sizes.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Motion</th><td>Compression of video typically works by comparing frames, finding where they differ, and constructing records containing enough information to update the previous frame to approximate the appearance of the following frame. The more successive frames differ from one another, the larger these differences are, and the less effective the compression is at avoiding the introduction of artifacts into the compressed video.</td><td>The complexity introduced by motion results in larger intermediate frames due to the higher number of differences between frames). For this and other reasons, the more motion there is in a video, the larger the output file will typically be.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Noise</th><td>Picture noise (such as film grain effects, dust, or other grittiness to the image) introduces variability. Variability generally makes compression more difficult, resulting in more lost quality due to the need to drop details to achieve the same level of compression.</td><td>The more variability—such as noise—there is in the image, the more complex the compression process and the less success the algorithm is likely to have compressing the image to the same degree. Unless you configure the encoder in a way that ignores some or all of the variations caused by noise, the compressed video will be larger.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Resolution (width and height)</th><td>Higher resolution video, presented in the same screen size, will typically be able to more accurately portray the original scene, barring effects introduced during compression.</td><td>The higher the resolution of a video, the larger it gets. This plays a key role in the final size of the video.</td></tr>"
tr (170:3) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (177:3) => tableRow
type: "html"
value: "<th scope=\"row\">Lossless compression</th>"
tr (182:3) => tableRow
type: "html"
value: "<th scope=\"row\">Lossy compression</th>"
tr (187:3) => tableRow
type: "html"
value: "<th scope=\"row\">Quality setting</th>"
tr (192:3) => tableRow
type: "html"
value: "<th scope=\"row\">Bit rate</th>"
table.standard-table (167:1) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Effect on quality</th><th scope=\"col\">Effect on size</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Lossless compression</th><td>No loss of quality</td><td>Lossless compression cannot reduce the overall video size nearly as much as lossy compression; the resulting files are likely to still be too large for general usage.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Lossy compression</th><td>To some degree, artifacts and other forms of quality degradation wil occur, depending on the specific codec and how much compression is being applied</td><td>The more the encoded video is allowed to deviate from the source, the easier it is to accomplish higher compression rates</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Quality setting</th><td>The higher the quality configuration, the more like the original media the encoded video will look</td><td>In general, higher quality settings will result in larger encoded video files; the degree to which this is true varies depending on the codec</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Bit rate</th><td>Quality generally improves with higher bit rates</td><td>Higher bit rates inherently lead to larger output files</td></tr>"
tr (214:3) => tableRow
type: "html"
value: "<td><h4 id=\"Moiré_patterns\">Moiré patterns</h4><p>A <a href=\"https://en.wikipedia.org/wiki/Moir%C3%A9_pattern\"><strong>Moiré pattern</strong></a> is a large-scale spatial interference pattern produced when a pattern in the source image and the manner in which the encoder operates are slightly out of alignment spatially. The artifacts generated by the encoder then introduce strange, swirling effects in the source image's pattern upon decoding.</p></td>",type: "html"
value: "<td><a href=\"moire-pattern.jpg\"><img alt=\"\" src=\"moire-pattern.jpg\"></a></td>"
td (223:4) => tableCell
type: "heading"
depth: 4
children: 
  type: "text"
  value: "Staircase effect",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 1
shouldWrap: true
children: 
  type: "text"
  value: "The "
  type: "strong"
  children: 
    type: "text"
    value: "staircase effect"
  type: "text"
  value: " is a spatial artifact that occurs when diagonal straight or curved edges that should be smooth take on a jagged appearance, looking somewhat like a set of stair steps. This is the effect that is being reduced by \"anti-aliasing\" filters."
tr (222:3) => tableRow
type: "html"
value: "<td><h4 id=\"Staircase_effect\">Staircase effect</h4><p>The <strong>staircase effect</strong> is a spatial artifact that occurs when diagonal straight or curved edges that should be smooth take on a jagged appearance, looking somewhat like a set of stair steps. This is the effect that is being reduced by \"anti-aliasing\" filters.</p></td>"
td (231:4) => tableCell
type: "heading"
depth: 4
children: 
  type: "text"
  value: "Wagon-wheel effect",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "The "
  type: "strong"
  children: 
    type: "text"
    value: "wagon-wheel effect"
  type: "text"
  value: " (or "
  type: "strong"
  children: 
    type: "text"
    value: "{{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAic3Ryb2Jvc2NvcGljIGVmZmVjdCIp}}"
  type: "text"
  value: ") is the visual effect that's commonly seen in film, in which a turning wheel appears to rotate at the wrong speed, or even in reverse, due to an interaction between the frame rate and the compression algorithm. The same effect can occur with any repeating pattern that moves, such as the ties on a railway line, posts along the side of a road, and so forth. This is a temporal (time-based) aliasing issue; the speed of the rotation interferes with the frequency of the sampling performed during compression or encoding."
tr (230:3) => tableRow
type: "html"
value: "<td><h4 id=\"Wagon-wheel_effect\">Wagon-wheel effect</h4><p>The <strong>wagon-wheel effect</strong> (or <strong>{{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAic3Ryb2Jvc2NvcGljIGVmZmVjdCIp}}</strong>) is the visual effect that's commonly seen in film, in which a turning wheel appears to rotate at the wrong speed, or even in reverse, due to an interaction between the frame rate and the compression algorithm. The same effect can occur with any repeating pattern that moves, such as the ties on a railway line, posts along the side of a road, and so forth. This is a temporal (time-based) aliasing issue; the speed of the rotation interferes with the frequency of the sampling performed during compression or encoding.</p></td>"
table.standard-table (212:1) => table
type: "html"
value: "<tr><td><h4 id=\"Moiré_patterns\">Moiré patterns</h4><p>A <a href=\"https://en.wikipedia.org/wiki/Moir%C3%A9_pattern\"><strong>Moiré pattern</strong></a> is a large-scale spatial interference pattern produced when a pattern in the source image and the manner in which the encoder operates are slightly out of alignment spatially. The artifacts generated by the encoder then introduce strange, swirling effects in the source image's pattern upon decoding.</p></td><td><a href=\"moire-pattern.jpg\"><img alt=\"\" src=\"moire-pattern.jpg\"></a></td></tr>",type: "html"
value: "<tr><td><h4 id=\"Staircase_effect\">Staircase effect</h4><p>The <strong>staircase effect</strong> is a spatial artifact that occurs when diagonal straight or curved edges that should be smooth take on a jagged appearance, looking somewhat like a set of stair steps. This is the effect that is being reduced by \"anti-aliasing\" filters.</p></td><td><a href=\"staircase-effect.jpg\"><img alt=\"\" src=\"staircase-effect.jpg\"></a></td></tr>",type: "html"
value: "<tr><td><h4 id=\"Wagon-wheel_effect\">Wagon-wheel effect</h4><p>The <strong>wagon-wheel effect</strong> (or <strong>{{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAic3Ryb2Jvc2NvcGljIGVmZmVjdCIp}}</strong>) is the visual effect that's commonly seen in film, in which a turning wheel appears to rotate at the wrong speed, or even in reverse, due to an interaction between the frame rate and the compression algorithm. The same effect can occur with any repeating pattern that moves, such as the ties on a railway line, posts along the side of a road, and so forth. This is a temporal (time-based) aliasing issue; the speed of the rotation interferes with the frequency of the sampling performed during compression or encoding.</p></td><td><a href=\"stroboscopic-effect.gif\"><img alt=\"\" src=\"stroboscopic-effect.gif\"></a></td></tr>"
tr (295:3) => tableRow
type: "html"
value: "<th scope=\"col\" style=\"width: 216px;\">Original frame</th>",type: "html"
value: "<th scope=\"col\" style=\"width: 216px;\">Inter-frame differences</th>",type: "html"
value: "<th scope=\"col\" style=\"width: 216px;\">Difference after motion compensation</th>"
tr (307:3) => tableRow
type: "html"
value: "<td style=\"vertical-align: top;\">The first full frame as seen by the viewer.</td>",type: "html"
value: "<td style=\"vertical-align: top;\">Here, only the differences between the first frame and the following frame are seen. Everything else is black. Looking closely, we can see that the majority of these differences come from a horizontal camera move, making this a good candidate for motion compensation.</td>",type: "html"
value: "<td style=\"vertical-align: top;\">To minimize the number of pixels that are different, here we take into account the panning of the camera by first shifting the first frame to the right by two pixels, then by taking the difference. This compensates for the panning of the camera, allowing for more overlap between the two frames.</td>"
tr (312:3) => tableRow
type: "html"
value: "<th colspan=\"3\" style=\"font: italic 0.9em Arial, x-locale-body, sans-serif; vertical-align: middle;\">Images from <a href=\"https://en.wikipedia.org/wiki/Motion_compensation#Illustrated_example\">Wikipedia</a></th>"
table.standard-table (293:1) => table
type: "html"
value: "<tr><th scope=\"col\" style=\"width: 216px;\">Original frame</th><th scope=\"col\" style=\"width: 216px;\">Inter-frame differences</th><th scope=\"col\" style=\"width: 216px;\">Difference after motion compensation</th></tr>",type: "html"
value: "<tr><td style=\"vertical-align: top;\">The first full frame as seen by the viewer.</td><td style=\"vertical-align: top;\">Here, only the differences between the first frame and the following frame are seen. Everything else is black. Looking closely, we can see that the majority of these differences come from a horizontal camera move, making this a good candidate for motion compensation.</td><td style=\"vertical-align: top;\">To minimize the number of pixels that are different, here we take into account the panning of the camera by first shifting the first frame to the right by two pixels, then by taking the difference. This compensates for the panning of the camera, allowing for more overlap between the two frames.</td></tr>",type: "html"
value: "<tr><th colspan=\"3\" style=\"font: italic 0.9em Arial, x-locale-body, sans-serif; vertical-align: middle;\">Images from <a href=\"https://en.wikipedia.org/wiki/Motion_compensation#Illustrated_example\">Wikipedia</a></th></tr>"
tr (350:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td><p>Varies depending on the video's level; theoretical maximum reaches 800 Mbps at level 6.3</p><p>See the AV1 specification's <a href=\"https://aomediacodec.github.io/av1-spec/#levels\">tables of levels</a>, which describe the maximum resolutions and rates at each level.</p></td>"
tr (357:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (361:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (365:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (374:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile</th>"
tr (381:7) => tableRow
type: "html"
value: "<th scope=\"row\">Main</th>"
tr (386:7) => tableRow
type: "html"
value: "<th scope=\"row\">High</th>"
tr (391:7) => tableRow
type: "html"
value: "<th scope=\"row\">Professional</th>"
table.standard-table (372:5) => table
type: "html"
value: "<tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Main</th><td>8 or 10</td><td>4:0:0 (greyscale) or 4:2:0</td></tr>",type: "html"
value: "<tr><th scope=\"row\">High</th><td>8 or 10</td><td>4:0:0 (greyscale), 4:2:0, or 4:4:4</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Professional</th><td>8, 10, or 12</td><td>4:0:0 (greyscale), 4:2:0, 4:2:2, or 4:4:4</td></tr>"
tr (369:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (400:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (404:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (413:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (422:7) => tableRow
type: "html"
value: "<th scope=\"row\">AV1 support</th>"
table.standard-table (411:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AV1 support</th><td>70</td><td>75</td><td>67</td><td>No</td><td>57</td><td>No</td></tr>"
tr (408:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (435:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (439:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (443:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (447:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (451:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (348:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td><p>Varies depending on the video's level; theoretical maximum reaches 800 Mbps at level 6.3</p><p>See the AV1 specification's <a href=\"https://aomediacodec.github.io/av1-spec/#levels\">tables of levels</a>, which describe the maximum resolutions and rates at each level.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Varies by level; for example, level 2.0 has a maximum of 30 FPS while level 6.3 can reach 120 FPS</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>8 x 8 pixels to 65,535 x 65535 pixels with each dimension allowed to take any value between these</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr></thead><tbody><tr><th scope=\"row\">Main</th><td>8 or 10</td><td>4:0:0 (greyscale) or 4:2:0</td></tr><tr><th scope=\"row\">High</th><td>8 or 10</td><td>4:0:0 (greyscale), 4:2:0, or 4:4:4</td></tr><tr><th scope=\"row\">Professional</th><td>8, 10, or 12</td><td>4:0:0 (greyscale), 4:2:0, 4:2:2, or 4:4:4</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AV1 support</th><td>70</td><td>75</td><td>67</td><td>No</td><td>57</td><td>No</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"https://en.wikipedia.org/wiki/ISO/IEC_base_media_file_format\">ISOBMFF</a>, MPEG-TS, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://aomedia.org/\">Alliance for Open Media</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://aomediacodec.github.io/av1-spec/av1-spec.pdf\">https://aomediacodec.github.io/av1-spec/av1-spec.pdf</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Royalty-free, open standard</td></tr>"
tr (474:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Varies by level</td>"
tr (478:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (482:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (486:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (497:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile</th>"
table.standard-table (495:5) => table
type: "html"
value: "<tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr>"
td (492:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 4
shouldWrap: true
children: 
  type: "text"
  value: "Some of the more common or interesting profiles:"
tr (490:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>",type: "html"
value: "<td><p>Some of the more common or interesting profiles:</p><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr><tr><td>Constrained Baseline (CBP)</td><td>8</td><td>4:2:0</td></tr><tr><td>Baseline (BP)</td><td>8</td><td>4:2:0</td></tr><tr><td>Extended (XP)</td><td>8</td><td>4:2:0</td></tr><tr><td>Main (MP)</td><td>8</td><td>4:2:0</td></tr><tr><td>High (HiP)</td><td>8</td><td>4:0:0 (greyscale) and 4:2:0</td></tr><tr><td>Progressive High (ProHiP)</td><td>8</td><td>4:0:0 (greyscale) and 4:2:0</td></tr><tr><td>High 10 (Hi10P)</td><td>8 to 10</td><td>4:0:0 (greyscale) and 4:2:0</td></tr><tr><td>High 4:2:2 (Hi422P)</td><td>8 to 10</td><td>4:0:0 (greyscale), 4:2:0, and 4:2:2</td></tr><tr><td>High 4:4:4 Predictive</td><td>8 to 14</td><td>4:0:0 (greyscale), 4:2:0, 4:2:2, and 4:4:4</td></tr></tbody></table></td>"
tr (551:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (555:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (564:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (573:7) => tableRow
type: "html"
value: "<th scope=\"row\">AVC/H.264 support</th>"
table.standard-table (562:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">AVC/H.264 support</th><td>4</td><td>12</td><td>35</td><td>9</td><td>25</td><td>3.2</td></tr>"
td (561:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Firefox support for AVC is dependent upon the operating system's built-in or preinstalled codecs for AVC and its container in order to avoid patent concerns."
tr (559:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AVC/H.264 support</th><td>4</td><td>12</td><td>35</td><td>9</td><td>25</td><td>3.2</td></tr></tbody></table><p>Firefox support for AVC is dependent upon the operating system's built-in or preinstalled codecs for AVC and its container in order to avoid patent concerns.</p></td>"
tr (587:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (591:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (595:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (599:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (604:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (472:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Varies by level</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Varies by level; up to 300 FPS is possible</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a>, though it's possible to create lossless macroblocks within the image</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>Up to 8,192 x 4,320 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><p>Some of the more common or interesting profiles:</p><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr><tr><td>Constrained Baseline (CBP)</td><td>8</td><td>4:2:0</td></tr><tr><td>Baseline (BP)</td><td>8</td><td>4:2:0</td></tr><tr><td>Extended (XP)</td><td>8</td><td>4:2:0</td></tr><tr><td>Main (MP)</td><td>8</td><td>4:2:0</td></tr><tr><td>High (HiP)</td><td>8</td><td>4:0:0 (greyscale) and 4:2:0</td></tr><tr><td>Progressive High (ProHiP)</td><td>8</td><td>4:0:0 (greyscale) and 4:2:0</td></tr><tr><td>High 10 (Hi10P)</td><td>8 to 10</td><td>4:0:0 (greyscale) and 4:2:0</td></tr><tr><td>High 4:2:2 (Hi422P)</td><td>8 to 10</td><td>4:0:0 (greyscale), 4:2:0, and 4:2:2</td></tr><tr><td>High 4:4:4 Predictive</td><td>8 to 14</td><td>4:0:0 (greyscale), 4:2:0, 4:2:2, and 4:4:4</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>Yes; {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiSHlicmlkIExvZy1HYW1tYSIp}} or Advanced HDR/SL-HDR; both are part of ATSC</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">AVC/H.264 support</th><td>4</td><td>12</td><td>35</td><td>9</td><td>25</td><td>3.2</td></tr></tbody></table><p>Firefox support for AVC is dependent upon the operating system's built-in or preinstalled codecs for AVC and its container in order to avoid patent concerns.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://mpeg.chiariglione.org/\">MPEG</a> / <a href=\"https://www.itu.int/\">ITU</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://mpeg.chiariglione.org/standards/mpeg-4/advanced-video-coding\">https://mpeg.chiariglione.org/standards/mpeg-4/advanced-video-coding</a><br><a href=\"https://www.itu.int/rec/T-REC-H.264\">https://www.itu.int/rec/T-REC-H.264</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Proprietary with numerous patents. Commercial use <a href=\"https://www.mpegla.com/programs/avc-h-264/\">requires a license</a>. Note that multiple patent pools may apply.</td></tr>"
tr (625:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Unrestricted, but typically below 64 Kbps</td>"
tr (629:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (633:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
td (639:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 3
shouldWrap: true
children: 
  type: "text"
  value: "Up to 1408 x 1152 pixels.",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 3
shouldWrap: true
children: 
  type: "text"
  value: "Version 1 of H.263 specifies a set of picture sizes which are supported. Later versions may support additional resolutions."
tr (637:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>",type: "html"
value: "<td><p>Up to 1408 x 1152 pixels.</p><p>Version 1 of H.263 specifies a set of picture sizes which are supported. Later versions may support additional resolutions.</p></td>"
tr (643:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (647:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (651:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (660:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (669:7) => tableRow
type: "html"
value: "<th scope=\"row\">H.263 support</th>"
table.standard-table (658:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">H.263 support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td></tr>"
tr (655:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (682:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (686:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (690:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (694:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (698:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (623:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Unrestricted, but typically below 64 Kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Any</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td><p>Up to 1408 x 1152 pixels.</p><p>Version 1 of H.263 specifies a set of picture sizes which are supported. Later versions may support additional resolutions.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>YCbCr; each picture format (sub-QCIF, QCIF, CIF, 4CIF, or 16CIF) defines the frame size in pixels as well as how many rows each of luminance and chrominance samples are used for each frame</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">H.263 support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#quicktime\">QuickTime</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://www.itu.net/\">ITU</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.itu.int/rec/T-REC-H.263/\">https://www.itu.int/rec/T-REC-H.263/</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Proprietary; appropriate license or licenses are required. Note that multiple patent pools may apply.</td></tr>"
tr (717:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Up to 800,000 Kbps</td>"
tr (721:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (725:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (729:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
td (735:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 4
shouldWrap: true
children: 
  type: "text"
  value: "Information below is provided for the major profiles. There are a number of other profiles available that are not included here.",type: "table"
children: 
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 0
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Profile"
    type: "tableCell"
    children: 
      type: "text"
      value: "Color depths"
    type: "tableCell"
    children: 
      type: "text"
      value: "Chroma subsampling"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 1
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main"
    type: "tableCell"
    children: 
      type: "text"
      value: "8"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:2:0"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 2
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 10"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 10"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:2:0"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 3
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 12"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 12"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0 and 4:2:0"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 4
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 4:2:2 10"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 10"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0, 4:2:0, and 4:2:2"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 5
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 4:2:2 12"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 12"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0, 4:2:0, and 4:2:2"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 6
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 4:4:4"
    type: "tableCell"
    children: 
      type: "text"
      value: "8"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0, 4:2:0, 4:2:2, and 4:4:4"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 7
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 4:4:4 10"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 10"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0, 4:2:0, 4:2:2, and 4:4:4"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 8
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 4:4:4 12"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 12"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0, 4:2:0, 4:2:2, and 4:4:4"
  type: "tableRow"
  summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
  locale: "en-US"
  rowIndex: 9
  shouldWrap: true
  children: 
    type: "tableCell"
    children: 
      type: "text"
      value: "Main 4:4:4 16 Intra"
    type: "tableCell"
    children: 
      type: "text"
      value: "8 to 16"
    type: "tableCell"
    children: 
      type: "text"
      value: "4:0:0, 4:2:0, 4:2:2, and 4:4:4"
tr (733:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>",type: "html"
value: "<td><p>Information below is provided for the major profiles. There are a number of other profiles available that are not included here.</p><table class=\"standard-table\"><thead><tr><th scope=\"col\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr></thead><tbody><tr><td>Main</td><td>8</td><td>4:2:0</td></tr><tr><td>Main 10</td><td>8 to 10</td><td>4:2:0</td></tr><tr><td>Main 12</td><td>8 to 12</td><td>4:0:0 and 4:2:0</td></tr><tr><td>Main 4:2:2 10</td><td>8 to 10</td><td>4:0:0, 4:2:0, and 4:2:2</td></tr><tr><td>Main 4:2:2 12</td><td>8 to 12</td><td>4:0:0, 4:2:0, and 4:2:2</td></tr><tr><td>Main 4:4:4</td><td>8</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr><tr><td>Main 4:4:4 10</td><td>8 to 10</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr><tr><td>Main 4:4:4 12</td><td>8 to 12</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr><tr><td>Main 4:4:4 16 Intra</td><td>8 to 16</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr></tbody></table></td>"
tr (796:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (800:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (809:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (818:7) => tableRow
type: "html"
value: "<th scope=\"row\">HEVC / H.265 support</th>"
table.standard-table (807:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">HEVC / H.265 support</th><td>No</td><td>18</td><td>No</td><td>11</td><td>No</td><td>11</td></tr>"
td (806:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Internet Explorer and Edge only supports HEVC on devices with a hardware codec.",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Mozilla will not support HEVC while it is encumbered by patents."
tr (804:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">HEVC / H.265 support</th><td>No</td><td>18</td><td>No</td><td>11</td><td>No</td><td>11</td></tr></tbody></table><p>Internet Explorer and Edge only supports HEVC on devices with a hardware codec.</p><p>Mozilla will not support HEVC while it is encumbered by patents.</p></td>"
tr (834:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (838:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (842:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (846:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specifications</th>"
tr (851:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (715:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Up to 800,000 Kbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Varies by level; up to 300 FPS is possible</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>128 x 96 to 8,192 x 4,320 pixels; varies by profile and level</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><p>Information below is provided for the major profiles. There are a number of other profiles available that are not included here.</p><table class=\"standard-table\"><thead><tr><th scope=\"col\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr></thead><tbody><tr><td>Main</td><td>8</td><td>4:2:0</td></tr><tr><td>Main 10</td><td>8 to 10</td><td>4:2:0</td></tr><tr><td>Main 12</td><td>8 to 12</td><td>4:0:0 and 4:2:0</td></tr><tr><td>Main 4:2:2 10</td><td>8 to 10</td><td>4:0:0, 4:2:0, and 4:2:2</td></tr><tr><td>Main 4:2:2 12</td><td>8 to 12</td><td>4:0:0, 4:2:0, and 4:2:2</td></tr><tr><td>Main 4:4:4</td><td>8</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr><tr><td>Main 4:4:4 10</td><td>8 to 10</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr><tr><td>Main 4:4:4 12</td><td>8 to 12</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr><tr><td>Main 4:4:4 16 Intra</td><td>8 to 16</td><td>4:0:0, 4:2:0, 4:2:2, and 4:4:4</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">HEVC / H.265 support</th><td>No</td><td>18</td><td>No</td><td>11</td><td>No</td><td>11</td></tr></tbody></table><p>Internet Explorer and Edge only supports HEVC on devices with a hardware codec.</p><p>Mozilla will not support HEVC while it is encumbered by patents.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://www.itu.net/\">ITU</a> / <a href=\"https://mpeg.chiariglione.org/\">MPEG</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specifications</th><td><a href=\"https://www.itu.int/rec/T-REC-H.265\">http://www.itu.int/rec/T-REC-H.265</a><br><a href=\"https://www.iso.org/standard/69668.html\">https://www.iso.org/standard/69668.html</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Proprietary; confirm your compliance with the <a href=\"https://www.mpegla.com/programs/hevc/\">licensing requirements</a>. Note that multiple patent pools may apply.</td></tr>"
tr (868:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>5 Kbps to 1 Gbps and more</td>"
tr (872:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (876:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (880:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (884:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (888:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (892:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (901:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (910:7) => tableRow
type: "html"
value: "<th scope=\"row\">MP4V-ES support</th>"
table.standard-table (899:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">MP4V-ES support</th><td>No</td><td>No</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr>"
td (898:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Firefox supports MP4V-ES in "
  type: "link"
  title: 

  url: "/en-US/docs/Web/Media/Formats/Containers#3gp"
  children: 
    type: "text"
    value: "3GP"
  type: "text"
  value: " containers only.",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Chrome does not support MP4V-ES; however, Chrome OS does."
tr (896:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">MP4V-ES support</th><td>No</td><td>No</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr></tbody></table><p>Firefox supports MP4V-ES in <a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a> containers only.</p><p>Chrome does not support MP4V-ES; however, Chrome OS does.</p></td>"
tr (926:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (930:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (934:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (938:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (942:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (866:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>5 Kbps to 1 Gbps and more</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>No specific limit; restricted only by the data rate</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>Up to 4,096 x 4,096 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>YCrCb with chroma subsampling (4:2:0, 4:2:2, and 4:4:4) supported; up to 12 bits per component</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">MP4V-ES support</th><td>No</td><td>No</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr></tbody></table><p>Firefox supports MP4V-ES in <a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a> containers only.</p><p>Chrome does not support MP4V-ES; however, Chrome OS does.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://mpeg.chiariglione.org/\">MPEG</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td>{{UkZDKDY0MTYp}}</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Proprietary; <a href=\"https://www.mpegla.com/programs/mpeg-4-visual/\">obtain a license</a> through <a href=\"https://www.mpegla.com/\">MPEG LA</a> and/or <a href=\"https://about.att.com/innovation/ip/patents/mpeg-4\">AT&#x26;T</a> as needed</td></tr>"
tr (957:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Up to 1.5 Mbps</td>"
tr (961:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (965:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (969:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (973:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (977:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (981:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (990:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (999:7) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-1 support</th>"
table.standard-table (988:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-1 support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr>"
tr (985:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (1012:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1016:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1020:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (1024:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1028:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (955:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Up to 1.5 Mbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>23.976 FPS, 24 FPS, 25 FPS, 29.97 FPS, 30 FPS, 50 FPS, 59.94 FPS, and 60 FPS</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>Up to 4,095 x 4,095 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>Y'CbCr with 4:2:0 chroma subsampling with up to 12 bits per component</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">MPEG-1 support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td>MPEG</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://mpeg.chiariglione.org/\">MPEG</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.iso.org/standard/22411.html\">https://www.iso.org/standard/22411.html</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Proprietary; however, all patents have expired, so MPEG-1 may be used freely</td></tr>"
tr (1047:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Up to 100 Mbps; varies by level and profile</td>"
tr (1056:7) => tableRow
type: "html"
value: "<th scope=\"row\">Abbr.</th>"
tr (1063:7) => tableRow
type: "html"
value: "<th scope=\"row\">LL</th>"
tr (1068:7) => tableRow
type: "html"
value: "<th scope=\"row\">ML</th>"
tr (1073:7) => tableRow
type: "html"
value: "<th scope=\"row\">H-14</th>"
tr (1078:7) => tableRow
type: "html"
value: "<th scope=\"row\">HL</th>"
table.standard-table (1054:5) => table
type: "html"
value: "<tr><th scope=\"row\">Abbr.</th><th scope=\"col\">Level name</th><th scope=\"col\">Frame rates supported</th></tr>",type: "html"
value: "<tr><th scope=\"row\">LL</th><td>Low Level</td><td>23.9, 24, 25, 29.97, 30</td></tr>",type: "html"
value: "<tr><th scope=\"row\">ML</th><td>Main Level</td><td>23.976, 24, 25, 29.97, 30</td></tr>",type: "html"
value: "<tr><th scope=\"row\">H-14</th><td>High 1440</td><td>23.976, 24, 26, 29.97, 30, 50, 59.94, 60</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HL</th><td>High Level</td><td>23.976, 24, 26, 29.97, 30, 50, 59.94, 60</td></tr>"
tr (1051:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (1087:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1096:7) => tableRow
type: "html"
value: "<th scope=\"row\">Abbr.</th>"
tr (1101:7) => tableRow
type: "html"
value: "<th scope=\"row\">LL</th>"
tr (1106:7) => tableRow
type: "html"
value: "<th scope=\"row\">ML</th>"
tr (1111:7) => tableRow
type: "html"
value: "<th scope=\"row\">H-14</th>"
tr (1116:7) => tableRow
type: "html"
value: "<th scope=\"row\">HL</th>"
table.standard-table (1094:5) => table
type: "html"
value: "<tr><th scope=\"row\">Abbr.</th><th scope=\"col\">Level name</th><th scope=\"col\">Maximum frame size</th></tr>",type: "html"
value: "<tr><th scope=\"row\">LL</th><td>Low Level</td><td>352 x 288 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">ML</th><td>Main Level</td><td>720 x 576 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">H-14</th><td>High 1440</td><td>1440 x 1152 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HL</th><td>High Level</td><td>1920 x 1152 pixels</td></tr>"
tr (1091:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (1125:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (1129:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (1133:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (1142:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1151:7) => tableRow
type: "html"
value: "<th scope=\"row\">MPEG-2 support</th>"
table.standard-table (1140:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">MPEG-2 support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr>"
tr (1137:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>"
tr (1164:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1168:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1172:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (1176:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1181:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1045:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Up to 100 Mbps; varies by level and profile</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Abbr.</th><th scope=\"col\">Level name</th><th scope=\"col\">Frame rates supported</th></tr></thead><tbody><tr><th scope=\"row\">LL</th><td>Low Level</td><td>23.9, 24, 25, 29.97, 30</td></tr><tr><th scope=\"row\">ML</th><td>Main Level</td><td>23.976, 24, 25, 29.97, 30</td></tr><tr><th scope=\"row\">H-14</th><td>High 1440</td><td>23.976, 24, 26, 29.97, 30, 50, 59.94, 60</td></tr><tr><th scope=\"row\">HL</th><td>High Level</td><td>23.976, 24, 26, 29.97, 30, 50, 59.94, 60</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Abbr.</th><th scope=\"col\">Level name</th><th scope=\"col\">Maximum frame size</th></tr><tr><th scope=\"row\">LL</th><td>Low Level</td><td>352 x 288 pixels</td></tr><tr><th scope=\"row\">ML</th><td>Main Level</td><td>720 x 576 pixels</td></tr><tr><th scope=\"row\">H-14</th><td>High 1440</td><td>1440 x 1152 pixels</td></tr><tr><th scope=\"row\">HL</th><td>High Level</td><td>1920 x 1152 pixels</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>Y'CbCr with 4:2:0 chroma subsampling in most profiles; the \"High\" and \"4:2:2\" profiles support 4:2:2 chroma subsampling as well.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">MPEG-2 support</th><td>No</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mpegmpeg-2\">MPEG</a>, MPEG-TS (MPEG Transport Stream), <a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#quicktime\">QuickTime</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://mpeg.chiariglione.org/\">MPEG</a> / <a href=\"https://www.itu.int/\">ITU</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.itu.int/rec/T-REC-H.262\">https://www.itu.int/rec/T-REC-H.262</a><br><a href=\"https://www.iso.org/standard/61152.html\">https://www.iso.org/standard/61152.html</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Proprietary; all patents have expired worldwide with the exception of in Malaysia and the Philippines as of April 1, 2019, so MPEG-2 can be used freely outside those two countries. Patents are licensed by <a href=\"https://www.mpegla.com/programs/mpeg-2/\">MPEG LA</a>.</td></tr>"
tr (1200:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Up to 2 Gbps</td>"
tr (1204:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (1208:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1212:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (1216:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (1220:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
td (1226:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "Yes",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 6
shouldWrap: true
children: 
  type: "text"
  value: "While Theora doesn't support Variable Frame Rate (VFR) within a single stream, multiple streams can be chained together within a single file, and each of those can have its own frame rate, thus allowing what is essentially VFR. However, this is impractical if the frame rate needs to change frequently."
tr (1224:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>",type: "html"
value: "<td><p>Yes</p><p>While Theora doesn't support Variable Frame Rate (VFR) within a single stream, multiple streams can be chained together within a single file, and each of those can have its own frame rate, thus allowing what is essentially VFR. However, this is impractical if the frame rate needs to change frequently.</p></td>"
tr (1235:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1244:7) => tableRow
type: "html"
value: "<th scope=\"row\">Theora support</th>"
table.standard-table (1233:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Theora support</th><td>3</td><td>Yes</td><td>3.5</td><td>No</td><td>10.5</td><td>No</td></tr>"
td (1232:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Edge supports Theora with the optional "
  type: "link"
  title: 

  url: "https://www.microsoft.com/en-us/p/web-media-extensions/9n5tdp8vcmhs?activetab=pivot:overviewtab"
  children: 
    type: "text"
    value: "Web Media Extensions"
  type: "text"
  value: " add-on."
tr (1230:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Theora support</th><td>3</td><td>Yes</td><td>3.5</td><td>No</td><td>10.5</td><td>No</td></tr></tbody></table><p>Edge supports Theora with the optional <a href=\"https://www.microsoft.com/en-us/p/web-media-extensions/9n5tdp8vcmhs?activetab=pivot:overviewtab\">Web Media Extensions</a> add-on.</p></td>"
tr (1258:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1262:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1266:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (1270:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1274:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1198:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Up to 2 Gbps</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Arbitrary; any non-zero value is supported. The frame rate is specified as a 32-bit numerator and a 32-bit denominator, to allow for non-integer frame rates.</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>Any combination of width and height up to 1,048,560 x 1,048,560 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>Y'CbCr with 4:2:0, 4:2:2, and 4:4:4 chroma subsampling at 8 bits per component</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td><p>Yes</p><p>While Theora doesn't support Variable Frame Rate (VFR) within a single stream, multiple streams can be chained together within a single file, and each of those can have its own frame rate, thus allowing what is essentially VFR. However, this is impractical if the frame rate needs to change frequently.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">Theora support</th><td>3</td><td>Yes</td><td>3.5</td><td>No</td><td>10.5</td><td>No</td></tr></tbody></table><p>Edge supports Theora with the optional <a href=\"https://www.microsoft.com/en-us/p/web-media-extensions/9n5tdp8vcmhs?activetab=pivot:overviewtab\">Web Media Extensions</a> add-on.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://www.xiph.org/\">Xiph.org</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.theora.org/doc/\">https://www.theora.org/doc/</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Open and free of royalties and any other licensing requirements</td></tr>"
tr (1291:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Arbitrary; no maximum unless level-based limitations are enforced</td>"
tr (1295:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (1299:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1303:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (1307:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>"
tr (1311:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (1315:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (1324:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1333:7) => tableRow
type: "html"
value: "<th scope=\"row\">VP8 support</th>"
tr (1342:7) => tableRow
type: "html"
value: "<th scope=\"row\">MSE compatibility</th>"
table.standard-table (1322:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">VP8 support</th><td>25</td><td>14</td><td>4</td><td>9</td><td>16</td><td>12.1</td></tr>",type: "html"
value: "<tr><th scope=\"row\">MSE compatibility</th><td></td><td></td><td>Yes</td><td></td><td></td><td></td></tr>"
td (1321:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Edge support for VP8 requires the use of "
  type: "link"
  title: 

  url: "/en-US/docs/Web/API/Media_Source_Extensions_API"
  children: 
    type: "text"
    value: "Media Source Extensions"
  type: "text"
  value: ".",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Safari only supports VP8 in WebRTC connections.",type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Firefox only supports VP8 in MSE when no H.264 hardware decoder is available. Use {{ZG9teHJlZigiTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkiKQ==}} to check for availability."
tr (1319:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">VP8 support</th><td>25</td><td>14</td><td>4</td><td>9</td><td>16</td><td>12.1</td></tr><tr><th scope=\"row\">MSE compatibility</th><td></td><td></td><td>Yes</td><td></td><td></td><td></td></tr></tbody></table><p>Edge support for VP8 requires the use of <a href=\"/en-US/docs/Web/API/Media_Source_Extensions_API\">Media Source Extensions</a>.</p><p>Safari only supports VP8 in WebRTC connections.</p><p>Firefox only supports VP8 in MSE when no H.264 hardware decoder is available. Use {{ZG9teHJlZigiTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkiKQ==}} to check for availability.</p></td>"
tr (1362:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1366:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1370:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (1374:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1378:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1289:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Arbitrary; no maximum unless level-based limitations are enforced</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Arbitrary</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>Up to 16,384 x 16,384 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td>Y'CbCr with 4:2:0 chroma subsampling at 8 bits per component</td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">VP8 support</th><td>25</td><td>14</td><td>4</td><td>9</td><td>16</td><td>12.1</td></tr><tr><th scope=\"row\">MSE compatibility</th><td></td><td></td><td>Yes</td><td></td><td></td><td></td></tr></tbody></table><p>Edge support for VP8 requires the use of <a href=\"/en-US/docs/Web/API/Media_Source_Extensions_API\">Media Source Extensions</a>.</p><p>Safari only supports VP8 in WebRTC connections.</p><p>Firefox only supports VP8 in MSE when no H.264 hardware decoder is available. Use {{ZG9teHJlZigiTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkiKQ==}} to check for availability.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#3gp\">3GP</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes; VP8 is one of the spec-required codecs for WebRTC</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://www.google.com/\">Google</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td>{{UkZDKDYzODYp}}</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Open and free of royalties and any other licensing requirements</td></tr>"
tr (1397:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported bit rates</th>",type: "html"
value: "<td>Arbitrary; no maximum unless level-based limitations are enforced</td>"
tr (1401:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame rates</th>"
tr (1405:3) => tableRow
type: "html"
value: "<th scope=\"row\">Compression</th>"
tr (1409:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported frame sizes</th>"
tr (1418:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile</th>"
tr (1425:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile 0</th>"
tr (1430:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile 1</th>"
tr (1435:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile 2</th>"
tr (1440:7) => tableRow
type: "html"
value: "<th scope=\"row\">Profile 3</th>"
table.standard-table (1416:5) => table
type: "html"
value: "<tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr>",type: "html"
value: "<tr><th scope=\"row\">Profile 0</th><td>8</td><td>4:2:0</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Profile 1</th><td>8</td><td>4:2:0, 4:2:2, and 4:4:4</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Profile 2</th><td>10 to 12</td><td>4:2:0</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Profile 3</th><td>10 to 12</td><td>4:2:0, 4:2:2, and f:4:4</td></tr>"
td (1415:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 4
shouldWrap: true
children: 
  type: "text"
  value: "Color spaces supported: {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiA2MDEiKQ==}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiA3MDkiKQ==}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiAyMDIwIik=}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiU01QVEUgQyIp}}, SMPTE-240M (obsolete; replaced by Rec. 709), and {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAic1JHQiIp}}."
tr (1413:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supported color modes</th>",type: "html"
value: "<td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr></thead><tbody><tr><th scope=\"row\">Profile 0</th><td>8</td><td>4:2:0</td></tr><tr><th scope=\"row\">Profile 1</th><td>8</td><td>4:2:0, 4:2:2, and 4:4:4</td></tr><tr><th scope=\"row\">Profile 2</th><td>10 to 12</td><td>4:2:0</td></tr><tr><th scope=\"row\">Profile 3</th><td>10 to 12</td><td>4:2:0, 4:2:2, and f:4:4</td></tr></tbody></table><p>Color spaces supported: {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiA2MDEiKQ==}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiA3MDkiKQ==}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiAyMDIwIik=}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiU01QVEUgQyIp}}, SMPTE-240M (obsolete; replaced by Rec. 709), and {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAic1JHQiIp}}.</p></td>"
tr (1451:3) => tableRow
type: "html"
value: "<th scope=\"row\">HDR support</th>"
tr (1455:3) => tableRow
type: "html"
value: "<th scope=\"row\">Variable Frame Rate (VFR) support</th>"
tr (1464:7) => tableRow
type: "html"
value: "<th scope=\"row\">Feature</th>"
tr (1473:7) => tableRow
type: "html"
value: "<th scope=\"row\">VP9 support</th>"
tr (1482:7) => tableRow
type: "html"
value: "<th scope=\"row\">MSE compatibility</th>"
table.standard-table (1462:5) => table
type: "html"
value: "<tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr>",type: "html"
value: "<tr><th scope=\"row\">VP9 support</th><td>29</td><td>14</td><td>28</td><td>No</td><td>10.6</td><td>No</td></tr>",type: "html"
value: "<tr><th scope=\"row\">MSE compatibility</th><td></td><td></td><td>Yes</td><td></td><td></td><td></td></tr>"
td (1461:4) => tableCell
type: "paragraph"
summary: "This guide introduces the video codecs you're most likely to encounter or consider using on the web, summaries of their capabilities and any compatibility and utility concerns, and advice to help you choose the right codec for your project's video."
locale: "en-US"
rowIndex: 7
shouldWrap: true
children: 
  type: "text"
  value: "Firefox only supports VP8 in MSE when no H.264 hardware decoder is available. Use {{ZG9teHJlZigiTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkiKQ==}} to check for availability."
tr (1459:3) => tableRow
type: "html"
value: "<th scope=\"row\">Browser compatibility</th>",type: "html"
value: "<td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">VP9 support</th><td>29</td><td>14</td><td>28</td><td>No</td><td>10.6</td><td>No</td></tr><tr><th scope=\"row\">MSE compatibility</th><td></td><td></td><td>Yes</td><td></td><td></td><td></td></tr></tbody></table><p>Firefox only supports VP8 in MSE when no H.264 hardware decoder is available. Use {{ZG9teHJlZigiTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkiKQ==}} to check for availability.</p></td>"
tr (1496:3) => tableRow
type: "html"
value: "<th scope=\"row\">Container support</th>"
tr (1500:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th>"
tr (1504:3) => tableRow
type: "html"
value: "<th scope=\"row\">Supporting/Maintaining organization</th>"
tr (1508:3) => tableRow
type: "html"
value: "<th scope=\"row\">Specification</th>"
tr (1512:3) => tableRow
type: "html"
value: "<th scope=\"row\">Licensing</th>"
table.standard-table (1395:1) => table
type: "html"
value: "<tr><th scope=\"row\">Supported bit rates</th><td>Arbitrary; no maximum unless level-based limitations are enforced</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame rates</th><td>Arbitrary</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Compression</th><td>Lossy <a href=\"https://en.wikipedia.org/wiki/Discrete_cosine_transform\">DCT-based algorithm</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported frame sizes</th><td>Up to 65,536 x 65,536 pixels</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supported color modes</th><td><table class=\"standard-table\"><thead><tr><th scope=\"row\">Profile</th><th scope=\"col\">Color depths</th><th scope=\"col\">Chroma subsampling</th></tr></thead><tbody><tr><th scope=\"row\">Profile 0</th><td>8</td><td>4:2:0</td></tr><tr><th scope=\"row\">Profile 1</th><td>8</td><td>4:2:0, 4:2:2, and 4:4:4</td></tr><tr><th scope=\"row\">Profile 2</th><td>10 to 12</td><td>4:2:0</td></tr><tr><th scope=\"row\">Profile 3</th><td>10 to 12</td><td>4:2:0, 4:2:2, and f:4:4</td></tr></tbody></table><p>Color spaces supported: {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiA2MDEiKQ==}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiA3MDkiKQ==}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiUmVjLiAyMDIwIik=}}, {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAiU01QVEUgQyIp}}, SMPTE-240M (obsolete; replaced by Rec. 709), and {{aW50ZXJ3aWtpKCJ3aWtpcGVkaWEiLCAic1JHQiIp}}.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">HDR support</th><td>Yes; HDR10+, <a href=\"https://en.wikipedia.org/wiki/Hybrid_Log-Gamma\">HLG</a>, and <a href=\"https://en.wikipedia.org/wiki/Perceptual_Quantizer\">PQ</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Variable Frame Rate (VFR) support</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Browser compatibility</th><td><table class=\"standard-table\"><tbody><tr><th scope=\"row\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Edge</th><th scope=\"col\">Firefox</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr><tr><th scope=\"row\">VP9 support</th><td>29</td><td>14</td><td>28</td><td>No</td><td>10.6</td><td>No</td></tr><tr><th scope=\"row\">MSE compatibility</th><td></td><td></td><td>Yes</td><td></td><td></td><td></td></tr></tbody></table><p>Firefox only supports VP8 in MSE when no H.264 hardware decoder is available. Use {{ZG9teHJlZigiTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkiKQ==}} to check for availability.</p></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Container support</th><td><a href=\"/en-US/docs/Web/Media/Formats/Containers#mp4\">MP4</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#ogg\">Ogg</a>, <a href=\"/en-US/docs/Web/Media/Formats/Containers#webm\">WebM</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{R2xvc3NhcnkoIlJUUCIp}} / <a href=\"/en-US/docs/Web/API/WebRTC_API\">WebRTC</a> compatible</th><td>Yes</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Supporting/Maintaining organization</th><td><a href=\"https://www.google.com/\">Google</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Specification</th><td><a href=\"https://www.webmproject.org/vp9/\">https://www.webmproject.org/vp9/</a></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Licensing</th><td>Open and free of royalties and any other licensing requirements</td></tr>"

Missing conversion rules

  • th[scope="row"] (50:4)
  • th[scope="row"] (57:4)
  • th[scope="row"] (62:4)
  • th[scope="row"] (67:4)
  • th[scope="row"] (72:4)
  • th[scope="row"] (77:4)
  • th[scope="row"] (82:4)
  • th[scope="row"] (87:4)
  • th[scope="row"] (92:4)
  • th[scope="row"] (97:4)
  • th[scope="row"] (102:4)
  • th[scope="row"] (125:4)
  • th[scope="row"] (132:4)
  • th[scope="row"] (137:4)
  • th[scope="row"] (142:4)
  • th[scope="row"] (147:4)
  • th[scope="row"] (152:4)
  • th[scope="row"] (171:4)
  • th[scope="row"] (178:4)
  • th[scope="row"] (183:4)
  • th[scope="row"] (188:4)
  • th[scope="row"] (193:4)
  • td (215:4)
  • td (220:4)
  • th[scope="col"][style="width: 216px;"] (296:4)
  • th[scope="col"][style="width: 216px;"] (297:4)
  • th[scope="col"][style="width: 216px;"] (298:4)
  • td[style="vertical-align: top;"] (308:4)
  • td[style="vertical-align: top;"] (309:4)
  • td[style="vertical-align: top;"] (310:4)
  • th[colSpan="3"][style="font: italic 0.9em Arial, x-locale-body, sans-serif; vertical-align: middle;"] (313:4)
  • th[scope="row"] (351:4)
  • td (352:4)
  • th[scope="row"] (358:4)
  • th[scope="row"] (362:4)
  • th[scope="row"] (366:4)
  • th[scope="row"] (370:4)
  • th[scope="row"] (375:8)
  • th[scope="row"] (382:8)
  • th[scope="row"] (387:8)
  • th[scope="row"] (392:8)
  • th[scope="row"] (401:4)
  • th[scope="row"] (405:4)
  • th[scope="row"] (409:4)
  • th[scope="row"] (414:8)
  • th[scope="row"] (423:8)
  • th[scope="row"] (436:4)
  • th[scope="row"] (440:4)
  • th[scope="row"] (444:4)
  • th[scope="row"] (448:4)
  • th[scope="row"] (452:4)
  • th[scope="row"] (475:4)
  • td (476:4)
  • th[scope="row"] (479:4)
  • th[scope="row"] (483:4)
  • th[scope="row"] (487:4)
  • th[scope="row"] (491:4)
  • th[scope="row"] (498:8)
  • th[scope="row"] (552:4)
  • th[scope="row"] (556:4)
  • th[scope="row"] (560:4)
  • th[scope="row"] (565:8)
  • th[scope="row"] (574:8)
  • th[scope="row"] (588:4)
  • th[scope="row"] (592:4)
  • th[scope="row"] (596:4)
  • th[scope="row"] (600:4)
  • th[scope="row"] (605:4)
  • th[scope="row"] (626:4)
  • td (627:4)
  • th[scope="row"] (630:4)
  • th[scope="row"] (634:4)
  • th[scope="row"] (638:4)
  • th[scope="row"] (644:4)
  • th[scope="row"] (648:4)
  • th[scope="row"] (652:4)
  • th[scope="row"] (656:4)
  • th[scope="row"] (661:8)
  • th[scope="row"] (670:8)
  • th[scope="row"] (683:4)
  • th[scope="row"] (687:4)
  • th[scope="row"] (691:4)
  • th[scope="row"] (695:4)
  • th[scope="row"] (699:4)
  • th[scope="row"] (718:4)
  • td (719:4)
  • th[scope="row"] (722:4)
  • th[scope="row"] (726:4)
  • th[scope="row"] (730:4)
  • th[scope="row"] (734:4)
  • th[scope="row"] (797:4)
  • th[scope="row"] (801:4)
  • th[scope="row"] (805:4)
  • th[scope="row"] (810:8)
  • th[scope="row"] (819:8)
  • th[scope="row"] (835:4)
  • th[scope="row"] (839:4)
  • th[scope="row"] (843:4)
  • th[scope="row"] (847:4)
  • th[scope="row"] (852:4)
  • th[scope="row"] (869:4)
  • td (870:4)
  • th[scope="row"] (873:4)
  • th[scope="row"] (877:4)
  • th[scope="row"] (881:4)
  • th[scope="row"] (885:4)
  • th[scope="row"] (889:4)
  • th[scope="row"] (893:4)
  • th[scope="row"] (897:4)
  • th[scope="row"] (902:8)
  • th[scope="row"] (911:8)
  • th[scope="row"] (927:4)
  • th[scope="row"] (931:4)
  • th[scope="row"] (935:4)
  • th[scope="row"] (939:4)
  • th[scope="row"] (943:4)
  • th[scope="row"] (958:4)
  • td (959:4)
  • th[scope="row"] (962:4)
  • th[scope="row"] (966:4)
  • th[scope="row"] (970:4)
  • th[scope="row"] (974:4)
  • th[scope="row"] (978:4)
  • th[scope="row"] (982:4)
  • th[scope="row"] (986:4)
  • th[scope="row"] (991:8)
  • th[scope="row"] (1000:8)
  • th[scope="row"] (1013:4)
  • th[scope="row"] (1017:4)
  • th[scope="row"] (1021:4)
  • th[scope="row"] (1025:4)
  • th[scope="row"] (1029:4)
  • th[scope="row"] (1048:4)
  • td (1049:4)
  • th[scope="row"] (1052:4)
  • th[scope="row"] (1057:8)
  • th[scope="row"] (1064:8)
  • th[scope="row"] (1069:8)
  • th[scope="row"] (1074:8)
  • th[scope="row"] (1079:8)
  • th[scope="row"] (1088:4)
  • th[scope="row"] (1092:4)
  • th[scope="row"] (1097:8)
  • th[scope="row"] (1102:8)
  • th[scope="row"] (1107:8)
  • th[scope="row"] (1112:8)
  • th[scope="row"] (1117:8)
  • th[scope="row"] (1126:4)
  • th[scope="row"] (1130:4)
  • th[scope="row"] (1134:4)
  • th[scope="row"] (1138:4)
  • th[scope="row"] (1143:8)
  • th[scope="row"] (1152:8)
  • th[scope="row"] (1165:4)
  • th[scope="row"] (1169:4)
  • th[scope="row"] (1173:4)
  • th[scope="row"] (1177:4)
  • th[scope="row"] (1182:4)
  • th[scope="row"] (1201:4)
  • td (1202:4)
  • th[scope="row"] (1205:4)
  • th[scope="row"] (1209:4)
  • th[scope="row"] (1213:4)
  • th[scope="row"] (1217:4)
  • th[scope="row"] (1221:4)
  • th[scope="row"] (1225:4)
  • th[scope="row"] (1231:4)
  • th[scope="row"] (1236:8)
  • th[scope="row"] (1245:8)
  • th[scope="row"] (1259:4)
  • th[scope="row"] (1263:4)
  • th[scope="row"] (1267:4)
  • th[scope="row"] (1271:4)
  • th[scope="row"] (1275:4)
  • th[scope="row"] (1292:4)
  • td (1293:4)
  • th[scope="row"] (1296:4)
  • th[scope="row"] (1300:4)
  • th[scope="row"] (1304:4)
  • th[scope="row"] (1308:4)
  • th[scope="row"] (1312:4)
  • th[scope="row"] (1316:4)
  • th[scope="row"] (1320:4)
  • th[scope="row"] (1325:8)
  • th[scope="row"] (1334:8)
  • th[scope="row"] (1343:8)
  • th[scope="row"] (1363:4)
  • th[scope="row"] (1367:4)
  • th[scope="row"] (1371:4)
  • th[scope="row"] (1375:4)
  • th[scope="row"] (1379:4)
  • th[scope="row"] (1398:4)
  • td (1399:4)
  • th[scope="row"] (1402:4)
  • th[scope="row"] (1406:4)
  • th[scope="row"] (1410:4)
  • th[scope="row"] (1414:4)
  • th[scope="row"] (1419:8)
  • th[scope="row"] (1426:8)
  • th[scope="row"] (1431:8)
  • th[scope="row"] (1436:8)
  • th[scope="row"] (1441:8)
  • th[scope="row"] (1452:4)
  • th[scope="row"] (1456:4)
  • th[scope="row"] (1460:4)
  • th[scope="row"] (1465:8)
  • th[scope="row"] (1474:8)
  • th[scope="row"] (1483:8)
  • th[scope="row"] (1497:4)
  • th[scope="row"] (1501:4)
  • th[scope="row"] (1505:4)
  • th[scope="row"] (1509:4)
  • th[scope="row"] (1513:4)

Missing conversion rules

  • table.standard-table[style="max-width: 46em;"] (80:1)

Invalid AST transformations

tr (44:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name</th>"
tr (51:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiVlA4Iik=}}</th>"
td (59:4) => tableCell
type: "paragraph"
summary: "This guide reviews the codecs that browsers are required to implement as well as other codecs that some or all browsers support for WebRTC."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Chrome (52+), Edge, Firefox, Safari",type: "paragraph"
summary: "This guide reviews the codecs that browsers are required to implement as well as other codecs that some or all browsers support for WebRTC."
locale: "en-US"
rowIndex: 2
shouldWrap: true
children: 
  type: "text"
  value: "Firefox for Android 68 and later do not support AVC (H.264) anymore. This is due to a change in Google Play store requirements that prevent Firefox from downloading and installing the OpenH264 codec needed to handle H.264 in WebRTC connections. See "
  type: "link"
  title: 

  url: "https://support.mozilla.org/en-US/kb/firefox-android-openh264"
  children: 
    type: "text"
    value: "this article on SUMO"
  type: "text"
  value: " for details."
tr (56:3) => tableRow
type: "html"
value: "<th scope=\"row\">{{YW5jaCgiQVZDIiwgIkFWQyAvIEguMjY0Iik=}}</th>",type: "html"
value: "<td><p>Chrome (52+), Edge, Firefox, Safari</p><p>Firefox for Android 68 and later do not support AVC (H.264) anymore. This is due to a change in Google Play store requirements that prevent Firefox from downloading and installing the OpenH264 codec needed to handle H.264 in WebRTC connections. See <a href=\"https://support.mozilla.org/en-US/kb/firefox-android-openh264\">this article on SUMO</a> for details.</p></td>"
table.standard-table (41:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name</th><th scope=\"col\">Profile(s)</th><th scope=\"col\">Browser compatibility</th></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiVlA4Iik=}}</th><td>—</td><td>Chrome, Edge, Firefox, Safari (12.1+)</td></tr>",type: "html"
value: "<tr><th scope=\"row\">{{YW5jaCgiQVZDIiwgIkFWQyAvIEguMjY0Iik=}}</th><td>Constrained Baseline (CB)</td><td><p>Chrome (52+), Edge, Firefox, Safari</p><p>Firefox for Android 68 and later do not support AVC (H.264) anymore. This is due to a change in Google Play store requirements that prevent Firefox from downloading and installing the OpenH264 codec needed to handle H.264 in WebRTC connections. See <a href=\"https://support.mozilla.org/en-US/kb/firefox-android-openh264\">this article on SUMO</a> for details.</p></td></tr>"
tr (80:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name</th>"
tr (87:3) => tableRow
type: "html"
value: "<th scope=\"row\">VP9</th>"
table.standard-table (77:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name</th><th scope=\"col\">Profile(s)</th><th scope=\"col\">Browser compatibility</th></tr>",type: "html"
value: "<tr><th scope=\"row\">VP9</th><td>—</td><td>Chrome (48+), Firefox</td></tr>"
tr (171:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name</th>"
tr (177:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_codecs#opus\">Opus</a></th>"
tr (181:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_codecs#g.711_pulse_code_modulation_of_voice_frequencies\">G.711 PCM (A-law)</a></th>"
tr (185:3) => tableRow
type: "html"
value: "<th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_codecs#g.711_pulse_code_modulation_of_voice_frequencies\">G.711 PCM (µ-law)</a></th>"
table.standard-table (168:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name</th><th scope=\"col\">Browser compatibility</th></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_codecs#opus\">Opus</a></th><td>Chrome, Edge, Firefox, Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_codecs#g.711_pulse_code_modulation_of_voice_frequencies\">G.711 PCM (A-law)</a></th><td>Chrome, Firefox, Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\"><a href=\"/en-US/docs/Web/Media/Formats/Audio_codecs#g.711_pulse_code_modulation_of_voice_frequencies\">G.711 PCM (µ-law)</a></th><td>Chrome, Firefox, Safari</td></tr>"
tr (205:3) => tableRow
type: "html"
value: "<th scope=\"row\">Codec name</th>"
tr (211:3) => tableRow
type: "html"
value: "<th scope=\"row\">G.722</th>"
tr (215:3) => tableRow
type: "html"
value: "<th scope=\"row\">iLBC</th>"
tr (219:3) => tableRow
type: "html"
value: "<th scope=\"row\">iSAC</th>"
table.standard-table (202:1) => table
type: "html"
value: "<tr><th scope=\"row\">Codec name</th><th scope=\"col\">Browser compatibility</th></tr>",type: "html"
value: "<tr><th scope=\"row\">G.722</th><td>Chrome, Firefox, Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\">iLBC</th><td>Chrome, Safari</td></tr>",type: "html"
value: "<tr><th scope=\"row\">iSAC</th><td>Chrome, Safari</td></tr>"
tr (401:3) => tableRow
type: "html"
value: "<th scope=\"row\">Chrome</th>"
tr (406:3) => tableRow
type: "html"
value: "<th scope=\"row\">Edge</th>"
tr (411:3) => tableRow
type: "html"
value: "<th scope=\"row\">Firefox</th>"
tr (417:3) => tableRow
type: "html"
value: "<th scope=\"row\">Opera</th>"
tr (422:3) => tableRow
type: "html"
value: "<th scope=\"row\">Safari</th>"
table.standard-table (391:1) => table
type: "html"
value: "<tr><th scope=\"row\">Chrome</th><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Edge</th><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Firefox</th><td></td><td>VP9 (Firefox 46 and later)<br>VP8</td></tr>",type: "html"
value: "<tr><th scope=\"row\">Opera</th><td></td><td></td></tr>",type: "html"
value: "<tr><th scope=\"row\">Safari</th><td></td><td></td></tr>"

Missing conversion rules

  • th[scope="row"] (45:4)
  • th[scope="row"] (52:4)
  • th[scope="row"] (57:4)
  • th[scope="row"] (81:4)
  • th[scope="row"] (88:4)
  • th[scope="row"] (172:4)
  • th[scope="row"] (178:4)
  • th[scope="row"] (182:4)
  • th[scope="row"] (186:4)
  • th[scope="row"] (206:4)
  • th[scope="row"] (212:4)
  • th[scope="row"] (216:4)
  • th[scope="row"] (220:4)
  • th[scope="row"] (402:4)
  • th[scope="row"] (407:4)
  • th[scope="row"] (412:4)
  • th[scope="row"] (418:4)
  • th[scope="row"] (423:4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment