Streaming HLS to iOS devices using Windows Azure Media Services - ios

I have been doing some exploring of Azure Media Services, specifically with media converted to HLS. I walked through the process of creating HLS content using a process similar to the one outlined in this HLS Walkthrough
Now that I have my HLS content in Azure, I am hoping to stream it just as you would any m3u8 stream. I have tried the following:
WebView in iPad – works OK, it's jumping and not very smooth
Safari on OS X – does not work at all
VLC Player – does not work at all.
Granted this i not exhaustive nor thorough (yet) but before I continue I wanted to get feedback if anyone has any. I stumbled along WAMS Media Player for iOS regarding the Smooth Player for iOS. Is the expectation here that the Smooth Player developed for iOS is the best way to consume HLS generated media from WAMS?

As I understand it, Safari's support (or lack thereof) for HLS depends on QuickTime -- there are versions of QuickTime that do support HLS (QuickTime Pro), but by default, the support is not there.
I suggest you transcode to both Smooth Streaming and HLS. Serve Smooth Streaming via Flash or Silverlight to Windows/Mac clients and HLS via HTML5 to iOS clients.

Related

live video streaming formats supported in iOS programming

I am working live video streaming in iPad app. I have done it previously using MPMediaPlayer with HTTP servers.
From link here I understand that "iOS devices support HTTP progressive download for .mp4 files, the server could be simply Apache or Nginx. The user experience is quite similar to HTTP live streaming , RTSP is also possible. You can migrate live555 to iOS platform as the RTSP client, as use DarwinStreamingServer as the RTSP server.
But my client has provided video streaming URLs in UDP (eg. udp://225.X.X.X:XXXXX ) format and also suggested to refer links link1 and link2 as support to his statement that this will work in iOS for live video streaming.
But I am unable to relate provided links by him with requirement.
My doubts are -
what all formats does iOS supports for live video streaming ?
Does this udp link is of use for me in iOS for video streaming ?
On wifi, iOS supportS everything, because you have access to raw sockets, and the h.264 decode via VideoToolbox. So any protocol can be developed even If there is no out of box support. If you want the video to work over a cellular network, it MUST use HLS. no other options. (Unless you are Facebook, then apple will grant exceptions to this policy)

YouTube live on iOS?

The docs are a little hard to parse here. I was wondering if there was any way to
Stream YouTube live into an iOS app, without significant/any YouTube branding.
Stream from an iOS device as a broadcast stream for YouTube live.
My initial Googling turned up mixed responses. I was hoping to see an example of this if it's possible, or save myself some time if it's not.
Suppose I have a person on ATT next to a person on Verizon streaming content, and I want to make both appear as a single uninterrupted stream switching back and forth. Does YouTube or a library do to anything to facilitate this?
Streaming from an iOS device is no different than streaming from any other device. You would have to write an h264 encoder and RTMP packetizer, and send the video to your YouTube stream object's ingestionAddress. Outlining the details of the encoder beyond the above is too broad for Stack Overflow, but I highly recommend looking at the VideoCore iOS project.
As far as branding goes, the only way to play back YouTube content in an iOS app without breaking YouTube's terms of service is to play the video in a UIWebView or YouTube's iOS player helper library (which is just a web view with some playback interfaces).
There is no way to completely remove YouTube branding from the IFrame player. However, there are branding options you can toggle using the modestBranding flag on the player. See the IFrame docs here.

Wowza Publish the live Stream on Apple HLS demand

The problem is simple. In Wowza when I use a stream file in live mode (so the streaming are published only when requested through RTMP), I'm not able to publish the streaming and get the video streaming when I use the JWPlayer on IOS (so through Apple HLS) so i'm looking for a method for streaming the cams-live on iOS on demand!
I've just started in Wowza so I cannot write Java code to expand the functionality for the moment so be patient.
I've seen this post on stackoverflow, but i can't see the solution, Wowza: Need to stream rtp-live to iphone !

Streaming live camera video from iOS (iPhone/iPad) to remote PC / server

I've been searching for a while on stackoverflow and around the web for a solution to my video-streaming problem. I need to stream live video being captured from the camera (no high-quality required) from an iOS device to a remote PC in one way, i.e., the iOS device will be sending a video stream to the server/PC but not the opposite.
What appears after some googling and documentation browsing is that there are two main major standards/protocols that can be used:
Apple's HTTP Live Streaming (HLS)
Adobe's RTMP
Again, my requirement is that the iPhone/iPad will be streaming the video. From what appears on Apple's website, I understand that HLS is to be used from an encoding perspective server-side, and a decoding perspective iOS side. As of RTMP, most libraries that allow iOS streaming have commercial licenses and closed code or require you to go through their P2P infrastructure (for instance angl.tv or tokbox.com/opentok/quick-start). As of HLS, no encoding libraries seem to exist iOS side.
So my questions are:
Do you know of any SDK/Library preferably open and free that I could integrate to stream captured video from within my app?
If no, do you think developing a custom library would be a risky jungle-crossing endeavour? My guess is to go through AVFoundation and capture camera frames, compress them frame by frame and send them over HTTP. Does that sound crazy performance and bandwidth wise? Note that in that case I would need an HLS or RTMP encoder either ways.
I thank you very much in advance dear friends.
Mehdi.
I have developed such a library, and you can find it at github.com/jgh-/VideoCore
I am updating this answer because I have created a simplified iOS API that will allow you to easily setup a Camera/Mic RTMP session. You can find it at https://github.com/jgh-/VideoCore/blob/master/api/iOS/VCSimpleSession.h.
Additionally, VideoCore is now available in CocoaPods.

How to convert URL file 'Smooth streaming' to Apple HLs format?

In
iOS App
for Live streaming
I am getting the response from server
like this, (You can check)
http://4a75a0cce3694e29bc670b3d574fec92.cloudapp.net/push.isml/manifest
Which is Smooth Streaming file.
How to play this file in my ios app.
Is there any run time converter to convert this file to Apple HLS ?
Any player*(Smooth Streaming)* like
OSMF plugin for iOS
HTML5 player
Silverlight plugin for iOS
Actually :
Actually we have not tried much with Azure Framework. We setted up
the IIS server and got the live streaming.
Played stream by HTML5 video tag in web view.
By following this link
http://www.hanselman.com/blog/CommentView.aspx?guid=86968cd5-feeb-47f2-b02e-1eb4fa556379#commentstart
We can able to play live streaming in our iOS devices.
Still I am happy if I can configure the windows AZure framework to do the same.
You can use the Windows Azure Media Services for converting SmoothStreaming media content into Apple HLS content. Either you use the Management Portal to upload your media assets and then encode it with the preset "Playback on iOS devices and PC/MAC" or you use the REST Api for the Windows Azure Media Services at runtime.
With the REST API you can utilize the Windows Media Packager to encode Smooth Streaming content for HLS. Find a sample configuration for that task here.

Resources