Systems and Technologies Sub-Committee 23 April 2013 VIDEO HOSTING AND STREAMING SUMMARY REPORT (STSC 18/4) OVERVIEW: The University of London International Programmes has been investigating ways to provide video hosting and streaming for use in its courses. The following broad requirements were considered as part of this investigative work: 1. The solution should be distributed globally to provide the fastest download rates 2. The solution should be secure and subject to relevant access control 3. The solution should be available across multiple applications (e.g. flash/non-flash) 4. The solution should degrade gracefully (e.g. RTMP v non-rtmp, connection awareness etc.). The paper provides details of findings and progress on the following: The Amazon S3/Cloudfront solution Encrypted URLs Dynamic bit-rate conversion THIS PAPER IS FOR: Information BRIEF STATEMENT OF CONTEXT OF THE PAPER AND ITS ANTECEDENTS: Related to items 722-728 from minutes of STSC17: receipt of a report on IT priorities for International Academy. SUMMARY OF RECOMMENDATIONS TO STSC/ QUESTIONS FOR STSC TO ADDRESS/ DECISIONS FOR STSC TO MAKE: None at this point for information/discussion. AUTHOR: Jonathon Thomas (Jonathon.thomas@london.ac.uk) DATE : 27 February 2013 1
UoLIA Information and Learning Systems (ILS) Video Hosting and Streaming Summary Report Table of Contents: Project Manager : Jonathon Thomas Reporting To : Andrew Bollington, EISA, Project Executive Craig O Callaghan, EISA, Senior User Issue Date : 27 February 2013 Version : v1.0 Status : Draft Author(s) : Jonathon Thomas Period : 01/01/2013 to 27/02/2013 1 BACKGROUND... 2 2 SUMMARY FINDINGS AND PROGRESS... 2 2.1 AMAZON S3/CLOUDFRONT... 2 2.2 ENCRYPTED URLS... 2 2.2.1 Technical description and work progress:... 2 2.2.2 Example of real-life use:... 3 2.3 DYNAMIC BIT-RATE CONVERSION... 3 2.3.1 Technical description and work progress:... 3 2.3.2 Example of real-life use:... 3 3 FURTHER WORK... 3
VIDEO HOSTING AND STREAMING SUMMARY REPORT 1 BACKGROUND The University of London International Programmes has been investigating ways to provide video hosting and streaming for use in its courses. The following broad requirements were considered as part of this investigative work: 1. The solution should be distributed globally to provide the fastest download rates 2. The solution should be secure and subject to relevant access control 3. The solution should be available across multiple applications (e.g. flash/non-flash) 4. The solution should degrade gracefully (e.g. RTMP v non-rtmp, connection awareness etc.). 2 SUMMARY FINDINGS AND PROGRESS 2.1 AMAZON S3/CLOUDFRONT Amazon CloudFront provides a suitable and fast solution for global video streaming. Management and storage of assets is via Amazon S3 and many suitable tools are available for this (e.g. Cloudberry explorer, S3 Organizer Firefox plug-in). The following extract is from the CloudFront web-page (http://aws.amazon.com/cloudfront/): Using a network of edge locations around the world, Amazon CloudFront caches copies of your static content close to viewers, lowering latency when they download your objects and giving you the high, sustained data transfer rates needed to deliver large popular objects to end users at scale. Requests for your dynamic content are carried back to your origin servers running in Amazon Web Services (e.g., Amazon EC2, Elastic Load Balancing) over optimized network paths for a more reliable and consistent experience. These network paths are constantly monitored by Amazon and connections from CloudFront edge locations to the origin are reused to serve your dynamic content with the best possible performance. 2.2 ENCRYPTED URLS 2.2.1 TECHNICAL DESCRIPTION AND WORK PROGRESS:
An Amazon Web Service S3 storage area was created ("bucket") and test video (mp4) added. A streaming Amazon CloudFront private distribution was set up that used the S3 bucket as the origin server. RTMP streaming was enabled on the CloudFront distribution. This protocol is a system for delivering on-demand and live media to the client. A public-private key encryption was used to programmatically sign a URL signature for access to the content using a default Policy document. A Java encryption library was used for this purpose. A proof-of-concept test page was constructed using a local Java Server Page (JSP) to request the private streaming video for display in a browser. Finally a JWPlayer was configured within web page to use the signed URL to stream content from Amazon. 2.2.2 EXAMPLE OF REAL-LIFE USE: Amazon S3 provides a Cloud storage area for media files. Amazon CloudFront enhances distribution of media to client browsers by providing a global content distribution network (CDN). The CloudFront service ensures that the content it delivers is provided from a local network edge, geographically near to the client, thus reducing streaming latency. The end result is a client experiencing a better media streaming service. Protection of media with signed URLs would ensure that video links only work for those students who are entitled to view them. 2.3 DYNAMIC BIT-RATE CONVERSION 2.3.1 TECHNICAL DESCRIPTION AND WORK PROGRESS: The JWPlayer media player provides automatic bit-rate detection. The player responds to connection bandwidth by switching the media file that it streams. Configuration of which media file to play is provided via a structured xml-like file (SMIL) that describes the media source file to use for a given bit-rate. When combined with encrypted URLs this requires the SMIL file to be generated dynamically at runtime. A JSP solution was used as a proof-of-concept. This demonstrated that the file structure with the inclusion of signed URLs could be created and accessed by the JWPlayer within a web page. Test media files were placed in the Amazon S3 bucket and seen to be played in accordance with the generated.smil file. Further testing will be required to ensure that switching is truly as a response to bit-rate detection. 2.3.2 EXAMPLE OF REAL-LIFE USE: Multiple versions of same video content with different quality and bit-rate levels can be delivered from Amazon CloudFront as a streaming RTMP feed. Students will receive the most suitable video content to match their internet speed. This will happen automatically through JWPlayer dynamic streaming. 3 FURTHER WORK The following work is still required:
Investigation into the equivalent PHP solution is required for use within the Virtual Learning Environment. Testing to ensure genuine bit-rate detection is taking place is needed to ensure JWPlayer is behaving correctly. Research into use of tailored Policy documents during the generation of signed URLs to determine scope of security options within signed URLs.