2GO_OTT_File_color

Installation

Before installing MainConcept 2GO please make sure Docker is installed correctly and the hello-world example from Docker is executed corrected.

Installing Docker

To download and install Docker on your server, please follow the instructions here: www.docker.com/community-edition

After successful installation you should be able to run the Docker “hello-world” container. Example output from the Docker hello-world container: 

$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

If you see different output, please refer to the Docker installation guide.

Resources for Docker

On Windows machines there is a default limitation of resources available for Docker. It could be adjusted in the "Settings > Advanced" section. For more information, please check the official website: docs.docker.com/docker-for-windows.

Installing MainConcept 2GO

1) Extract the MainConcept 2GO package
To install your MainConcept 2GO product first unpack the downloaded ZIP file into a new folder on your computer. The files within the folder depend on the 2GO product.

total 40
drwxrwxr-x 2 thomas thomas  4096 Apr 10 14:23 docker
-rw-rw-r-- 1 thomas thomas 17835 Apr 10 14:23 EULA.txt
-rw-rw-r-- 1 thomas thomas    77 Apr 10 14:23 info.txt
-rw-rw-r-- 1 thomas thomas  2721 Apr 10 14:23 readme.txt
-rw-rw-r-- 1 thomas thomas  4096 Apr 10 14:23 scripts
-rw-rw-r-- 1 thomas thomas  4096 Apr 10 15:10 volume
~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# █

2) Install the MainConcept 2GO docker image
To install the MainConcept 2GO image in your local Docker environment, “cd” into the docker folder and run the install_image script:

~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# cd docker/
~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo/docker# ./install_image.sh
Installing MainConcept 2GO in your local Docker environment...
e6bc3d95b8d4: Loading layer [============================>] 28.87MB/28.87MB
Loaded image: mc_2go_broadcast_transcoder_demo:latest
~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# █

Verify if the 2GO container is installed properly by using “docker image ls” command:

~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo/docker# docker image ls
REPOSITORY                         TAG      IMAGE ID      CREATED      SIZE
mc_2go_broadcast_transcoder_demo   latest   2e15d1d96bd9  3 hours ago  39.9MB
~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo/docker# █

Note: For using both the demo and full version of MainConcept 2GO, you must allow the server running MC2GO a connection to https://taas-reporting-srv.mainconcept.com. If you want to use the products offline (i.e. without internet connection), please contact customer.carenoSp@m@mainconcept.com. We will get in touch with you about the necessary steps.

Settings

Supported Input Codecs & Formats

MainConcept 2GO OTT File Transcoder HLS supports the following input codecs and formats:

  • Video: MPEG-1/2, MPEG-4 Part 2, H.263, VC-1, HEVC/H.265, AVC/H.264, DV / DVCPRO, JPEG 2000
  • Audio: PCM / LPCM, MPEG Layer 1/2/3, AAC / HE-AAC, WMA, AMR, RAW / WAV, DV, AC-3, E-AC-3
  • Container: Elementary Streams, MPEG-2 Program Stream / Transport Stream, MP4, 3GP, F4V, ASF, DV, DIF, MJ2, MXF, RAW

Supported Output Formats

