12657

WOWZA + RTMP + HTML5 Playback?

I have Wowza and testing RTMP streaming. Now as in Wowza RTMP Example, i can now:

    <li>Playback via Flash
      <li>http://www.wowza.com/gettingstarted</li> <li>Server: rtmp://xx.xx.xx.xx:1935/live</li> <li>Stream: myStream</li> </ul></li> <li>Playback via HTML5 for iOS
        <li><video x-webkit-airplay="allow" type="video/m3u8" src="http://xx.xx.xx.xx:1935/live/myStream/playlist.m3u8" /></li> </ul></li> </ul>

        So means, til now, i can playback via:

          <li>Flash (I DON'T WANT IT IN THE END)</li> <li>iOS HTML5</li> </ul>

          So how to make it to play on:

            <li>HTML5 for non iOS Browsers?</li> </ul>

            For iOS on HTML5:

            <video x-webkit-airplay="allow" type="video/m3u8" src="http://xx.xx.xx.xx:1935/live/myStream/playlist.m3u8" />

            <strong>HTML5 for Android or Windows or Any other Browsers?</strong>

            Answer1:

            The HTML 5 live streaming that you are using on iPhone is often referred to as "HLS". Currently most browsers on desktop do not support HLS via the HTML 5 video tag.

            However, using Wowza, you can get your live stream onto basically any screen with a little effort.

            <strong>iOS:</strong>

            You're covered there. HLS live streaming from Wowza to iOS devices works like a charm.

            <strong>Desktop:</strong>

            Unfortunately, when it comes to desktop browsers you are still limited to using flash for live streams. You can do so in one of two ways:

            <ol> <li>

            With a typical flash media player, such as JWPlayer using the tried and true RTMP method, as you described.

            </li> <li>

            Using a flash media player that supports HLS streams (such as JWPlayer). In this case, you would use the same endpoint that you're using for iOS streams. I've been running live streams this way in flash on desktop. For my money, I prefer to use HLS for desktop, as I am only dealing with one protocol for live streams on all devices at the end of the day. I have also found the performance to be quite good.

            </li> </ol>

            You can read about HLS support in JWPlayer here:

            http://support.jwplayer.com/customer/portal/articles/1430189-about-hls-streaming

            Do note that HLS support in JWPlayer is limited to their enterprise edition.

            All that said, I would really recommend checking out JWPlayer. In my opinion, nothing makes it easier to get your live streams running on all devices.

            <strong>Android:</strong>

            Although Android does not technically support HLS, I have found that on a number of Android devices, including Galaxy S4, and HTC One, using an HLS stream in a video tag works just like on iOS. Since everything I've read indicates that HLS is not supported on Android, I can only assume that this functionality is added by the individual manufacturers. Alternatively, you present Android users with a link to the rtsp stream that is generated by Wowza in it's default application configuration. On most other Android devices, the rtsp stream can be opened with the device's native media player. A full history and workarounds regarding live streaming on Android can be found here:

            http://www.jwplayer.com/blog/the-pain-of-live-streaming-on-android/

            I'll wrap up by saying that although live streaming to mulitple devices has gotten much easier even in the last year, there is still a butt load fragmentation that can make a developer looking to implement a solution pull his hair out. Furthermore, although most would agree that the HTML 5 video specification is the future, that spec is still widely debated, and not really "done" yet. Jeroen Wijering keeps a running article on the subject that is updated regularly and is, in my opinion, required reading for anyone dealing with video in web applications. I would read it thoroughly, and check back frequently for updates as you continue to develop video solutions for the web:

            http://www.jwplayer.com/html5/

            <strong>Update:</strong>

            JWPlayer now officially supports HLS on Android 4.1+ (Jellybean):

            http://support.jwplayer.com/customer/portal/articles/1430189-about-hls-streaming

Recommend

  • Request.el “cannot create connection to api.stackexchange.com”
  • Calling hundreds of azure functions in parallel
  • How can I get a [Glance] Interface Controller / blank slate for Apple Watch?
  • How do I convert an SQL date result to British format (dd/mm/yyyy)
  • What object should a Monitor wait on?
  • Why doesn't a method reference keep track of this?
  • moving an object without actually touching the object
  • (2 - 4 = -1) when int value assigned to pointer in C?
  • Error getting audio input device sample rate: '!obj'
  • AWS java SDK manually set signature version
  • Vertical alignment of float:left div's
  • Implementation of monitors with semaphores
  • Send http request through specific network interface
  • AWS S3 implementation for serving private files
  • Add vcard to Contacts with Mail rules and Applescript
  • PHPUnit: Expected status code 200 but received 419 with Laravel
  • Group variable in cobol
  • record audio in HTML / js without Flash?
  • Disabling sound of embedded flash object with html
  • segue from landscape only to portrait only
  • A class implementing two different IObservables?
  • how to change api_token column in token guard
  • Javascript/Jquery runs fast in desktop browsers, but slow in mobile/smartphone browsers…should I spl
  • Sensibility of combined Maven/Ant+Ivy build management for dual platform Desktop/Android deployment?
  • UWP/C# - Issue with AQS and USB Devices
  • How do I include a SWC in an AS2 Flash project?
  • MS Access - How to change the linked table path by amend the table
  • Tamper-proof configuration files in .NET?
  • Atlas images wrong size on iPad iOS 9
  • Meteor helpers not available in Angular template
  • Projection media query: browser support and workarounds?
  • What is Eclipse's Declaration View used for?
  • How to recover from a Spring Social ExpiredAuthorizationException
  • Window Size for Mac application
  • ILMerge & Keep Assembly Name
  • Javascript + PHP Encryption with pidCrypt
  • Large data - storage and query
  • How do you troubleshoot character encoding problems?
  • Run Powershell script from inside other Powershell script with dynamic redirection to file
  • How does Linux kernel interrupt the application?