Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Rename streams directories so they make more sense
Note

This documentation is for Release 6.3. For documentation on previous releases, please select from the options below.

  • Release 1.x version of this page: v.81
  • Release 2.x version of this page: v.87.
  • Release 3.0-3.1 version of this page: v.111.
  • Release 3.2 version of this page: v.116.
  • Release 4.0 version of this page: v.143.
  • Release 5.x version of this page: v.163.
  • Release 6.0 version of this page: v.177

...

See documentation for your version of MySQL Server for detailed syntax (http://dev.mysql.com/doc/refman/5.1/en/create-database.html )

Media Streaming Server

Warning

Red5 is no longer the default streaming server for Avalon 6.3. With the upgrade to MediaElementjs 4, we now rely completely on HLS.

...

Code Block
user nginx;
worker_processes 4;

events {
  worker_connections 1024;
}

http {
  server {
    listen 8980;

    vod_mode local;
    vod_last_modified 'Sun, 19 Nov 2000 08:52:00 GMT';
    vod_last_modified_types *;
    vod_metadata_cache metadata_cache 512m;
    vod_response_cache response_cache 128m;
    gzip on;
    gzip_types application/vnd.apple.mpegurl;
    open_file_cache          max=1000 inactive=5m;
    open_file_cache_valid    2m;
    open_file_cache_min_uses 1;
    open_file_cache_errors   on;

    location ~ ^/avalon/(?<stream>.+)/(?<resource>.+\.(?:m3u8|ts)) {
      alias /var/avalon/rtmp_streamsderivatives/$stream;
      vod hls;

      set $token "$arg_token";
      add_header X-Stream-Auth-Token "$token";
      
      sub_filter_types application/vnd.apple.mpegurl;
      sub_filter_once off;
      sub_filter '.ts' ".ts?token=$token";

      auth_request /auth;
      add_header Access-Control-Allow-Headers '*';
      add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
      add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
      add_header Access-Control-Allow-Origin '*';
      expires 100d;
    }

    location = /auth {
      # resolver 127.0.0.1;
      proxy_pass http://127.0.0.1/authorize.txt?token=$token&name=$stream;
      proxy_pass_request_body off;
      proxy_set_header Content-Length "";
      proxy_set_header X-Original-URI $request_uri;
    }

    location /crossdomain.xml {
      default_type text/xml;
      return 200 '<?xml version="1.0"?>
        <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
        <cross-domain-policy>
          <site-control permitted-cross-domain-policies="all"/>
          <allow-access-from domain="*" secure="false"/>
          <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
        </cross-domain-policy>';
      expires 24h;
    }
  }
}

...

Code Block
mkdir -p /usr/local/masterfiles 
chown avalon:avalon /usr/local/masterfiles

mkdir -p /var/avalon/rtmp_streamsderivatives
chmod 0775 /var/avalon/rtmp_streamsderivatives
 
mkdir /var/avalon/hlsprechunked_streamsderivatives
chown matterhorn:matterhorn /var/avalon/hlsprechunked_streamsderivatives/
ln -s /var/avalon/hlsprechunked_streamsderivatives/ /var/www/avalon/public/streams

chmod 0775 /var/avalon/hlsprechunked_streamsderivatives/

Configure Matterhorn

Download Matterhorn config and verify property values.

...

Code Block
org.opencastproject.streaming.directory=/var/avalon/rtmp_streamsderivatives
org.opencastproject.hls.directory=/var/avalon/hlsprechunked_streamsderivatives

Also check in /usr/local/matterhorn/etc/load/org.opencastproject.organization-mh_default_org.cfg

Code Block
prop.avalon.stream_base=file:///var/avalon/rtmp_streamsderivatives

Move the config to the appropriate spot

...

Code Block
titleconfig/settings/development.local.yml
streaming:
  content_path: '/var/avalon/hlsprechunked_streamsderivatives'

Anchor
secrets
secrets
Change the secrets.yml file:

...