MainConcept 2GO OTT File Transcoder HLS has support for the following output formats.

  • HLS AVC (AVC/H.264 (8-bit) video and AAC LC audio) including fMP4 and MPEG-2 TS packaging and playlist / master playlist file generation
  • HLS HEVC (HEVC/H.265 (8-bit video and AAC LC audio) including fMP4 packaging and MPD / manifest file generation
  • Hybrid playlist generation with AVC in TS and HEVC in fMP4

Configuration

With Docker installed most of the MainConcept 2GO configuration is done. However, some 2GO products require shared folders, or specific parameters at startup.

Configuring shared folders

To read and write files located on the host computer, MainConcept 2GO is using shared volumes to access the filesystem of the host. Docker uses mounted volumes to share host folders with 2GO containers. The convenience script inside the scripts folder to run the MainConcept 2GO container, automatically maps the required folders from your host computer to the 2GO container.

Configuration options

MainConcept 2GO OTT File Transcoder HLS supports the following configuration options:

Option Sample value Description
ACCEPT_EULA Y The MainConcept End-User License Agreement (EULA) must be accepted before MainConcept 2Go can start. The license terms for this product can be found in provided package.
SHARED_PATH_IN /path/source_folder Folder where the input file is located
SHARED_PATH_OUT /path/target_folder Folder for the encoded output file
INPUT 8MBit.mp4 Source filename for audio conversion; must be in or under SHARED_PATH_IN
OUTPUT out_8Mbit Target filename for encoded output; the file extension will be created by 2GO; must be in or under SHARED_PATH_OUT
PRESETNAME Apple Hybrid HLS AVC TS HEVC fMP4 Audio Preset file for Apple HLS conversion; must be in or under SHARED_PATH_IN
PRESET <folder_in_shared_path>/Apple Hybrid HLS AVC TS HEVC fMP4 Audio.mps Custom preset file(s) (MPS); must be in or under SHARED_PATH_IN volume outside of the Docker container. Note: When PRESET is used, PRESETNAME must not be used.
VIDEO_LEVELS v3-avc,v5-avc,v7-avc,v4-hevc,v8-hevc Video levels / layers in the preset files. For non-hybrid preset, only v1,v2,v3, etc.is used.
AUDIO_LEVELS a1 Audio levels / layers in the preset files.
CUSTOMER_ID Unique customer identifier provided by MainConcept. Customer ID parameter can be also represented as `CID`
VERBOSITY SILENT Sets verbose level.
Available options are:
- SILENT (0) - Prints only error messages
- DEFAULT (1) - Default level if verbose level is not specified. Prints out the copyright/version information
- FULL (2) - Higher verbose level. Prints all available information including command-line parameters INPUT / OUTPUT / PRESETS / SERIAL

Preset Usage

Apple Hybrid HLS AVC TS HEVC fMP4 audio.mps:

MC2GO value Preset Video Settings Audio Settings Muxer Settings
v1-avc video_hls-avc_level1_cell_416x234_145kbps Layer 1: AVC/H.264, 8-bit, 416x234, 145 kb, 16x9 TS
v2-avc video_hls-avc_level2_cell_480x270_365kbps Layer 2: AVC/H.264, 8-bit, 480x270, 365 kb, 16x9 TS
v3-avc video_hls-avc_level3_sd_640x360_730kbps Layer 3: AVC/H.264, 8-bit, 640x360, 730 kb, 16x9 TS
v4-avc video_hls-avc_level4_sd_768x432_1100kbps Layer 4: AVC/H.264, 8-bit, 768x432, 1100 kb, 16x9 TS
v5-avc video_hls-avc_level5_720p_960x540_2000kbps Layer 5: AVC/H.264, 8-bit, 960x540, 2000 kb, 16x9 TS
v6-avc video_hls-avc_level6_720p_1280x720_3000kbps Layer 6: AVC/H.264, 8-bit, 1280x720, 3000 kb, 16x9 TS
v7-avc video_hls-avc_level7_720p_1280x720_4500kbps Layer 7: AVC/H.264, 8-bit, 1280x720, 4500 kb, 16x9 TS
v8-avc video_hls-avc_level8_1080p_1920x1080_6000kbps Layer 8: AVC/H.264, 8-bit, 1920x1080, 6000 kb, 16x9 TS
v9-avc video_hls-avc_level9_1080p_1920x1080_7800kbps Layer 9: AVC/H.264, 8-bit, 1920x1080, 7800 kb, 16x9 TS
v1-hevc video_hls-hevc_level1_cell_416x234_145kbps Layer 1: HEVC/H.265, 8-bit, 416x234, 145 kb, 16x9 fMP4
v2-hevc video_hls-hevc_level2_cell_480x270_300kbps Layer 2: HEVC/H.265, 8-bit, 480x270, 300 kb, 16x9 fMP4
v3-hevc video_hls-hevc_level3_sd_640x360_660kbps Layer 3: HEVC/H.265, 8-bit, 640x360, 660 kb, 16x9 fMP4
v4-hevc video_hls-hevc_level4_sd_768x432_990kbps Layer 4: HEVC/H.265, 8-bit, 768x432, 990 kb, 16x9 fMP4
v5-hevc video_hls-hevc_level5_720p_960x540_1700kbps Layer 5: HEVC/H.265, 8-bit, 960x540, 1700 kb, 16x9 fMP4
v6-hevc video_hls-hevc_level6_720p_1280x720_2400kbps Layer 6: HEC/H.265, 8-bit, 1280x720, 2400 kb, 16x9 fMP4
v7-hevc video_hls-hevc_level7_720p_1280x720_3200kbps Layer 7: HEVC/H.265, 8-bit, 1280x720, 3200 kb, 16x9 fMP4
v8-hevc video_hls-hevc_level8_1080p_1920x1080_4500kbps Layer 8: HEVC/H.265, 8-bit, 1920x1080, 4500 kb, 16x9 fMP4
v9-hevc video_hls-hevc_level9_1080p_1920x1080_5800kbps Layer 9: HEVC/H.265, 8-bit, 1920x1080, 5800 kb, 16x9 fMP4
v10-hevc video_hls-hevc_level10_4k_2560x1440_8100kbps Layer 10: HEVC/H.265, 8-bit, 2560x1440, 8100 kb, 16x9 fMP4
v11-hevc video_hls-hevc_level11_4k_3840x2160_11600kbps Layer 11: HEVC/H.265, 8-bit, 3840x2160, 11600 kb, 16x9 fMP4
v12-hevc video_hls-hevc_level12_4k_3840x2160_16800kbps Layer 12: HEVC/H.265, 8-bit, 3840x2160, 16800 kb, 16x9 fMP4
a1 audio_hls-hevc_level1_cell_aac-lc_2ch_48khz_64kbps Layer 1: AAC-LC, stereo, 128 kbps, 48 khz, 16-bit TS*/fMP4*
a2 audio_hls-hevc_level3_sd_aac-lc_2ch_48khz_96kbps Layer 2: AAC-LC, stereo, 96 kbps, 96 khz, 16-bit TS*/fMP4*
a3 audio_hls-hevc_level5_720p_aac-lc_2ch_48khz_128kbps Layer 3: AAC-LC, stereo, 96 kbps, 128 khz, 16-bit TS*/fMP4*

Apple HLS AVC TS 16x9.mps:

MC2GO value Video Settings Audio Settings Muxer Settings
v1 Layer 1: AVC/H.264, 8-bit, 416x234, 145 kb, 16x9 TS
v2 Layer 2: AVC/H.264, 8-bit, 480x270, 365 kb, 16x9 TS
v3 Layer 3: AVC/H.264, 8-bit, 640x360, 730 kb, 16x9 TS
v4 Layer 4: AVC/H.264, 8-bit, 768x432, 1100 kb, 16x9 TS
v5 Layer 5: AVC/H.264, 8-bit, 960x540, 2000 kb, 16x9 TS
v6 Layer 6: AVC/H.264, 8-bit, 1280x720, 3000 kb, 16x9 TS
v7 Layer 7: AVC/H.264, 8-bit, 1280x720, 4500 kb, 16x9 TS
v8 Layer 8: AVC/H.264, 8-bit, 1920x1080, 6000 kb, 16x9 TS
v9 Layer 9: AVC/H.264, 8-bit, 1920x1080, 7800 kb, 16x9 TS
a1 Layer 1: AAC-LC, stereo, 128 kbps, 48 khz, 16-bit TS**

** For HLS AVC in TS as well as for HLS HEVC in fMP4, video and audio are muxed into separate containers.

Apple HLS HEVC fMP4 16x9.mps:

MC2GO value Video Settings Audio Settings Muxer Settings
v1 Layer 1: HEVC/H.265, 8-bit, 416x234, 145 kb, 16x9 fMP4
v2 Layer 2: HEVC/H.265, 8-bit, 480x270, 300 kb, 16x9 fMP4
v3 Layer 3: HEVC/H.265, 8-bit, 640x360, 660 kb, 16x9 fMP4
v4 Layer 4: HEVC/H.265, 8-bit, 768x432, 990 kb, 16x9 fMP4
v5 Layer 5: HEVC/H.265, 8-bit, 960x540, 1700 kb, 16x9 fMP4
v6 Layer 6: HEC/H.265, 8-bit, 1280x720, 2400 kb, 16x9 fMP4
v7 Layer 7: HEVC/H.265, 8-bit, 1280x720, 3200 kb, 16x9 fMP4
v8 Layer 8: HEVC/H.265, 1920x1080, 4500 kb, 16x9 fMP4
v9 Layer 9: HEVC/H.265, 1920x1080, 5800 kb, 16x9 fMP4
v10 Layer 10: HEVC/H.265, 8-bit, 2560x1440, 8100 kb, 16x9 fMP4
v11 Layer 11: HEVC/H.265, 8-bit, 3840x2160, 11600 kb, 16x9 fMP4
v12 Layer 12: HEVC/H.265, 8-bit, 3840x2160, 16800 kb, 16x9 fMP4
a1 Layer 1: AAC-LC, stereo, 128 kbps, 48 khz, 16-bit fMP4**

** For HLS HEVC in fMP4, video and audio are muxed into separate containers.

Usage

Starting MainConcept 2GO

Make sure you have successfully installed your MainConcept 2GO product on the computer by following the Installation instructions.

The “run” script inside the scripts folder makes starting MainConcept 2GO easy and lets you understand how 2GO docker containers are actually run. If you plan to run MainConcept 2GO through container management tools like Docker Compose, Kubernetes or Docker Swarm it is recommended that you understand the parameters required for 2GO containers by reading the “run” scripts.

MainConcept 2GO products require configuration parameters at container startup. This can include input and output filenames, serial keys, shared volume folders or external URLs. These parameters can be specified in a properties file or on command line.

Using properties file
The easiest way to start MainConcept 2GO is by editing the “properties.txt” file to your needs and then call the “run” script with this properties file.

~/MainConcept/2GO/mc_2go_ott_file_transcoder_hls_demo# ./scripts/run.sh scripts/properties.txt

To edit the parameters, use a text editor:

1  ACCEPT_EULA=Y
2  SHARED_PATH_IN=~/MainConcept/2GO/mc_2go_ott_file_transcoder_hls_demo/volume
3  SHARED_PATH_OUT=~/MainConcept/2GO/mc_2go_ott_file_transcoder_hls_demo/volume
4  INPUT=avchd_camera_testfile.mts
5  OUTPUT=output_file
6  PRESETNAME=Apple HLS HEVC fMP4 16x9
7  VIDEO_LEVELS=v3,v6,v9
8  AUDIO_LEVELS=a1
8  CUSTOMER_ID=
8  VERBOSITY=DEFAULT

Using command line options
Instead of editing a properties file, all configuration parameters can also be specified on the command line directly.

~/MainConcept/2GO/mc_2go_ott_file_transcoder_hls_demo/docker# ./scripts/run.sh \
>    ACCEPT_EULA=Y \
>    SHARED_PATH_IN=~/MainConcept/2GO/mc_2go_ott_file_transcoder_hls_demo/volume \
>    SHARED_PATH_OUT=~/MainConcept/2GO/mc_2go_ott_file_transcoder_hls_demo/volume \
>    INPUT=avchd_camera_testfile.mts \
>    OUTPUT=out_file \
>    PRESETNAME=Apple HLS HEVC fMP4 16x9 \
>    CUSTOMER_ID=xxx \
>    VERBOSITY=DEFAULT██

Using docker-compose
Docker Compose lets you start multiple replicas of the same image. It also significantly simplifies starting MainConcept 2GO products.

Docker Compose is a separate tool that must be installed in addition to Docker. Please refer to the documentation how to install and setup Compose: docs.docker.com/compose/

To run MainConcept 2GO with Docker Compose you create a compose file in YAML. All parameters to run the 2GO product are specified inside the YAML file for Docker Compose. To simplify deployment of MainConcept 2GO containers it is recommended to set environment variables for the 2GO configuration and then use these variables in the YAML file.

This is a basic “docker-compose.yml” file showing how to configure MainConcept 2GO.

1  version: '2.2'
2  services:
3    2go:
4      image: 2go_ott_file_transcoder_hls_demo
5      network_mode: host
6      volumes:
7      -${2GO_VOLUME}:/volume
8      environment:
9      -2GO_PARAMS=${2GO_PARAMS}

It uses two environment variables 2GO_VOLUME and 2GO_PARAMS. These must be set before starting docker-compose.

~# export 2GO_VOLUME=~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo/volume/
~# export 2GO_PARAMS="INPUT=avchd_camera_testfile.mts OUTPUT=out_file PRESET=presets/XDCAM_HD.mps SERIAL=serials.txt"

After that starting 2GO using Docker Compose is as easy as:

~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# docker-compose up -d
Starting mc2gobroadcasttranscoderdemo_2go_1 ...
Starting mc2gobroadcasttranscoderdemo_2go_1 ... done
~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo#

Stopping MainConcept 2GO execution

It is recommended to execute a script inside the MainConcept 2GO container in order to stop execution properly.

To execute a script in an active container you first need to know the container ID from the first column of the docker ps command:

~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# docker ps
CONTAINER ID   IMAGE                              COMMAND                    CREATED
bc45686deb0e   mc_2go_broadcast_transcoder_demo   "/opt/bin/reporting_..."   4seconds ago

Then use the convenience “stop” script in the scripts folder to abort 2GO execution:

~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# ./scripts/stop.sh bc45686deb0e
Stopping the Broadcast Transcoder...
Broadcast Transcoder stopped.
~/MainConcept/2GO/mc_2go_broadcast_transcoder_demo# █

Technical Support

If you need additional assistance, the MainConcept Technical Support team is standing by to help. Send an e-mail to apps.supportnoSp@m@mainconcept.com or go to the MainConcept Support page and we'll assist you as quickly as possible.

Credits

Copyright © 2018 MainConcept GmbH or its affiliates. All rights reserved.

MainConceptⓇ and its logos are registered trademarks of MainConcept GmbH or its affiliates. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of any portion is prohibited by law.

MainConcept is a subsidiary of NeuLion, LLC. This manual, as well as the software described in it, is furnished under license and may only be used or copied in accordance with the terms of such license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment or representation by MainConcept GmbH or its affiliates. MainConcept GmbH and its affiliates assumes no responsibility or liability for any errors or inaccuracies that may appear in this book and use is at your sole risk.

Except as permitted by such license, no part of the publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of MainConcept GmbH.

Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries. Docker, Inc. and other parties may also have trademark rights in other terms used herein. Copyright 2018 Docker, Inc. All rights reserved.

Adobe and Flash are trademarks or registered trademarks of Adobe Systems Incorporated in the USA and other countries.

DTS, the Symbol, and DTS-HD are registered trademarks of DTS, Inc.

Dolby Digital codec manufactured under license from Dolby Laboratories. Dolby and the double-D symbol are trademarks of Dolby Laboratories. Unpublished work. Copyright 2003-2014 Dolby Laboratories, Inc. and Dolby Laboratories Licensing Corporation. All rights reserved.

AAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient general perceptual audio codecs. AAC has been standardized by ISO and IEC as part of the MPEG specifications. It is understood that it may be necessary to execute a patent license with the appropriate AAC licensing entities in order to obtain all rights necessary to create and exploit products utilizing AAC and it is recommended to contact the appropriate licensing entities, e.g. Via Licensing (www.vialicensing.com), and negotiate in good faith the adequate contracts, if any.

Fraunhofer Institute for Integrated Circuits IIS
Attention: Audio and Multimedia Departments - MC AAC LL
Am Wolfsmantel 33
91058 Erlangen, Germany
www.iis.fraunhofer.de/amm
amm-info@iis.fraunhofer.de

Adobe and Flash are trademarks or registered trademarks of Adobe Systems Incorporated in the USA and other countries.

Microsoft, Microsoft Windows XP, Windows Media Player, and the Microsoft logo are registered trademarks of the Microsoft Corporation, Inc.

All other company or product names are trademarks or registered trademarks of their respective owners.