Determine the type of captions used in a Wowza Streaming Engine live stream

The Wowza Streaming Engine™ media server software ModuleCCDetectLiveCaptions module can analyze an active live stream to determine if it has closed captions. It can recognize onTextData, onCaption, onCaptionInfo, onCaptionInfo(708), CEA608 field 1, CEA608 field 2, and CEA608 XDS captions. The module works by capturing the various caption types as the live stream is ingested into Wowza Streaming Engine. Knowing the caption types in your stream can help you 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.
  1. Download the ModuleCCDetectLiveCaptions package for Wowza Streaming Engine.
  2. Copy the lib/wms-plugin-cc-detectlivecaptions.jar file in the package to the lib folder in the Wowza Streaming Engine installation directory ([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 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 reference

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