{"id":1914,"date":"2017-03-30T12:42:07","date_gmt":"2017-03-30T16:42:07","guid":{"rendered":"http:\/\/blog.uvm.edu\/ctl\/?p=1914"},"modified":"2017-03-30T12:42:07","modified_gmt":"2017-03-30T16:42:07","slug":"uvms-streaming-media-server-and-online-video-platform-ovp","status":"publish","type":"post","link":"https:\/\/blog.uvm.edu\/ctl\/2017\/03\/30\/uvms-streaming-media-server-and-online-video-platform-ovp\/","title":{"rendered":"UVM&#8217;s Streaming Media Server and Online Video Platform (OVP)"},"content":{"rendered":"<p>An Online Video Platform (OVP) is a service for storage, management,and delivery of audio and video. OVPs are trendy, and the <a href=\"http:\/\/blog.uvm.edu\/ctl\/2008\/01\/02\/uvm-member-of-educauses-learning-initiative\/\">EDUCAUSE Learning Initiative<\/a><sup>\u00a0\u00a0<\/sup>tells us why in their December 2016 article, <em><strong><a href=\"https:\/\/library.educause.edu\/~\/media\/files\/library\/2016\/12\/eli7139.pdf\">7 things you should know about OVPs<\/a><\/strong><\/em>.<\/p>\n<p>Big names in the OVP \u00a0marketplace include <a href=\"http:\/\/www.ensemblevideo.com\">Ensemble<\/a>, <a href=\"http:\/\/www.sharestream.com\">ShareStream<\/a>, <a href=\"http:\/\/www.Kaltura.com\">Kaltura<\/a>, <a href=\"http:\/\/www.panopto.com\">Panopto<\/a>, <a href=\"https:\/\/www.techsmith.com\/techsmith-relay.html\">Techsmith\u2019s Relay,<\/a> <a href=\"https:\/\/www.arcmedia.com\">Instructure\u2019s Arc,<\/a> <a href=\"http:\/\/www.sonicfoundry.com\/Mediasite\u200e\">Sonic Foundry\u2019s Mediasite,<\/a> and <a href=\"http:\/\/echo360.com\">Echo360\u2019s Active Learning Platform<\/a>.\u00a0OVP features vary, but the core functions that allow the upload, conversion, storage, sharing, and playing of video are essentially the same for all platforms. OVP pricing varies, too, with some systems clocking in at $50,000 to $100,ooo per year. That&#8217;s one reason why we built our own. Read on &#8230;<\/p>\n<h2>A bit about streaming video<\/h2>\n<p>Streaming video is not all that new. Here at UVM, we had a\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Helix_Universal_Server\">RealMedia Server<\/a> and a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Darwin_Streaming_Server\">Quicktime\/Darwin Server<\/a>\u00a0both dating back to 1999. However, these products were obscure and difficult to use.\u00a0Both servers were retired around May 2015.<\/p>\n<p>Not all media\u00a0on the web is delivered by streaming. \u00a0A large chuck of content \u2014 in particular audio or video podcasts \u2014 is delivered by simple file download from a standard web server. This content is saved to the users device, and can be played either later at the user&#8217;s pleasure or even while the media is downloading. This latter viewing option is known as <a href=\"https:\/\/en.wikipedia.org\/wiki\/Progressive_download#HTTP_progressive_download_versus_streaming_media\">progressive download<\/a>.<\/p>\n<p>Streaming video is played as it is received, not stored or cached. It is always\u00a0used\u00a0for live events.\u00a0Pre-recorded Video On Demand (VOD) features fast-start, instant seek ahead or behind. Ideally, the server can adjust sound or video quality on the fly to match available bandwidth. Media is difficult if not impossible to save or copy, and streaming requires a dedicated Streaming server, which\u00a0historically has been clumsy and arcane to prepare, configure, and integrate into web sites.<\/p>\n<h4>Exhibit A: Progressive Download vs. streaming. Same video, different delivery. Which is which?<\/h4>\n<p><a href=\"https:\/\/streaming.uvm.edu\/media\/embed\/2935\/\">https:\/\/streaming.uvm.edu\/media\/embed\/2935\/<\/a><\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1914-1\" width=\"640\" height=\"360\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.uvm.edu\/~waw\/podcast_folder\/\/Test\/GOPR0015.MP4?_=1\" \/><a href=\"https:\/\/www.uvm.edu\/~waw\/podcast_folder\/\/Test\/GOPR0015.MP4\">https:\/\/www.uvm.edu\/~waw\/podcast_folder\/\/Test\/GOPR0015.MP4<\/a><\/video><\/div>\n<p>&nbsp;<\/p>\n<h2>streaming.uvm.edu is born<\/h2>\n<p>The UVM streaming server was born serendipitously\u00a0in response to the STEM construction project. The\u00a0Physics Department bought an IP (Internet Protocol) Network camera, hung it out a window in Cook, and pointed it at the construction site. IP cameras stream video use\u00a0the Real Time Streaming Protocol, rtsp, rather than http, yielding ugly URLs like <a href=\"rtsp:\/\/physicscam.uvm.edu\/stream\">rtsp:\/\/physicscam.uvm.edu\/stream<\/a> that most browsers can&#8217;t understand. Soon after, other offices\u00a0wanted construction cams, too. It became quickly apparent that we needed some way to convert these rtsp addresses to http addresses in order to view the cameras on the web. In particular,\u00a0we needed a new streaming server.<\/p>\n<p>What we got was a product with a cool name: the <a href=\"http:\/\/www.wowza.com\/\">Wowza Streaming Engine<\/a>. Basic, simple, and surprisingly inexpensive. It did just what we needed: feed it IP camera rtsp streams, it spits\u00a0back, well, something else. So we needed a player widget, too, which understood the something else and provided the play\/stop\/skip etc. controls necessary to render that something else as a video. We chose the <a href=\"http:\/\/www.jwplayer.com\/\">JWplayer<\/a> widget. Like Wowza, basic, simple, and inexpensive.<\/p>\n<h4>PhysicsCam Live<\/h4>\n<p><iframe src='https:\/\/streaming.uvm.edu\/media\/stem\/embed_stem.php?id=1\/' width='640' height='480' frameborder='0' allowfullscreen><\/iframe><\/p>\n<h2>CumulusClips<\/h2>\n<p>This was all well and good for the handful of IP cameras on campus. But what about the hundreds of pre-recorded video files scattered across www.uvm.edu and Blackboard or blog.uvm.edu? Turns out, Wowza can stream those, too, if those files were consistently constructed and uploaded to the Wowza servers content folder. We were lucky enough to stumble across an Open Source project named <a href=\"http:\/\/Cumulusclips.org\">Cumulusclips<\/a> \u00a0which again did just what we needed. It provides the business logic of file management, tagging, searching, and transcoding needed to feed Wowza content. And it was free.<\/p>\n<h2>Transcoding and Dynamic Adaptive Streaming<\/h2>\n<p>Transcoding is the process of converting a media file from one format to another, possible twiddling attributes along the way. For example, take in a .AVI or .MOV file recorded at 1024 x 768 pixels, 60 frames per second, bitrate 5100 kilobits per second; spit out .MP4 file 768\u00a0x 434\u00a0pixels, 30\u00a0frames per second, bitrate 3100 kilobits per second.<\/p>\n<p>Dynamic Adaptive Streaming detects the bandwidth and CPU of a user\u2019s device and calibrates the video stream accordingly in real time to deliver the best playback quality regardless of connection speed or device. To achieve this, any file uploaded by a user must be transcoded into two or more alternatives with varying quality metrics. The server can switch from one alternative to another on the fly.<\/p>\n<p>The UVM Streaming Server transcodes every uploaded video into 3 variants:<\/p>\n<ul>\n<li>High: 3000 kbps, 1280 x 720 pixels<\/li>\n<li>Medium: 1000 kbps, 640 x 360\u00a0pixels<\/li>\n<li>Mobile: 600 kbps, 480 x 300\u00a0pixels<\/li>\n<\/ul>\n<p>This is a resource intensive process, and may take more often several minutes to less often several hours to complete. Please plan accordingly. Also note it is better to transcode a high resolution video into a lower resolution than it is to go from low to high. So when creating your videos, aim high for best results.<\/p>\n<h2>Back to streaming.uvm.edu<\/h2>\n<p>So now that all the pieces \u2013 Wowza Streaming Engine, JWPlayer viewer, and CumulusClips \u2013 are assembled, what exactly do we have? An OVP which mimics the YouTube experience with the following list of features:<\/p>\n<ul>\n<li>UVM WebAuth authentication<\/li>\n<li>Upload videos:\u00a0Accepts mp3, mp4, flv, wmv, rm (RealMedia), mov, avi<\/li>\n<li>Tag and categorize uploads, create play lists<\/li>\n<li>Upload and attach\u00a0SRT\/WebVTT caption files<\/li>\n<li>automatically transcodes to multiple\u00a0format mp4 files for consistent viewing experience (600kbps mobile; 1000kbps desktop; 3000kbps HD theatre)<\/li>\n<li>Dynamic Adaptive bitrate streaming via <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dynamic_Adaptive_Streaming_over_HTTP\">MPEG \u00a0DASH<\/a>\u00a0and\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP_Live_Streaming\">Apple HLS<\/a><\/li>\n<li>Automatically creates thumbnail poster images, or upload you own<\/li>\n<li>Streamlined integration with BlackBoard and WordPress<\/li>\n<li>optionally require UVM login to view<\/li>\n<li>optionally hide videos from search engines<\/li>\n<li>watch videos, search for videos, share and embed<\/li>\n<li>Growth has been steady, with well over 2000 videos uploaded<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone \" src=\"http:\/\/ctl.w3.uvm.edu\/jpgraph\/src\/Examples\/prepaccdata_example.php\" width=\"743\" height=\"557\" \/><\/p>\n<h2>7 things you should know about UVM Streaming Server<\/h2>\n<p>Back to the EDUCAUSE &#8220;7 things you should know about&#8230;&#8221; article: What are the\u00a07 things you should know about the UVM Streaming Server?<\/p>\n<ol>\n<li><strong>What is it?<\/strong> A\u00a0UVM specific\u00a0solution for the storage, management, and delivery of digital video.<\/li>\n<li><strong>How does it work?<\/strong> Our server provides\u00a0the core functions that allow the upload, conversion, storage, sharing, and playing of video or audio files. After NetID authentication, user can upload files up to 10Gb each. Files are automatically transcoded into 3 variants to support dynamic adaptive streaming. The server acts\u00a0as a central repository for the content and provides content owners with the ability to control access to the work.<\/li>\n<li><strong>Who&#8217;s doing it?\u00a0<\/strong>The Center for Teaching and Learning in partnership with Enterprise Technology Services.<\/li>\n<li><strong>Why is it significant?\u00a0<\/strong>A centralized enterprise level campus-wide OVP \u2013 along with the LMS (Blackboard, Canvas), the synchronous learning platform (Adobe Connect, Cisco WebEx), a lecture capture suite (Mediasite, Tegrity), and learning analytics program (KlassData, SSPS) \u2013 is becoming a necessity for higher education. \u00a0We feel it is a real game changer, as do\u00a0<a href=\"https:\/\/www.panopto.com\/blog\/15-considerations-to-plan-for-in-order-to-support-video-in-your-lms\/\">Panopto<\/a> and <a href=\"https:\/\/www.ithaca.edu\/diis\/services\/dms\/docs\/Kaltura_Video_PDF.pdf\">Kaltura<\/a>.<\/li>\n<li><strong>What are the downsides?<\/strong> The downside of any in house open source software\u00a0is the need to support and maintain the beast in house. Thankfully, two out of\u00a0three components are commercial products, and thus far their technical support has been outstanding.<\/li>\n<li><strong>Where is it going?\u00a0<\/strong>In the words of EDUCAUSE, &#8220;OVPs are a relatively new type of system in higher education, and the contours of the market are emerging. Platform providers are working to create an experience that closely matches that of YouTube.&#8221; Are we there yet?<\/li>\n<li><strong>What are the implications for teaching and learning?<\/strong> Distance learning, hybrid classes, flipped classrooms, universal design, international students, to name a few. Tell us what <em>you<\/em> think!<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An Online Video Platform (OVP) is a service for storage, management,and delivery of audio and video. OVPs are trendy, and the EDUCAUSE Learning Initiative\u00a0\u00a0tells us why in their December 2016 article, 7 things you should know about OVPs. Big names &hellip; <a href=\"https:\/\/blog.uvm.edu\/ctl\/2017\/03\/30\/uvms-streaming-media-server-and-online-video-platform-ovp\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[6875,13],"tags":[6868],"class_list":["post-1914","post","type-post","status-publish","format-standard","hentry","category-promote-to-ctl-home-page","category-technology","tag-tools"],"_links":{"self":[{"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/posts\/1914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/comments?post=1914"}],"version-history":[{"count":16,"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/posts\/1914\/revisions"}],"predecessor-version":[{"id":1936,"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/posts\/1914\/revisions\/1936"}],"wp:attachment":[{"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/media?parent=1914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/categories?post=1914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uvm.edu\/ctl\/wp-json\/wp\/v2\/tags?post=1914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}