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.

— Alan Walker 2021/09/21 14:49 — Alan Walker 2021/09/21 14:49

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