3

I understand that the best bet when streaming a video as a source in an HTML5 tag would be .mp4. But let's say that I have a source that only outputs fragmented to an ism/manifest.

Is there any way at all, whether through other libraries or messy hacks, that I can bring this video into something rendered as a tag onscreen? The closest I have found is Walkthrough: Building Your First HTML5 Smooth Streaming Player because it allows this to be done - but I neither have Windows 8, or want to have this running a server capable of .NET. I was hoping there was something, messy or not, that I could achieve this with entirely within javascript and executable locally without a deploy.

Thanks

Tor
  • 784
  • 1
  • 13
  • 25

2 Answers2

4

Firstly, W3C does not provide a standard for adaptive bitrate streaming, yet. So for the time being most browsers only support simple progressive download playback. Hence, there is no JS implementation of a Smooth Streaming player and Microsoft is not working on one, as far as I know.

The example you provide uses the "Microsoft Smooth Streaming Client SDK Beta 2 for Windows 8" which is a C++ library and is only available for Windows Store Apps development. It has nothing to do with browsers.

So, unfortunately this is not yet possible. Even more, I doubt that this will ever happen, because everybody is waiting for MPEG DASH to be finalized.

UPDATE. Please, notice that you always can use Siverlight application for playing SmoothStreaming. The referenced HTML5 Player framework is capable of falling back to Silverlight.

Mike
  • 549
  • 4
  • 21
  • Thanks! I thought this was the case but needed the final word. I ended up convincing the client that this wasn't possible and I eventually used the open source Silverlight player in the Smooth Media Framework from MS. to customize it. – Tor May 24 '13 at 16:29
2

no luck for Microsoft Smooth Streaming, but regarding MPEG-DASH which is similar (see http://blog.johndeutscher.com/2013/06/10/mpeg-dash-preview-from-windows-azure-media-services):

"Dash.js is permissively licensed (under the BSD license) and can therefore be studied and reused by anyone seeking to provide their own DASH-AVC/264 compliant player. The goal is to make it easier for third-parties to build adaptive streaming video players."

http://msopentech.com/blog/2013/06/20/ms-open-tech-contributes-to-open-source-adaptive-streaming-video-player/

also see: https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html which is required for Dash.js

George Birbilis
  • 2,782
  • 2
  • 33
  • 35
  • There is now a simple tutorial on how to use dash.js at http://msopentech.com/blog/2014/01/03/streaming_video_player/ – rgardler Jan 04 '14 at 00:13
  • thanks for the tip Ross, what isn't obvious to me is how to generate and serve MPEG-DASH video streams from IIS. I know how to use Transform Manager and have been using it with IIS at ClipFlair Project (http://clipflair.net, using Silverlight platform), but video URLs end in /Manifest of course and not in /manifest(format=mpd-time-csf) - Also, using Azure is not an option, I want to be able to serve our smooth streams also as MPEG-DASH so that I can export videos+captions as HTML5 from activities made with our ClipFlair Studio Silverlight app) – George Birbilis Jan 23 '14 at 16:46
  • btw, it is nice that Microsoft released Smooth Streaming Client SDK 2.5 for Silverlight with support for MPEG-DASH that projects using Silverlight Media Framework can also easily leverage. My ClipFlair Studio app that uses SMF (http://ClipFlair.net) seems to not play all MPEG-DASH content that dash.js plays though (maybe this is an issue on how SMF uses Smooth Streaming Client SDK - see discussion I've been having at https://smf.codeplex.com/discussions/462984) – George Birbilis Apr 01 '14 at 14:34
  • I recently read some Microsoft post that they're adding support for Smooth Streaming manifests too (I think they meant to Dash.js), but that will be only for supporting H.264, not VC-1 encoded video streams – George Birbilis Oct 21 '15 at 02:46
  • aha, just came across it again today: hasplayer.js is a javascript implementation of a video player based on the W3C premium extensions, i.e. MSE and EME. hasplayer.js is an extension of the dash.js project with the aim of supporting additional http adaptive streaming protocols such as Microsoft Smooth Streaming protocol and Apple Http Live Streaming. https://github.com/Orange-OpenSource/hasplayer.js - Problem is you won't have support for VC-1 encoded smooth streams, just H.264 ones. Via IIS TransformManager +Expression Encoder Pro (not sold anymore) installed though can re-encode your videos – George Birbilis Oct 21 '15 at 16:59