{"id":"image-vnd-dvb-subtitle","mimeType":"image/vnd.dvb.subtitle","name":"DVB Subtitle","shortName":"DVB-SUB","category":"Broadcast \u0026 Telecommunications","extensions":[".sub",".sup",".ts"],"description":"The image/vnd.dvb.subtitle MIME type represents Digital Video Broadcasting (DVB) subtitles. Unlike text-based subtitle formats (such as WebVTT or SRT), DVB subtitles are transmitted as highly compressed, indexed-color bitmap images using Run-Length Encoding (RLE). This guarantees that broadcasters have absolute control over typography, colors, and layout across all compatible set-top boxes, regardless of the device's installed fonts.","seo":{"title":"image/vnd.dvb.subtitle MIME Type | Developer Reference for DVB Subtitles","description":"Complete reference for the image/vnd.dvb.subtitle MIME type: DVB broadcast subtitling, MPEG-TS integration, extraction tools, and technical specifications.","faqs":[{"question":"Are DVB subtitles text or images?","answer":"DVB subtitles are bitmap images (raster graphics). They are rendered by the broadcaster and sent as pixels, which ensures perfect visual consistency but means the text cannot be natively searched or selected."},{"question":"How do I convert DVB subtitles to SRT or WebVTT?","answer":"Because DVB subtitles are images, you cannot simply convert the file format. You must use Optical Character Recognition (OCR) software, such as Subtitle Edit or specialized FFmpeg pipelines, to visually read the bitmaps and convert them back into text."},{"question":"Can web browsers display DVB subtitles?","answer":"No. HTML5 \u003ctrack\u003e elements only support text-based formats like WebVTT. To display DVB subtitles on the web, JavaScript-based video players (like hls.js) must manually parse the MPEG-TS stream, decode the Run-Length Encoded bitmaps, and draw them onto an HTML5 \u003ccanvas\u003e overlaid on top of the video."}]},"index":{"compression":["Lossless (Run-Length Encoding)"],"browserSupport":{"score":1,"label":"None (Requires JS/Canvas parsing)"},"commonUses":["Digital Television Broadcasts (DVB-T, DVB-S, DVB-C)","IPTV and OTT Streaming","Hardware Set-top Boxes"]},"technical":{"magicBytes":{"hex":"20","ascii":" "},"container":"MPEG-2 Transport Stream (MPEG-TS) PES Packets","compressionAlgorithm":["RLE (Run-Length Encoding)"],"colorDepth":["2-bit (Indexed)","4-bit (Indexed)","8-bit (Indexed CLUT)"],"transparency":true,"animation":false,"metadata":{"exif":false,"xmp":false,"iccProfile":false},"alphaChannel":true,"progressiveLoading":false,"hdrSupport":false},"history":{"developer":"DVB Project (ETSI)","released":"1997","specification":"ETSI EN 300 743 (DVB Subtitling systems)"},"browserSupport":{"chrome":false,"chromeVersion":"None","firefox":false,"firefoxVersion":"None","safari":false,"safariVersion":"None","edge":false,"edgeVersion":"None","internetExplorer":false},"softwareSupport":[{"name":"FFmpeg","logo":""},{"name":"VLC Media Player","logo":""},{"name":"Subtitle Edit","logo":""},{"name":"hls.js (via Canvas)","logo":""}],"conversion":{"convertTo":["srt","vtt","ass","sup"],"convertFrom":["srt","vtt","ass"]},"developer":{"httpHeaders":[{"header":"Content-Type","value":"image/vnd.dvb.subtitle"}],"htmlAccept":"None","fileDetection":["DVB Subtitles are rarely standalone files. They are typically detected within an MPEG-TS multiplex via the Program Map Table (PMT), identified by a stream_type of 0x06 (PES private data) combined with a DVB Subtitling Descriptor (tag 0x59).","Inside the PES packet payload, the DVB subtitling data_identifier byte is strictly 0x20."]},"prosCons":{"pros":["Guarantees 100% accurate visual representation (fonts, colors, layouts) exactly as intended by the broadcaster","Effortlessly supports complex character sets (e.g., Arabic, Asian languages) without relying on the client device possessing the necessary fonts","Supports region-specific dynamic positioning to avoid obscuring important on-screen graphics or burned-in lower thirds"],"cons":["Requires significantly more bandwidth than text-based subtitles","Inaccessible to screen readers and cannot be indexed by search engines","Requires OCR (Optical Character Recognition) to translate back into standard text-based web formats","Zero native support in HTML5 video elements"]},"specifications":{"url":"https://www.etsi.org/deliver/etsi_en/300700_300799/300743/","rfc":"","mimeAliases":[]},"developerSnippets":{"python":"import subprocess\n# Extracting DVB subtitles requires a demuxer like FFmpeg, not standard file parsing\n# This command maps the subtitle stream from a TS file and copies it to a standalone format\nsubprocess.run(['ffmpeg', '-i', 'broadcast.ts', '-map', '0:s:0', '-c:s', 'copy', 'subs.sup'])","nodejs":"// Parsing DVB subtitles in Node requires deep MPEG-TS PES packet parsing.\n// Client-side libraries like 'hls.js' handle this by parsing the TS stream, extracting the RLE bitmaps, applying the Color Look-Up Table (CLUT), and drawing them onto a canvas.","go":"import \"fmt\"\n// DVB subtitle parsing in Go requires decoding the MPEG-TS layer, finding the PES packet with data_identifier 0x20, and decoding the RLE pixel data into an image.Image interface.","php":"// PHP is ill-equipped for parsing live DVB subtitle bitstreams. In web backends, you would typically use exec() to shell out to FFmpeg for extraction or OCR."},"relatedFormats":[]}
