Ant Media Server works fine with all modern browsers. But I have to support the Internet Explorer 11 for playing the stream. What is the best way to do that?
Playing the stream with „https://mydomain:5443/WebRTCAppEE/streams/stream1.m3u8“ with flowplayer in IE11 works. But the latency is up to 20 seconds, it is too long for live video.
I think RTMP has a shorter latency, but it doesn’t works for me. If I use the URL „rtmp://mydomain/WebRTCAppEE/stream1“ in flowplayer, ffplay or VLC.
Is there something special to configure the server side? Is the URL correct? Or have you any other idea?
Unfortunately, IE 11 does not support WebRTC. So that it cannot play WebRTC.
https://caniuse.com/#search=webrtc
URL is correct there is no problem about that.
Here are the things to do.
Latency can be decreased from 20 seconds to 6-10 seconds range in HLS by making key frame interval to 1 second.
You can let user know they can switch to chrome or firefox for ultra low latency streaming
Related
I am streaming a video to android platform with flutter vlc player.
When I stream the video, it has delay of 2-3 seconds. However if I stream at linux_vlc_player, with setting network-caching option into 0 sec, it shows about 0.5 seconds delay. So I thought the delay in flutter vlc player also can be reduced when I handle the caching option, but I could not find it in flutter_vlc_player.
Where can I find the option?
The image below is how I handled the caching option in linux vlc player. You can see the Caching option is 0ms.
I'm looking for the same. I'm trying to achieve ultra low-latency streams in Flutter, which for my application probably means switching from MJPEG to RTSP.
In the meantime though, and perhaps a good fit for your application, the flutter_mjpeg package is pretty simple to use, and doesn't cripple the latency with a long buffer:
https://pub.dev/packages/flutter_mjpeg
Is there anyway to make IIS smooth streaming work with html5 player. if not, what is recommended streaming server for that (I'm using ASP.Net for my web pages)? wowza, red5 or fms?
Diffrent browsers unfortunately support different video standards, but the industry seems to be moving towards MPEG-DASH as an open standard that most browsers will support.
Most streaming servers will either support this or have a roadmap story to support it.
You need a HTML5 Javascript video player generally to allow it playback on most browsers at this time - BitDash is a good example (https://www.dash-player.com).
Wow, a perfectly good IIS Smooth Streaming server is built into windows since windows 7 and server 2008.
IIS 7 and up will work just fine, windows 7, 8 and 10 will support up to 10 simultaneous users and the server platforms are limited by the amount of bandwidth you got.
A good example of this setup is http://www.tvbydemand.com
The player is free and works on all browsers for the pc, Iphones and all settop boxes like the Roku etc. Android does not support it except on the settop boxes.
We have been hearing about the standardization of mpeg-dash now for 10 years and have yet to see it. Google and Microsoft have been battling over different formats for the last 5 years. Mpeg-Dash is supported but so is HLS and HLS is much more popular. And IIS Smooth Streaming is still supported on the Azure platform by microsoft as well as windows 10 and server 2016.
Wowza is a great media server platform if you have a beefy server and alot of cash to pay for the software and then the yearly maintenance/upgrade fees.
Eitherway though, the only rendering software that supports todays codecs is soreson squeeze and that is pricey, but it will render IIS, HLS, mpeg-dash and all the container formats known and usefull to mankind. it is pricey but worth it.
anyway you can download a sample player by googleing "sample IIS smooth streaming player", it will end .xap
or you can download it from http://www.tvbydemand.com/finished.xap
I'm using HLS for my videos .m3u8 files work perfectly fine on iPhone and iPad, however i would like to be able to measure the performance of it, showing how better it is. I'm not sure about the different metrics I could use, but I would like to be able to also check the bitrate version it is using to be sure it switches correctly if I limit my bandwidth. On iPad or iPhone I'm not sure how I could do that. If somebody has already done that I would really appreciate some advices,
Thanks!
Since HLS is delivered by an HTTP server, you can monitor the client behavior by analyzing the access logs of the HTTP server.
Developed an internet radio streamer using jPlayer which utilizes the html5 audio tags with jQuery and has a flash fall back for unsupported browsers. Upon testing the player on the iPhone (iOS 5.0.1), we ran into a very peculiar issue.
When the iPhone is connected to WiFi, it streams perfectly using the HE-AAC V2 stream # 64kbps 44.1kHz (the preferred codec for apple products). However, when the iPhone is connected to the 3G mobile network, it "stutters" or stops streaming for 1-2 secs every 1-2 minutes (does not stop streaming completely). The troubling thing is when the iPhone is forced to use a separate MP3 stream at the same bit rate, it does not have this issue and works very well on 3G.
UPDATE 5
We recently acquired a 3G/4G Sprint mobile hotspot device and tested this issue with the device. When the iPhone is connected to the mobile hotspot, it shows as being connected to a wifi device and the issue does not render even tho the actual connection is via 3G/4G. This might point back to the issue being with the iPhone not handling HE-AAC via HTTP Live Streaming and when directly connected to the mobile network.
UPDATE 4
Updated the iPhone to iOS 5.1 yet the issue persists.
UPDATE 3
Read here on SO various issues of script not rendering correctly when connected to mobile networks. The finger seems to point to the mobile network carriers that may be inserting Proxy to serve webpages, e.g. for downsizing images. Also it might inject some JavaScript pages. The test page can be found HERE Note: this page is using HE-AAC so it will only work on iPhone...
UPDATE
According to Apple's HTTP Live Streaming doc for iOS devices, that "Audio-only content can be either MPEG-2 transport or MPEG elementary audio streams, either in AAC format with ADTS headers or in MP3 format." Our music server is using OddcastV3 encoder to send out three streams (MP3, HE-AAC V2, and Oggvorbis) to the icecastV2 server. Not sure if the encoder is inserting ADTS headers for the HE-AAC V2 stream. Is there a way to check for this?
Comming from a radio planning point of view - here are my two cents:
What you are describing sounds like bandwidth shaping - which is both a common and often neccesary design of radio networks (like 3G networks). In most 3G operators I worked at you would typically optimize your network to give high-speed burst (think downloading an image, sending one email or fetching one HTML page) - over "long-running" high bandwidth services.
This is due to the simple fact that this is what most users want/need.
This shaping can on a typical 3GPP (GSM 3G) network result in that you will first get a RAB (radio access bearer) supporting 384kbit and is then downgraded as long as your your device accepts it.
This means that typicall you will get switched from 384 -> 256 -> 128, then 64kbit where maybe your device starts recieving data to slowly, then the network upgrades it and again downgrade it after a while.
So why is not then the MP3 file stuttering? my guess is that the total kbit rate might differ - so you are fine in the 64kbit RAB. This is a common phenomena.
We have managed to get the exact same thing working. 64kbit AAC-v2 on mobile devices. We are streaming files and not a steady stream, I think Magnus is right when he explains how the network prioritized traffic to bursts, in our case that means we have large parts of the file right away and the player can continue to play until he next burst comes in. In your case that means the stream pauses until the next burst comes.
Either if you can switch to larger chunks in your streaming (larger buffer) or stream whole files instead?
We had a very strange phenomenon with iOS, we had to rename all files from .m4a to .aac to be able to get them streaming on iOS. If we didn't rename them iOS wouldnt play them.
Good luck.
My app was recently denied because it is set to stream 60+ mb files from my web server and play them; the MPMoviePlayerController downloaded the entire file in 5-10 minutes while simultaneously playing it. From the testing perspective, the app worked great, but Apple limits audio streaming to 5mb/5min.
How would I go about limiting the buffer rate to only buffer 5mb/5min?
I have no idea which direction to go. I am willing to overhaul as long as the player can still stream the files from my web server.
All replies are appreciated.
Live Streaming is limited due to cellular network limits, so the only way to do this is to do this:
Google "HTTP Live Streaming"
Download the tools from Apple's Dev Center and install them
You will need to use Terminal to mediafilesegment the flies
mediafilesegmenter /Path\ to\ File/Name.mp3
Then upload the .m3u8 files and the segments to your server (same directory) and stream the m3u8. Problem solved!