The cost of producing MPEG-2 transport streams for the purpose of large scale broadcast production has classically been prohibative to say the least. In fact, these tools were developed specifically to cope with these issues. In conjunction with some of Scandinavia's largest VoD over IP broadcasters, I have developed a suite of tools which I intend to release as open source projects so that small post production studios will be able to provide their customers with studio grade transport streams.
I have no idea how applicable these projects are to individuals, however I do know that anyone that has been asked to produce a subtitled MPEG-2 transport stream for broadcast over fibre or cable until now has been forced to produce multiple open subtitle streams unless they happen to have budgets that justify the purchase of software solutions that start at $1000 and work rapidly upwards from there.
Here are a list of the tools which I've developed and intend to release :
This multiplexer is a complete solution for producing CableLabs compliant MPEG-2 transport streams. The open source release contains support for MPEG-2 Video elementary streams, MPEG-1/2 Audio elementary streams, Dolby AC-3 Audio elementary streams, and DVB subtitles as per EN 300 743 as a proprietary format I'll document on this site.
I have worked directly with the engineers as the broadcasters as well as the engineers at Motorola (formerly Entone) to validate and verfiy the transport streams produced by this software as compatible with their systems. The streams have been verified through Tandberg Television real time transport stream analyzers over DVB-ASI, offline through Manzanita's MP2TSA V3.0, and through Motorola/Entone's VoD stream parsers. So far as I know, I only have a single stream warning, not error. This is a quad-byte alignment issue when padding DVB subtitles. I believe there does not exist any DVB subtitle capable set top boxes that require adherance to this CableLabs hack and therefore should be ignored. If this is not the case, I'd be glad to work with anyone who needs this fixed.
Although SourceForge currently has more than enough subtitle tools available, I believe mine to be unique in the fact that it is designed specifically for the purpose of developing applications for the high end broadcast market and is not focused towards end users. This is not to say that it is better than the other tools, but more to say that the features which it supports are more focussed towards audiences making use of professional subtitle sources.
The subtitling engine is designed specifically to render highly efficient DVB subtitle bitmaps with color space reduction as well as proper anti-aliasing where possible for the highest quality display possible on DVB playback. I have received extensive compliments from people including people from major subtitle software companies suggesting that I produce equal or better titles than their $20,000 systems do.
The subtitle engine was designed mostly for use within the Scandinavian market, so therefore, it has not been extensively tested for importing subtitles from other countries, but I have done my best to make sure that as many characters are supported as possible.
The formats supported for import are as follows :
- .860 and .870 (I can provide tools for reading from 8" floppies over USB on
Windows at a cost)
- .890 (I can provide tools for reading from 5 1/4" floppies
- .PAC
- .STL (this is the STL EBU format, I implemented most documented character tables)
- Text files formats, specifically the ones used by Buena Vista internally (.PAC and .DOC formats)
- DVB (a proprietary format used by this program for multiplexing DVB subtitles into transport streams)
- USF (Universal Subtitling Format) This is an extremely rich subtitling format, I implemented an XML/HTML renderer with style sheets to support this format
- DVD This library can read the subtitles directly from a DVD title and render them as DVB
I needed a solution for syncronizing and rendering subtitles into a program that was also able to capture from a Digital Betacam VTR. This add-in for Vegas was a side effect of these tools. Therefore it is possible to load and render all the subtitle formats supported in the library above as rendered bitmaps as events on the timeline. There is even intelligence to support some auto-align features. For example, if the first subtitle in the file is found a few minutes after 10:00:00:00, then the user is prompted and the Vegas timeline is automatically adjusted to compensate for this.
This is a major jewel. Since there are many film studios outside of the U.S. that often don't even have access to their own original assets and can't offer suitable masters for production of VoD streams, this tool is ideal. This tool in conjunction with a DeCSS tool such as AnyDVD can copy all the film assets from a DVD into their elementary streams including video, audio (stereo and AC-3) as well as subtitles and rerender them (using 3rd party tools, mostly free) to formats that are 100% DVB and CableLabs compliant.
The features include :
- Automatic title selection (99% accurate)
- Semi-automatic stream selection (chooses the streams applicable to the languages the user sets as defaults)
- Full multipass rerendering of video to massage to remove stream errors and adjust bitrate (using CinemaCraft Encoder SP Basic or SP2)
- Full AC-3 stream recoding and remixing using BeSweet, this includes stereo downsampling to provide stereo streams on set-top boxes lacking AC-3 decoders
- Full MPEG-2 stream recoding to remove stream errors using BeSweet. (Over 70% of the 2,500 discs I tested contained vital errors that Manzanita hated)
- Full DVD to DVB subtitle conversion. (Some code exists to use Microsoft Word's OCR tools to perform FULL rerenders to anti-alias DVD titles, this is incomplete though)
- Selectable bitrates as well as semi-accurate automatic bitrate selection.
- Can often be run without setting any options
- Can handle most DVDs, even the horrible ones produced using realtime encoded segments smashed together into a single film.
A full fledged MPEG-2 transport stream analyzer with a terrible user interface that parses all transport related headers and displays them for any user or developer to inspect. Provides full stream buffer timing support for MPEG-2 video, MPEG audio, AC-3 audio and a general DTS/PTS buffer timer. Provides PCR testing for verifying spacing between PCR events. And much more.
I don't know if I'll ever open source this one, there are some good tools already out there, but I hope to get around to it. I figure I'll open source it if I get my hands on a few DVB-ASI cards since this tool also contains a full VoD stream delivery system to test stream playback through Motorola set-top boxes and other UDP transport stream receivers like VLC.
My name is Darren Starr, I spent two years developing these tools while employed at a small post production company who decided to try and deliver Video On Demand streams to a broadcasting customer that had high end demands. At the time that I started developing these tools, there were no possible options for producing these streams without setting up a virtual broadcasting studio costing hundreds of thousands of euro. Even now, for proper solutions, it can cost $50,000 or more before you're even started. So, I wrote everything from scratch. Well every single line of code except for the CRC function which I think I ported from an old zip clone.
I currently feed myself by developing RTP related solutions for a really big video conferencing company, but my love lies in broadcast technology. I am available for consulation work on this project to add features and fix bugs, but without financial incentive, I am limited in the amount of time I can devote to it. If you have special needs or even general ones you're willing to finance the development of, please contact me. All code that I write on this project in the future will be open sourced.
- H.264 Support (already have some code done and now have A LOT more experience working with it)
- AAC/HE-AAC Support (shouldn't take more than a week to stabilize)
- Dirac Support (sounds interesting, pretty sure it would be useful to the broadcast world in England)
- Video Preview Support (in the DVD recoder)
- Whole new DVD UI (would like to hire a design consultant to do it right)
- Switch to a different MPEG-2 Encoder since CinemaCraft is expensive. I'm considering using DirectShow for encoding so that Windows Media Center MPEG-2 encoders can be used.
- Develop a full MPEG-2 pipeline for DirectShow including CableLabs compliant transport stream multiplexer as well as RTP/RTSP/UDP/UDP Multicast sinks.
- Develop a full MPEG-2 pipeline for GStreamer to deliver great stream delivery
I'll eventually get this page finished up, add backgrounds, make menus, and add images for sourceforge and stuff, but I suck as web pages. I'll try a WYSIWYG thing sometime to work on it. In the mean time, let me know how you like the project, give me your thoughts, or just flame the discussions to keep yourself busy.