How to determine the caption types in live video streams

You can use the ModuleCCDetectLiveCaptions module to analyze a running stream to determine if it has any of the following types of captions: onTextData, onCaption, onCaptionInfo, onCaptionInfo(708), CEA608 field 1, CEA608 field 2, or CEA608 XDS. The module works by capturing the various caption types as the live stream is ingested into your Wowza media server. Knowing the caption types in your stream can help you to debug captioning issues, understand your live caption source, and configure modules and properties for Wowza media server correctly.

IMPORTANT: The ModuleCCDetectLiveCaptions module interferes with other caption processing so don't use it in production environments or in conjunction with other caption modules or live caption ingest types. It's only meant to be used for one-time discovery of captions in a live stream.

To use:

  1. Download ModuleCCDetectLiveCaptions package for your media server software version:
     
  2. Copy the lib/wms-plugin-cc-detectlivecaptions.jar file in the package to the lib folder in your Wowza media server installation ([install-dir]/lib).
     
  3. In a text editor, add and configure ModuleCCDetectLiveCaptions in [install-dir]/conf/[live-application-name]/Application.xml:
     
    1. Add the ModuleCCDetectLiveCaptions module to the end of the <Modules> list:
      <Module>
      	<Name>ModuleCCDetectLiveCaptions</Name>
      	<Description>ModuleCCDetectLiveCaptions</Description>
      	<Class>com.wowza.wms.plugin.closedcaption.live.ModuleCCDetectLiveCaptions</Class>
      </Module>
    2. Add the following properties to the application-level <Properties> container at the bottom of the file (be sure to get the correct <Properties> container - there are several in the Application.xml file):
      <Property>
      	<Name>ccDetectCEA608Field1</Name>
      	<Value>true</Value>
      	<Type>Boolean</Type>
      </Property>
      <Property>
      	<Name>ccDetectCEA608Field2</Name>
      	<Value>true</Value>
      	<Type>Boolean</Type>
      </Property>
      <Property>
      	<Name>ccDetectCEA608XDS</Name>
      	<Value>true</Value>
      	<Type>Boolean</Type>
      </Property>
      <Property>
      	<Name>ccDetectOnTextData</Name>
      	<Value>true</Value>
      	<Type>Boolean</Type>
      </Property>
      <Property>
      	<Name>ccDetectOnCaption</Name>
      	<Value>true</Value>
      	<Type>Boolean</Type>
      </Property>
      
      <Property>
      	<Name>ccDetectCEA608Maximum</Name>
      	<Value>25</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>ccDetectCEA608XDSMaximum</Name>
      	<Value>25</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>ccDetectOnTextDataMaximum</Name>
      	<Value>25</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>ccDetectOnCaptionMaximum</Name>
      	<Value>25</Value>
      	<Type>Integer</Type>
      </Property>

      Property details 

      • ccDetectCEA608Field1 - Determines if CEA-608 field 1 captions are detected (default:true).
         
      • ccDetectCEA608Field2 - Determines if CEA-608 field 2 captions are detected (default: true).
         
      • ccDetectCEA608XDS - Determines if CEA-608 XDS captions are detected (default: false).
         
      • ccDetectOnTextData - Determines if AMF onTextData captions are detected (default: true).
         
      • ccDetectOnCaption - Determines if AMF onCaption and onCaptionInfo captions are detected (default: true).
         
      • ccDetectCEA608Maximum - Maximum number of CEA-608 captions logged (default: 100, 0 means no limit).
         
      • ccDetectCEA608XDSMaximum - Maximum number of CEA-608 XDS events logged (default: 250, 0 means no limit).
         
      • ccDetectOnTextDataMaximum - Maximum number of AMF onTextData captions logged (default: 100, 0 means no limit).
         
      • ccDetectOnCaptionMaximum - Maximum number of AMF onCaption* captions logged (default: 100, 0 means no limit).
    3. (Important) Turn off any caption modules by commenting them out under <Modules>.
       
    4. (Important) Comment out the captionLiveIngestType property under <TimedText>/<Properties>.
  4. Publish a live stream that has captions to your Wowza media server.
     
  5. After letting the live stream run for a few minutes, stop the media server and inspect the log files ([install-dir]/logs/*_access.log) to see what caption types were detected.

Originally Published: 01-06-2014.
 

If you're having problems or want to discuss this article, post in our forum.