├── .github └── workflows │ ├── nodejs.yml │ ├── publish.yml │ └── rc.yml ├── .gitignore ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── docker-compose.yml ├── docs ├── _config.yml ├── channel_engine_ha_high_level.png ├── demosite.png ├── reference.md ├── screenshot.png └── system-description.png ├── engine ├── ad_request.js ├── chaos_monkey.js ├── event_stream.js ├── index.ts ├── memcached_state_store.js ├── memory_state_store.js ├── playhead_state.js ├── preflight.js ├── redis_state_store.js ├── server.ts ├── session.js ├── session_live.js ├── session_live_state.js ├── session_state.js ├── shared_state_store.js ├── stream_switcher.js ├── subtitle_slicer.js └── util.js ├── examples ├── autocreate.ts ├── default.ts ├── demux.ts ├── drm.ts ├── livemix-demux.ts ├── livemix.ts ├── multicodec.ts └── truncate.ts ├── ha-dev ├── Dockerfile.nginxlb ├── README.md ├── docker-compose-lb.yml └── nginx-proxy-lb.conf ├── index.ts ├── nginx_image ├── Dockerfile └── config │ └── nginx.conf ├── package.json ├── rfc └── channel_engine_vod_with_live.png ├── spec ├── engine │ ├── engine_spec.js │ ├── init_switching_spec.js │ ├── interface_spec.js │ ├── playhead_live_spec.js │ ├── playhead_spec.js │ ├── session_live_spec.js │ ├── session_spec.js │ ├── stream_switcher_spec.js │ ├── subtitle_spec.js │ └── util_spec.js ├── support │ └── jasmine.json └── testvectors │ ├── subtitle_file.webvtt │ └── subtitle_file_2.webvtt └── tsconfig.json /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/.github/workflows/nodejs.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.github/workflows/rc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/.github/workflows/rc.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .prettierrc 3 | dist/ 4 | **/.DS_Store 5 | .vscode -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docs/_config.yml -------------------------------------------------------------------------------- /docs/channel_engine_ha_high_level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docs/channel_engine_ha_high_level.png -------------------------------------------------------------------------------- /docs/demosite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docs/demosite.png -------------------------------------------------------------------------------- /docs/reference.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docs/reference.md -------------------------------------------------------------------------------- /docs/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docs/screenshot.png -------------------------------------------------------------------------------- /docs/system-description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/docs/system-description.png -------------------------------------------------------------------------------- /engine/ad_request.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/ad_request.js -------------------------------------------------------------------------------- /engine/chaos_monkey.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/chaos_monkey.js -------------------------------------------------------------------------------- /engine/event_stream.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/event_stream.js -------------------------------------------------------------------------------- /engine/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /engine/memcached_state_store.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/memcached_state_store.js -------------------------------------------------------------------------------- /engine/memory_state_store.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/memory_state_store.js -------------------------------------------------------------------------------- /engine/playhead_state.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/playhead_state.js -------------------------------------------------------------------------------- /engine/preflight.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/preflight.js -------------------------------------------------------------------------------- /engine/redis_state_store.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/redis_state_store.js -------------------------------------------------------------------------------- /engine/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/server.ts -------------------------------------------------------------------------------- /engine/session.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/session.js -------------------------------------------------------------------------------- /engine/session_live.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/session_live.js -------------------------------------------------------------------------------- /engine/session_live_state.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/session_live_state.js -------------------------------------------------------------------------------- /engine/session_state.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/session_state.js -------------------------------------------------------------------------------- /engine/shared_state_store.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/shared_state_store.js -------------------------------------------------------------------------------- /engine/stream_switcher.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/stream_switcher.js -------------------------------------------------------------------------------- /engine/subtitle_slicer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/subtitle_slicer.js -------------------------------------------------------------------------------- /engine/util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/engine/util.js -------------------------------------------------------------------------------- /examples/autocreate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/autocreate.ts -------------------------------------------------------------------------------- /examples/default.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/default.ts -------------------------------------------------------------------------------- /examples/demux.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/demux.ts -------------------------------------------------------------------------------- /examples/drm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/drm.ts -------------------------------------------------------------------------------- /examples/livemix-demux.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/livemix-demux.ts -------------------------------------------------------------------------------- /examples/livemix.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/livemix.ts -------------------------------------------------------------------------------- /examples/multicodec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/multicodec.ts -------------------------------------------------------------------------------- /examples/truncate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/examples/truncate.ts -------------------------------------------------------------------------------- /ha-dev/Dockerfile.nginxlb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/ha-dev/Dockerfile.nginxlb -------------------------------------------------------------------------------- /ha-dev/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/ha-dev/README.md -------------------------------------------------------------------------------- /ha-dev/docker-compose-lb.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/ha-dev/docker-compose-lb.yml -------------------------------------------------------------------------------- /ha-dev/nginx-proxy-lb.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/ha-dev/nginx-proxy-lb.conf -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/index.ts -------------------------------------------------------------------------------- /nginx_image/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/nginx_image/Dockerfile -------------------------------------------------------------------------------- /nginx_image/config/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/nginx_image/config/nginx.conf -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/package.json -------------------------------------------------------------------------------- /rfc/channel_engine_vod_with_live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/rfc/channel_engine_vod_with_live.png -------------------------------------------------------------------------------- /spec/engine/engine_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/engine_spec.js -------------------------------------------------------------------------------- /spec/engine/init_switching_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/init_switching_spec.js -------------------------------------------------------------------------------- /spec/engine/interface_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/interface_spec.js -------------------------------------------------------------------------------- /spec/engine/playhead_live_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/playhead_live_spec.js -------------------------------------------------------------------------------- /spec/engine/playhead_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/playhead_spec.js -------------------------------------------------------------------------------- /spec/engine/session_live_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/session_live_spec.js -------------------------------------------------------------------------------- /spec/engine/session_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/session_spec.js -------------------------------------------------------------------------------- /spec/engine/stream_switcher_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/stream_switcher_spec.js -------------------------------------------------------------------------------- /spec/engine/subtitle_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/subtitle_spec.js -------------------------------------------------------------------------------- /spec/engine/util_spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/engine/util_spec.js -------------------------------------------------------------------------------- /spec/support/jasmine.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/support/jasmine.json -------------------------------------------------------------------------------- /spec/testvectors/subtitle_file.webvtt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/testvectors/subtitle_file.webvtt -------------------------------------------------------------------------------- /spec/testvectors/subtitle_file_2.webvtt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/spec/testvectors/subtitle_file_2.webvtt -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eyevinn/channel-engine/HEAD/tsconfig.json --------------------------------------------------------------------------------