Ingest MPEG-TS DVB Teletext data for Wowza Streaming Engine live stream closed captions

This article describes how to configure Wowza Streaming Engine™ media server software to ingest MPEG-TS DVB Teletext subtitle data as closed captioning data in live streams.

Teletext data is injected into the stream as AMF onTextData events and then translated to the various closed captioning formats for playback. For more information about input-to-output caption translations that are supported in Wowza Streaming Engine, see Supported caption translations for live streaming.

Notes:

Enable DVB Teletext captions and debug logging


  1. In Wowza Streaming Engine Manager, click the Applications tab, and then click the name of your live application.
     
  2. On the details page, click the Properties tab and then click Custom in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  3. In the Custom section, click Edit.
     
  4. Click Add Custom Property, specify the following settings in the Add Custom Property dialog box, and then click Add:
     
    • Path - Select /Root/Application/RTP.
       
    • Name - Enter rtpDePacketizerMPEGTSListenerClass.
       
    • Type - Select String.
       
    • Value - Enter com.wowza.wms.timedtext.dvbtt.RTPDePacketizerMPEGTSMonitorDVBTeletext.
  5. Click Add Custom Property a second time, specify the following settings in the Add Custom Property dialog box, and then click Add:
     
    • Path - Select /Root/Application/RTP.
       
    • Name - Enter mpegtsDVBTeletextDebugLog.
       
    • Type - Select Boolean.
       
    • Value - Enter True.
  6. Click Save, and then restart the application.

Adding these properties enables DVB Teletext ingestion and debug logging. Test your stream to confirm that DVB Teletext data is ingested. If captions are working properly, you can disable debug logging by changing mpegtsDVBTeletextDebugLog to False.

Additional caption debugging

The DVB Teletext data is formatted in UTF-8 format. Special characters may not appear correctly in the console and logs. If you want to debug captions beyond logging, you can add the mpegtsDVBTeletextOutputPath property to your application to save subtitle data for each stream in UTF-8 format.

  1. In Wowza Streaming Engine Manager, click the Applications tab, and then click the name of your live application.
     
  2. On the details page, click the Properties tab and then click Custom in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  3. In the Custom section, click Edit.
     
  4. Click Add Custom Property, specify the following settings in the Add Custom Property dialog box, and then click Add:
     
    • Path - Select /Root/Application.
       
    • Name - Enter mpegtsDVBTeletextOutputPath.
       
    • Type - Select String.
       
    • Value - Enter ${com.wowza.wms.context.VHostConfigHome}/dvbsubtitle.
  5. Click Save, and then restart the application.
     
  6. Create a [install-dir]/dvbsubtitle folder.

For each stream, a new file is created in this folder and subtitle data is saved in UTF-8 format.

Filter DVB Teletext subtitle data


You can also control what subtitle data is ingested using per-stream settings in your .stream file. The DVB Teletext ingestion system will honor the mpegtsProgramID setting if used. You can filter subtitle data by adding the mpegtsDVBTeletextID and mpegtsDVBTeletextType parameters to a .stream file.

  • mpegtsDVBTeletextID – The PID of the DVB Teletext track that you want to ingest. If unused, all DVB Teletext tracks are ingested. You can specify multiple PIDs in a comma-separated list.
     
  • mpegtsDVBTeletextType – The types of DVB Teletext pages that you want to ingest. If unused, all DVB Teletext page types are ingested. You can specify multiple types in a comma-separated list. Possible DVB Teletext page type values are listed in the table below.
     
    Value DVB Teletext Page Type
    1 Initial Teletext page.
    2 Teletext subtitle page.
    3 Additional information page.
    4 Program schedule page.
    5 Teletext subtitle page for hearing-impaired people.

  • mpegtsDVBTeletextMagazineNumber (Integer) – Specifies the Magazine number where the subtitles are embedded. This information is in the teletext descriptor in the Program Map Table (PMT). The default value is 08.
  • mpegtsDVBTeletextPageNumber (Integer) – Specifies the Page number where the subtitles are embedded. This information is in the teletext descriptor in the Program Map Table (PMT). The default value is 88.
Note: For more information about using per-stream settings and descriptions of MPEG-TS stream settings, see Specify per-stream settings in Wowza Streaming Engine .stream files.

Example .stream files that filter subtitle data

This example .stream file ingests program ID 6003 from a multi-program MPEG-TS stream:

{url:"udp://192.168.1.22:1234", mpegtsProgramID: 6003}

This example .stream file ingests DVB Teletext data from PID 646:

{url:"udp://192.168.1.22:1234", mpegtsDVBTeletextID: 646}

This example .stream file ingests DVB Teletext data from PID 646 and 647:

{url:"udp://192.168.1.22:1234", mpegtsDVBTeletextID: "646,647"}

This example .stream file ingests DVB Teletext data with a page type of 2 and 5 (initial Teletext and Teletext subtitle pages):

{url:"udp://192.168.1.22:1234", mpegtsDVBTeletextType: "2,5"}

If this MPEG-TS stream is configured properly and contains DVB Teletext data, you should see the following log statements:

RTPDePacketizerMPEGTSMonitorDVBTeletext.onPMT[stream-name]: programID:3410
RTPDePacketizerMPEGTSMonitorDVBTeletext.onPMT[stream-name]: Hit teletext PID: 0xd58
RTPDePacketizerMPEGTSMonitorDVBTeletext.onPMT[stream-name]: Subtitle page: lang:est type:2 magazine:6 page_number:150
RTPDePacketizerMPEGTSMonitorDVBTeletext.onPMT[stream-name]: Subtitle page: lang:lit type:2 magazine:6 page_number:151
RTPDePacketizerMPEGTSMonitorDVBTeletext.onPMT[stream-name]: Subtitle page: lang:lav type:2 magazine:6 page_number:152
RTPDePacketizerMPEGTSMonitorDVBTeletext.onPMT[stream-name]: Add teletext PID: 0xd58

More resources