GNOME Bugzilla – Bug 618542
DVB subtitles support
Last modified: 2010-12-16 08:35:22 UTC
We don't have a bug for this yet, so let's create one. My understanding is that there are different types of subtitles, e.g. bitmap-based subtitles similar to DVD subtitles, and teletext-based subtitles (and IIRC other types too). For the bitmap-based subtitles, there seems to be some code in http://github.com/leio/libdvbsub which one could slurp into a GStreamer element (it's only one or two small .c files).
there is also gst-teletext here for teletext based subtitles: http://github.com/sebp/gst-teletext/tree
See https://bugzilla.gnome.org/show_bug.cgi?id=618850 It's based on gst-teletext and decodes tt (and tt subtitles). Tested on DVB-S streams.
I have been working in sebastien's teletext decoder and I added a couple of features to the element, like raw vbi input support and text/subtitles/html output support. The code is in github at: http://github.com/ylatuya/gst-teletext I would appreciate any feedback from the community.
Any update on this issue, whether code is fine or additional work is needed?
I have updated the patches for the teletext decoder (bug #619739) adding support for pango. It does output the subtitles in pango markup respecting the teletext lines' colors.
There is now initial support for DVB subtitles available in the dvbsuboverlay plugin in gst-plugins-bad development tree (most likely to get included in gst-plugins-bad-0.10.21). DVB subtitles are defined in the following specification: ETSI EN 300 743 V1.3.1 - Digital Video Broadcasting (DVB); Subtitle systems Compared to v1.2.1, v1.3.1 adds a display definition segment to support scaling and positioning for high definition video content (e.g supporting same dvb subtitle encoding for SD and HD video streams). This should be supported by the current code, thanks to Sebastian Dröge (scaling code) and Janne Grunau (segment parsing and integration). The RLE subpicture decoder is based on http://github.com/leio/libdvbsub with modifications, which in turn was a port of mine to glib/GObject with fixes and some refactoring of LGPL ffmpeg dvbsubdec code. Manual pipelines with it seem to work good on good transport streams, feel free to give it a spin. There is probably some autoplugging work still to be done (soon) for playbin2, though with some media it works out of the box already, but not for most. 2-bit and 8-bit object data segment RLE encodings have not been tested, as no media that has been encoded with that method has been found yet. If you encounter such a media, it currently will spit a g_warning once stating that, so we'd get to know to verify and get feedback on it. It seems most broadcasts use 4-bit object data segment RLE encodings, and this has therefore been pretty extensively tested already. Text coding object data segments are currently not supported. I have not seen any media with that encoding yet with many European broadcasts tested, probably because it is not well defined in the spec and relies on player/broadcast co-operation to pick correct encoding/font/other properties, so not very universally usable. Please let me know if you know of any such examples or when supporting it should be important.. I guess if independent testers find issues with up to date git tree, new bugs can be filed with the details. I consider the feature implementation complete enough to close this bug as FIXED now. Further code improvement will get done in the normal process of getting a plugin from -bad to have good enough quality to be promoted to -good. For completeness, some other ways that DVB/MPEG-TS can have some sort of subtitles support, which are unrelated to DVB subtitles other than the container type usually used, are: * Teletext subtitles - tracked in bug 618850 and bug 619739 * Closed captioning - related to teletext (VBI data), didn't find any existing bug requesting support; but could potentially be hooked up to libzvbi based implementation of teletext support (bug 619739)