This project is not covered by Drupal’s security advisory policy.

Integration for the Open Source OvenMediaEngine (OME) Streaming Server.

OME is a modern full featured Streaming Server that includes

  • Ingest of streams with RTMP, SRT, WebRTC
  • Streams can be accessed with WebRTC and Low Latency HLS (LLHLS)
  • Authorization via AdmissionWebhooks or Signed Policy
  • ABR Transcoding
  • API for Statistics, Recording, pushing streams to other services
  • many more features

Features

This module implements a field that allows integration with OME. The field can be attached to any entity. Streaming App(s) can be configured for each field instance. Users can then add Stream(s) within the content entity.

Currently it uses Admission Webhooks for authorizing the incoming Stream. It makes use of a custom query parameter to authorize each stream and checks for x-ome-signature header if the request is valid.

There are Field Formatter for viewing the connection strings for live streaming and for OvenmediaPlayer.

Basic views integration for field values and settings.

An event is fired when an incoming Stream is opening or closing or when a User is starting or stopping to watch the Stream.

Post-Installation

go to /admin/config/media/ome-vhost and add at least one OME Vhost config.

Add a field to the desired entity and configure the streaming app according to your OME Setup.

Take a look at the Manage Form Display and Manage Display Section of the Entity and adjust to your requirements.

Note: If you want to use x-ome-header to validate the Admission Webhook request you need to set $settings['ovenmedia']['x_ome_header_secret'] in settings.php.

Additional Requirements

You need to setup OME and configure at least one app that matches the field config.

Roadmap and Ideas

This is an incomplete list of features and ideas in random order i'd like to implement in the future.

  • Add a custom streaming entity to store recordings and statistics.
  • Use Signed Policy for authentication
  • Add RtmpPush to restream to other Streaming Services
  • Add recording for streams and import them to Drupal
  • Add statistics for streams
  • Add new Vhosts to OME via API
  • Add new Apps to OME via API
  • Add authorization for outgoing streams
  • Add Tests
  • Improve Usability

Supporting this Module

This Module is in it's early stage. Feature requests, Patches, PR or Ideas are welcome!

Community Documentation

Todo

Project information

Releases