Skip to content

Provides all information and scripts how the CTA Wave Test Content is generated

License

Notifications You must be signed in to change notification settings

rcottingham/Test-Content-Generation

 
 

Repository files navigation

Test-Content-Generation

Overview

This repository provides the information and scripts to generate the CTA Wave Test Content.

The run-all.py profiles/csv_file script gathers the data and content from input tables/parameters. Then it sends them for processing. Then it uploads the result.

The encode_dash.py script is primarily about the usage of GPAC leveraging libavcodec with x264 and x265 to generate the CMAF content with some DASH manifest. The intent is to keep the size of the post-processing (e.g. manifest manipulation) as small as possible.

Workflow

  • Download mezzanine content from https://dash.akamaized.net/WAVE/Mezzanine/. See section below for a script.
  • Launch scripts:
    • Encode mezzanine content:
      • Encode to conform to CTA Proposed Test content.
      • Encode at least one option of source content according to media profile.
      • Special codec value "copy" to bypass the encoding. Useful for proprietary codecs such as DTS or Dolby.
    • Package (markup) the content with an MPD according to the CTA Content Model format.
      • NB: done in Python right now, but could eventually an extension to GPAC to produce this.
    • Encrypt the content in-place using GPAC encryption and manifest-forwarding capabilities.
    • Upload the proposed test content to the CTA-WAVE server using SFTP.
    • Update the Webpage: update database.json.
  • Validate that the content conforms to:

Downloading mezzanine

Sample script for mezzanine v4:

mkdir -p releases/4
cd releases/4
curl http://dash.akamaized.net/WAVE/Mezzanine/releases/4/| sed -n 's/^<IMG SRC=\"\/icons\/generic.gif\" ALT=\"\[FILE\]\"> <A HREF=\"\(.*\)\".*$/\1/p' | grep -v croatia_M1 | grep -v croatia_N1 | grep -v croatia_O1 | xargs -I % wget http://dash.akamaized.net/WAVE/Mezzanine/releases/4/%
cd ..

Encoding to test content

How to generate the content

Main content (clear and encrypted)

Switching Set X1 (ss1)

The generation of current Switching Sets (ss1 for avc, ss2 for hevc/chh1) is done by executing ss/gen_ss1.sh and ss/gen_ss2.sh.

Splicing tests

The generation of current splicing tests is done by executing splice/gen_avc.sh and splice/gen_hevc_chh1.sh.

Chunked tests

The generation of current chunked tests is done by executing chunked/gen.sh cfhd t16 and chunked/gen.sh chh1 t2.

Audio content (XPERI/DTS)

Comment/uncomment the inputs array entries in run-all.py. Then ./run-all.py profiles/dtsc.csv to generate the dtsc content.

Validation

Validation as of today is done manually.

The process of validation includes:

About

Provides all information and scripts how the CTA Wave Test Content is generated

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 79.6%
  • Shell 20.4%