Red5 Documentation

Modify Cloudstorage Plugin Properties File

Cloudstorage Plugin Properties File

Unmodified {red5pro}/conf/cloudstorage-plugin.properties file:

# Cloudstorage Plugin Properties
#
# JetS3t library configuration option info: http://jets3t.s3.amazonaws.com/toolkit/configuration.html
#

# Plugin Services
# for Orientation Postprocessor without cloudstorage
services=
# for AWS S3 cloudstorage
#services=com.red5pro.media.storage.s3.S3Uploader,com.red5pro.media.storage.s3.S3BucketLister
# for Google Cloud storage
#services=com.red5pro.media.storage.gstorage.GStorageUploader,com.red5pro.media.storage.gstorage.GStorageBucketLister
# for DO S3 cloudstorage
#services=com.red5pro.media.storage.digitalocean.DOUploader,com.red5pro.media.storage.digitalocean.DOBucketLister
# for Azure cloudstorage
#services=com.red5pro.media.storage.azure.AzureUploader,com.red5pro.media.storage.azure.AzureContainerLister

# Path
streams.dir=/tmp/
# Full path to the ffmpeg executable (default linux path: /usr/bin/ffmpeg)
ffmpeg.path=/usr/local/red5pro/ffmpeg

# Time (increase if multiple appends are used or profile is slower than medium)
max.transcode.minutes=13

# Validate URL resource (not validating saves an HTTP connection per resource)
validate.url=false

# FFMpeg command line for transcoding flv to mp4
# add the '-report' parameter after '-y' to get a log for debugging if problems occur

## TranscodePostProcessor
## Variables: 0=replaced with ffmpeg path, 1=input file path, 2=output file path

# LGPL command template
#ffmpeg.template=%s -y -i %s -acodec aac -b:a 128k -ar 44100 -strict -2 -vcodec libopenh264 -pix_fmt yuv420p -profile:v baseline -level 3.0 %s

# GPL command template (default is medium, for better quality decrease to slow or veryslow)
ffmpeg.template=%s -y -i %s -acodec aac -b:a 128k -ar 44100 -strict -2 -vcodec libx264 -pix_fmt yuv420p -movflags faststart -preset medium %s

# GPL command template with rotation of 90 clockwise
#ffmpeg.template=%s -y -i %s -vf transpose=1 -metadata:s:v rotate=0 -acodec aac -b:a 128k -ar 44100 -strict -2 -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 %s

# XXX Paul: async 1 option removed due to deprecation and to prevent transcoder failures

## OrientationPostProcessor
## Variables: 0=input file path, 1=output file path

# LGPL command template for orientation filtering
#ffmpeg.filtercomplex.template=-y %s -filter_complex '%s' -map '%s' -c:a aac -c:v libopenh264 %s

# GPL command template for orientation filtering
ffmpeg.filtercomplex.template=-y %s -filter_complex '%s' -map '%s' -c:a aac -b:a 128k -ar 44100 -c:v libx264 -pix_fmt yuv420p -movflags faststart -preset medium %s

# Flag to force libopenh264 usage in OrientationProcessor
#libopenh264=true

# AWS Configuration
aws.access.key=YOUR_AWS_ACCESS_KEY
aws.secret.access.key=YOUR_AWS_SECRET_ACCESS_KEY
# Bucket name
aws.bucket.name=red5provod
# Full region name like: us-east-1, eu-west-2, ap-southeast-1
aws.bucket.location=us-east-1

# Google Storage Configuration
gs.access.key=YOUR_GOOGLE_STORAGE_ACCESS_KEY
gs.secret.access.key=YOUR_GOOGLE_STORAGE_SECRET_ACCESS_KEY
# Bucket name
gs.bucket.name=red5provod

# DigitalOcean Space Configuration
do.access.key=YOUR_DO_ACCESS_KEY
do.secret.access.key=YOUR_DO_SECRET_ACCESS_KEY
do.endpoint=digitaloceanspaces.com
# Bucket name
do.bucket.name=red5provod
# Valid locations are: sfo2, nyc3, sgp1, fra1
do.bucket.location=YOUR_DO_DROPLETS_REGION
# Uploaded files  access level: uncomment for public access
# do.files.private=false

# Azure Blob Configuration
azure.account.name=YOUR_ACCOUNT_NAME
azure.account.key=YOUR_ACCOUNT_KEY
# Container name
azure.container.name=red5provod
azure.endpoint=blob.core.windows.net

Modify Cloudstorage plugin:

For all cloud platforms, edit:

  • ffmpeg.path = Full path to the FFMpeg executable (for orientation post-processor only). The default for server versions 9.0 and higher, customers need to get the FFmpeg distribution from Red5 Pro support, and the default path should be /usr/local/red5pro/ffmpeg.
  • max.transcode.minutes = Maximum time in minutes allotted for transcoding to run per file. It is recommended to set this to the approximate maximum length of expected recordings.

Cloudstorage Plugin Properties – AWS

Plugin Properties to modify

  • services comment out services= and uncomment com.red5pro.media.storage.s3.S3Uploader,com.red5pro.media.storage.s3.S3BucketLister
  • aws.access.key = Your AWS access key.
  • aws.secret.access.key = Your AWS secret access key.
  • aws.bucket.name = The S3 bucket in which files will be stored.
  • aws.bucket.location = Full region name (like: us-east-1, eu-west-2, ap-southeast-1) of the S3 bucket.

Cloudstorage Plugin Properties – GCP

Plugin Properties to modify

  • services comment out services= and uncomment com.red5pro.media.storage.gstorage.GStorageUploader,com.red5pro.media.storage.gstorage.GStorageBucketLister
  • gs.access.key = Your Google storage access key
  • gs.secret.access.key = Your Google storage secret access key
  • gs.bucket.name = The GCP storage bucket in which files will be stored.

Cloudstorage Plugin Properties – Digital Ocean

Plugin Properties to modify

  • services comment out services= and uncomment services=com.red5pro.media.storage.azure.AzureUploader,com.red5pro.media.storage.azure.AzureContainerLister
  • do.access.key= Your Digital Ocean key from above
  • do.secret.access.key= The secret key associated with the key
  • do.endpoint leave as the default digitaloceanspaces.com
  • do.bucket.name= your space name
  • do.bucket.location= the region where your space was created (Valid locations are: ams3, fra1, nyc3, sfo3, sgp1)
  • # do.files.private=false = if you wish to make the recorded files public, then uncomment

Cloudstorage Plugin Properties – Microsoft Azure

Plugin Properties to modify

  • services comment out services= and uncomment services=com.red5pro.media.storage.azure.AzureUploader,com.red5pro.media.storage.azure.AzureContainerLister
  • azure.account.name= = Your Azure storage account.
  • azure.account.key= = Your Azure storage account key.
  • azure.container.name = The blob container in which files will be stored.
  • azure.endpoint = blob.core.windows.net (leave this default)