Duplicating Encoding Profiles

Oct 2021

Introduction

IPHE comes with a set of pre-defined encoding profiles, but no way to manually add a new one from the MDT UI (at the time of writing).
To create a new encoding profile, the best way to do this is to duplicate and existing MDT profile. We just then need to edit a few lines in the profile and re-upload it.

Download an existing encoding profile

Open the MDT application (https://ipaddress:30443) and login using mdt-admin / changeme.
Now look for an appropriate encoding profile to download (I normally take encoding-hd) and select the 'export profile' button.
The encoding profile (a .yaml file) will now download.

Editing the encoding profile

Open the .yaml file (preferably in an editor that properly supports .yaml file formats (not notepad)) and save it to a new filename. If this is for a PoD per server then you can just save it as a new encoding filename like 'encoding-hd-custom.yaml' for example. If this is for a PoD per service, then save it including the service name, encoding-hd-bbc1.yaml for example.
Below is the format of the default encoding-hd yaml file:

mdt-kinds:
- kind: profile
**name: encoding-hd**
version: ''
packages:
- deploy-package: encoding-live-worker-hd
version: 25.14.76+4.0.19
- kind: deploy-package
deploy-package:
name: encoding-live-worker-hd
version: 25.14.76+4.0.19
chart:
name: encoding-live-worker
version: 25.14.76
namespace: '{{ products_var.namespace }}'
deploy_list:
- mkel-hd1
options:
mdt:
deployment_stage: 5
upgrade:
policy: immediate
helm:
wait: false
timeout: 300
values:
image:
serverdaemon:
repository: '{{ products_var.docker_registry }}/mediakind/server-daemon'
tag: '{{ products_var.server_daemon.tag }}'
worker:
repository: '{{ products_var.docker_registry }}/mediakind/encoding-live-worker'
redis:
repository: '{{ products_var.docker_registry }}/redis'
tag: '{{ products_var.redis.tag }}'
alarmProxy:
repository: '{{ products_var.docker_registry }}/mediakind/alarm-proxy'
tag: '{{ products_var.alarm_proxy.tag }}'
initcontainer:
repository: '{{ products_var.docker_registry }}/busybox'
tag: 1.30.1
alarmsViaRedisInWorkerPod: '{{ products_var.features.alarmsViaRedisInWorkerPod }}'
el_worker:
server_mngt_nic: '{{ products_var.server_mngt_nic }}'
mpeg4cfg: |
perChannelLicensing=true
qsv:
enable: false
mongo:
name: '{{ products_var.mongo.name }}'
database: '{{ products_var.mongo.replicasetname }}'
replica: '{{ products_var.mongo.replica }}'
muhook:
enable: '{{ products_var.features.muconv }}'
interface: '{{ products_var.server_mngt_nic }}'
process_name: '*liveTranscoder'
log_level: 4
log_output: stderr
unified_ui:
name: api-gateway
rabbitmq:
name: '{{ products_var.rabbitmq.name }}'
etcd_mu:
name: '{{ products_var.etcd.name }}'
port: '{{ products_var.etcd.port }}'
redis:
name: '{{ products_var.redis.name }}'
volumes:
log:
enable: '{{ products_var.log_volume }}'
license_server_addr: '{{ products_var.license_server }}'
server_processing_name: LiveEncoder
nodeSelector: '{{ mdt.current_profile.profile_name_label }}'
resources:
requests:
cpu: 9
privilegedInitContainer:
enabled: true
command:
- sysctl
- '-w'
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app: encoding-live-worker