/

Server Configuration


The writer post processors used by FLVWriter are configured in the server's common configuration file: conf/red5-common.xml. The example below displays the configuration with the S3 post-processors (note - this bean exists in the file, you just need to modify & add the writer post processors value):

Post Processor For AWS S3

<bean id="flv.impl" class="org.red5.io.flv.impl.FLV">
  <property name="cache">
    <ref bean="object.cache"/>

  </property>
  <property name="writerPostProcessors">
    <set>
      <value>com.red5pro.media.processor.S3UploaderPostProcessor</value>
    </set>
  </property>

</bean>

The S3UploaderPostProcessor uploads a supplied FLV file to an S3 bucket with a public read ACL and mime type of video/x-flv. For example, a stream named stream1471289267434 recorded to the application live using a bucket named red5-s3 would be made available at https://s3.amazonaws.com/red5-s3/live/streams/stream1471289267434.flv after the upload is completed. The HLS files, one stream1471289267434.m3u8 and several stream1471289267434_#.ts files would be found in https://s3.amazonaws.com/red5-s3/live/stream1471289267434

Post Processor For GCP Storage

<bean id="flv.impl" class="org.red5.io.flv.impl.FLV">
  <property name="cache">
    <ref bean="object.cache"/>

  </property>
  <property name="writerPostProcessors">
    <set>
      <value>com.red5pro.media.processor.GStorageUploaderPostProcessor</value>
    </set>
  </property>

</bean>

The GStorageUploaderPostProcessor uploads a supplied FLV file to a GCP storage bucket with a public read ACL and mime type of video/x-flv. For example, a stream named stream1471289267434 recorded to the application live using a bucket named red5-gcp would be made available at https://storage.cloud.google.com/red5-gcp/live/streams/stream1471289267434.flv after the upload is completed. The HLS files, one stream1471289267434.m3u8 and several stream1471289267434_#.ts files would be found in https://storage.cloud.google.com/red5-gcp/live/stream1471289267434

Post Processor For Digital Ocean Spaces

<bean id="flv.impl" class="org.red5.io.flv.impl.FLV">
  <property name="cache">
    <ref bean="object.cache"/>

 <property name="writerPostProcessors">
    <set>
      <value>com.red5pro.media.processor.DOUploaderPostProcessor</value>
    </set>
</property>

</bean>

The DOUploaderPostProcessor uploads a supplied FLV file to a DO space with a private read ACL and mime type of video/x-flv. For example, a stream named stream1471289267434 recorded to the application live using a bucket named red5-space in the nyc3 regions would be made available at https://red5-space.nyc3.digitaloceanspaces.com/live/streams/stream1471289267434.flv after the upload is completed. The HLS files, one stream1471289267434.m3u8 and several stream1471289267434_#.ts files would be found in https://red5-space.nyc3.digitaloceanspaces.com/live/stream1471289267434

Post Processor For Azure Blobs

<bean id="flv.impl" class="org.red5.io.flv.impl.FLV">
  <property name="cache">
    <ref bean="object.cache"/>

 <property name="writerPostProcessors">
    <set>
      <value>com.red5pro.media.processor.AzureUploaderPostProcessor</value>
    </set>
</property>

</bean>

Application Configuration

Every server application that will utilize cloudstorage for storage must have its configuration file modified to use the FilenameGenerator features. The live webapp (red5pro)/webapps/live/WEB-INF/red5-web.xml includes a line for each cloud platform, which can be un-commented. Red5 Pro server applications use the streamFilenameGenerator bean when specified for locating media files for Playback or Recording; if the bean is not specified in an application's red5-web.xml, the default generator will be used which plays from and records to the application's streams directory.

For AWS S3

<bean id="streamFilenameGenerator" class="com.red5pro.media.storage.s3.S3FilenameGenerator"/>

For GCP Storage

<bean id="streamFilenameGenerator" class="com.red5pro.media.storage.gstorage.GStorageFilenameGenerator"/>

For D.O. Spaces

<bean id="streamFilenameGenerator" class="com.red5pro.media.storage.digitalocean.DOFilenameGenerator"/>

For Azure Blobs

<bean id="streamFilenameGenerator" class="com.red5pro.media.storage.azure.AzureFilenameGenerator"/>

Troubleshooting

There is a separate log file for cloud storage operations: {red5pro}/log/cloudstorage.log