New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Icecast 2.4 kh4/kh5 do not function on iOS 11 #172

Closed
acorkin opened this Issue Aug 11, 2017 · 43 comments

Comments

Projects
None yet
@acorkin

acorkin commented Aug 11, 2017

During testing with iOS 11 (currently up to Beta 5) Icecast has not worked on either iPhone or iPad devices.

A bug report was submitted to Apple shortly after the release of Beta 1. However, 5 betas on with it still not fixed make it look likely no resolution will be offered on Apple's side at launch in September.

Safari Technical Preview (macOS Sierra) and Safari on High Sierra Beta do not seem to be affected.

Older versions (2.3.3 KH11) and standard Icecast 2.4.1 do function correctly.

The KH5 access log shows:

[2017-08-11  12:14:30] INFO source/source_read listener count on /stream now 1
185.205.172.46 - - [11/Aug/2017:12:14:30 +0000] "GET /stream HTTP/1.1" 200 51409 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1" 5
185.205.172.46 - - [11/Aug/2017:12:14:30 +0000] "GET /stream HTTP/1.1" 200 415 "http://138.68.164.151:8000/" "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1" 0
[2017-08-11  12:14:30] INFO source/source_read listener count on /stream now 0
185.205.172.46 - - [11/Aug/2017:12:14:30 +0000] "GET /stream HTTP/1.1" 200 415 "http://138.68.164.151:8000/" "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1" 0

The device shows:
img_3016

Safari Inspector shows the following for KH5:

screen shot 2017-08-11 at 13 11 06

screen shot 2017-08-11 at 13 11 18

2.3.3 KH11 Safari inspector shows:
screen shot 2017-08-11 at 13 23 27

@acorkin acorkin changed the title from Icecast kh4/kh5 do not function on iOS 11 to Icecast 2.4 kh4/kh5 do not function on iOS 11 Aug 11, 2017

@DuncanFairley

This comment has been minimized.

Show comment
Hide comment
@DuncanFairley

DuncanFairley Aug 13, 2017

Just curious if you have introaudio on this stream at all?

DuncanFairley commented Aug 13, 2017

Just curious if you have introaudio on this stream at all?

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Aug 13, 2017

Owner

can you clarify the link you are trying in the browser, specifically whether you have the .m3u extension on. The browsers have become a bit particular in certain cases, like the partial request of 2 bytes. If the mountpoint is /stream then does requesting /stream.m3u work or any other playlist from webroot?

karl.

Owner

karlheyes commented Aug 13, 2017

can you clarify the link you are trying in the browser, specifically whether you have the .m3u extension on. The browsers have become a bit particular in certain cases, like the partial request of 2 bytes. If the mountpoint is /stream then does requesting /stream.m3u work or any other playlist from webroot?

karl.

@acorkin

This comment has been minimized.

Show comment
Hide comment
@acorkin

acorkin Aug 14, 2017

This was a fresh install of Icecast KH5, I only edited the IP and source passwords etc in the config.
The URL used was http://138.68.164.151:8000/stream (this droplet is dead now)

We use Icecast as a relay server in production I have tried the M3U download on one of our production URLs however the URL contained in the M3U file is http://localhost:80/....

There is no intro file defined in our config.

acorkin commented Aug 14, 2017

This was a fresh install of Icecast KH5, I only edited the IP and source passwords etc in the config.
The URL used was http://138.68.164.151:8000/stream (this droplet is dead now)

We use Icecast as a relay server in production I have tried the M3U download on one of our production URLs however the URL contained in the M3U file is http://localhost:80/....

There is no intro file defined in our config.

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Aug 14, 2017

Owner

for the auto generated m3u, the hostname is taken from the original Host header, or the setting if not provided. If the m3u is the name of a file in webroot then it's just transferred as-is.

karl.

Owner

karlheyes commented Aug 14, 2017

for the auto generated m3u, the hostname is taken from the original Host header, or the setting if not provided. If the m3u is the name of a file in webroot then it's just transferred as-is.

karl.

@acorkin

This comment has been minimized.

Show comment
Hide comment
@acorkin

acorkin Aug 14, 2017

Reloading the config using the correct hostname, when attempting to play from the M3U file on iOS 11 the media player appears, immediately followed by the struck out play button (from original post).
Safari inspector shows:

screen shot 2017-08-14 at 14 16 55

Could it be related to this change in 2.4.0 KH4?

  • updates for header handling, ranges, auth/html5 etc

acorkin commented Aug 14, 2017

Reloading the config using the correct hostname, when attempting to play from the M3U file on iOS 11 the media player appears, immediately followed by the struck out play button (from original post).
Safari inspector shows:

screen shot 2017-08-14 at 14 16 55

Could it be related to this change in 2.4.0 KH4?

  • updates for header handling, ranges, auth/html5 etc
@acorkin

This comment has been minimized.

Show comment
Hide comment
@acorkin

acorkin Aug 15, 2017

Just to update. iOS 11 Dev beta 6 released yesterday has the same issues as beta 5.
iOS 10.3.3 works fine (screenshot from iOS 10.3.3)
screen shot 2017-08-15 at 10 17 55

acorkin commented Aug 15, 2017

Just to update. iOS 11 Dev beta 6 released yesterday has the same issues as beta 5.
iOS 10.3.3 works fine (screenshot from iOS 10.3.3)
screen shot 2017-08-15 at 10 17 55

@acorkin

This comment has been minimized.

Show comment
Hide comment
@acorkin

acorkin Aug 22, 2017

Just a further update. No change on iOS 11 Beta 7 which was released yesterday.

acorkin commented Aug 22, 2017

Just a further update. No change on iOS 11 Beta 7 which was released yesterday.

@acorkin

This comment has been minimized.

Show comment
Hide comment
@acorkin

acorkin Aug 31, 2017

iOS 11 Beta 8 is the same. Submitted another bug-report to Apple. I'm just concerned as it's getting close to launch

acorkin commented Aug 31, 2017

iOS 11 Beta 8 is the same. Submitted another bug-report to Apple. I'm just concerned as it's getting close to launch

@dehy

This comment has been minimized.

Show comment
Hide comment
@dehy

dehy Sep 20, 2017

iOS 11 is live and this is not working.

dehy commented Sep 20, 2017

iOS 11 is live and this is not working.

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Sep 21, 2017

I am having users report same issues on other Icecast implementations too. Currently investigating. Have filed a bug report with Apple.

Updated: we are running Icecast 2.4.0-kh3

dom-robinson commented Sep 21, 2017

I am having users report same issues on other Icecast implementations too. Currently investigating. Have filed a bug report with Apple.

Updated: we are running Icecast 2.4.0-kh3

@andistuder

This comment has been minimized.

Show comment
Hide comment
@andistuder

andistuder Sep 21, 2017

I have the same issues with our own network:
https://stream-relay-geo.ntslive.net/stream

However, I noticed that Airtime.Pro endpoints work: http://nts2.out.airtime.pro:8000/nts2_a and as far as I know they use the Icecast KH branch also - with customisation?

update: Airtime.Pro are using kh1. I am currently on kh3

andistuder commented Sep 21, 2017

I have the same issues with our own network:
https://stream-relay-geo.ntslive.net/stream

However, I noticed that Airtime.Pro endpoints work: http://nts2.out.airtime.pro:8000/nts2_a and as far as I know they use the Icecast KH branch also - with customisation?

update: Airtime.Pro are using kh1. I am currently on kh3

@andistuder

This comment has been minimized.

Show comment
Hide comment
@andistuder

andistuder Sep 21, 2017

I did some further testing on the issues. I can stream on IOS11 when running Icecast 2.4.1 (not KH branch, same as initial poster)
I wonder if related to fixes as listed here:
http://icecast.org/news/icecast-release-2_4_1/

andistuder commented Sep 21, 2017

I did some further testing on the issues. I can stream on IOS11 when running Icecast 2.4.1 (not KH branch, same as initial poster)
I wonder if related to fixes as listed here:
http://icecast.org/news/icecast-release-2_4_1/

@andistuder

This comment has been minimized.

Show comment
Hide comment
@andistuder

andistuder Sep 21, 2017

I've just tested 2.4.0-kh1 - it seems to work well in iOS11.

andistuder commented Sep 21, 2017

I've just tested 2.4.0-kh1 - it seems to work well in iOS11.

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Sep 21, 2017

Interesting well done andistuder !
if you have kh1 running and I have kh3 reported failing it is narrowing down.. :)
Problem for me is i am getting user feedback but don't have IOS11 here to test... Not that keen to update my own phone till the issue is isolated!

dom-robinson commented Sep 21, 2017

Interesting well done andistuder !
if you have kh1 running and I have kh3 reported failing it is narrowing down.. :)
Problem for me is i am getting user feedback but don't have IOS11 here to test... Not that keen to update my own phone till the issue is isolated!

@andistuder

This comment has been minimized.

Show comment
Hide comment
@andistuder

andistuder Sep 21, 2017

@dom-robinson if on Mac, consider using the Simulator app to test. You may need to upgrade XCode to get virtual devices with iOS11.

andistuder commented Sep 21, 2017

@dom-robinson if on Mac, consider using the Simulator app to test. You may need to upgrade XCode to get virtual devices with iOS11.

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Sep 21, 2017

dom-robinson commented Sep 21, 2017

@csernikmarton

This comment has been minimized.

Show comment
Hide comment
@csernikmarton

csernikmarton Sep 21, 2017

Just adding my two cents: as several people reported, kh1 works fine, I can also confirm this. I tried all the versions above kh1: from kh2 upwards none of the versions work under iOS 11.

csernikmarton commented Sep 21, 2017

Just adding my two cents: as several people reported, kh1 works fine, I can also confirm this. I tried all the versions above kh1: from kh2 upwards none of the versions work under iOS 11.

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Sep 21, 2017

Owner

can you confirm that the /mountpoint.m3u works?

What needs to identified is what happens in the connection side of things. It will be some weird issue with range requests/ http1.1 or connection dropping

karl.

Owner

karlheyes commented Sep 21, 2017

can you confirm that the /mountpoint.m3u works?

What needs to identified is what happens in the connection side of things. It will be some weird issue with range requests/ http1.1 or connection dropping

karl.

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Sep 21, 2017

dom-robinson commented Sep 21, 2017

@csernikmarton

This comment has been minimized.

Show comment
Hide comment
@csernikmarton

csernikmarton Sep 21, 2017

The same here, although it takes some good 7-8 seconds to start.
Here's a stream to test if needed: http://live.leanstream.co/CFXJFM.m3u

csernikmarton commented Sep 21, 2017

The same here, although it takes some good 7-8 seconds to start.
Here's a stream to test if needed: http://live.leanstream.co/CFXJFM.m3u

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Sep 21, 2017

Inspector reports "Failed to load resource: Plug-in handled load" when launching without the m3u.

With the .m3u suffix it launches directly (I assume the user agent it picks for mpeg audio is discovered by virtue of the explicit m3u) however if its not there it just doesnt know what to use and so 'Fails to load' a suitable decoder plug in.

However its not as simple as 'just' adding .m3u since that then causes other issues in other browsers.

As a work around I tested the following method within a web page:

 <html lang="en">
 <head>
 <meta charset="utf-8">
    
  <title>TTNS</title>
 <meta name="description" content="TheThursdayNightShow">
 <meta name="author" content="TTNS">
   
 </head>  
 <body>
 <audio controls autoplay>
 <source src="http://listen.thethursdaynightshow.com/live" type="audio/mpeg" >
 <source src="http://listen.thethursdaynightshow.com/live.m3u" type="audio/mpeg" >
   Your browser does not support the audio tag.
 </audio>
    
</body>
</html>

This gives both browsers (IOS and desktop chrome / Safari / ffox etc) a URL that they can use. The autoplay however does not work on IOS.

It'd be nice to understand what IOS has changed but at least there is something of a workaround (so far!)

dom-robinson commented Sep 21, 2017

Inspector reports "Failed to load resource: Plug-in handled load" when launching without the m3u.

With the .m3u suffix it launches directly (I assume the user agent it picks for mpeg audio is discovered by virtue of the explicit m3u) however if its not there it just doesnt know what to use and so 'Fails to load' a suitable decoder plug in.

However its not as simple as 'just' adding .m3u since that then causes other issues in other browsers.

As a work around I tested the following method within a web page:

 <html lang="en">
 <head>
 <meta charset="utf-8">
    
  <title>TTNS</title>
 <meta name="description" content="TheThursdayNightShow">
 <meta name="author" content="TTNS">
   
 </head>  
 <body>
 <audio controls autoplay>
 <source src="http://listen.thethursdaynightshow.com/live" type="audio/mpeg" >
 <source src="http://listen.thethursdaynightshow.com/live.m3u" type="audio/mpeg" >
   Your browser does not support the audio tag.
 </audio>
    
</body>
</html>

This gives both browsers (IOS and desktop chrome / Safari / ffox etc) a URL that they can use. The autoplay however does not work on IOS.

It'd be nice to understand what IOS has changed but at least there is something of a workaround (so far!)

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Sep 21, 2017

Owner

can you try the master branch to see if that is any better?

karl.

Owner

karlheyes commented Sep 21, 2017

can you try the master branch to see if that is any better?

karl.

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Sep 21, 2017

dom-robinson commented Sep 21, 2017

@csernikmarton

This comment has been minimized.

Show comment
Hide comment
@csernikmarton

csernikmarton Sep 22, 2017

@karlheyes I‘ve just tried the master branch, it works absolutely fine: http://icecasttest.leanstream.co/IM0201-MP3

csernikmarton commented Sep 22, 2017

@karlheyes I‘ve just tried the master branch, it works absolutely fine: http://icecasttest.leanstream.co/IM0201-MP3

@andistuder

This comment has been minimized.

Show comment
Hide comment
@andistuder

andistuder Sep 22, 2017

@karlheyes does this indicate ddfd9c5 addressed the issue?

andistuder commented Sep 22, 2017

@karlheyes does this indicate ddfd9c5 addressed the issue?

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Sep 22, 2017

Owner

excellent. indeed that was the change I did, avoiding range handling on streams. Can you make sure of other players For some reason my vlc was having some issue but other players were ok for me. Don't want to break others just to fix one.

karl

Owner

karlheyes commented Sep 22, 2017

excellent. indeed that was the change I did, avoiding range handling on streams. Can you make sure of other players For some reason my vlc was having some issue but other players were ok for me. Don't want to break others just to fix one.

karl

@csernikmarton

This comment has been minimized.

Show comment
Hide comment
@csernikmarton

csernikmarton Sep 22, 2017

Playing fine for me on OS X 10.12.6 (Chrome, Firefox, Safari, Opera), iOS 11 (Safari, Chrome), Android 6 (Chrome). Let them stream for a few minutes, no problems coming up.

csernikmarton commented Sep 22, 2017

Playing fine for me on OS X 10.12.6 (Chrome, Firefox, Safari, Opera), iOS 11 (Safari, Chrome), Android 6 (Chrome). Let them stream for a few minutes, no problems coming up.

@csernikmarton

This comment has been minimized.

Show comment
Hide comment
@csernikmarton

csernikmarton Sep 23, 2017

@karlheyes Just curious, if no issues come up for others either, when can this update be considered production-ready?

csernikmarton commented Sep 23, 2017

@karlheyes Just curious, if no issues come up for others either, when can this update be considered production-ready?

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Sep 23, 2017

Owner

I think so. The only other commit since kh5 is for building against openssl 1.1

karl

Owner

karlheyes commented Sep 23, 2017

I think so. The only other commit since kh5 is for building against openssl 1.1

karl

@andrew867

This comment has been minimized.

Show comment
Hide comment
@andrew867

andrew867 Sep 23, 2017

@karlheyes Any estimate when the next release will be that incorporates this fix?

andrew867 commented Sep 23, 2017

@karlheyes Any estimate when the next release will be that incorporates this fix?

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Sep 23, 2017

Owner

I suppose I could get that out in the next few days. If there are any other issues then shout now.

karl.

Owner

karlheyes commented Sep 23, 2017

I suppose I could get that out in the next few days. If there are any other issues then shout now.

karl.

@rickphp

This comment has been minimized.

Show comment
Hide comment
@rickphp

rickphp Oct 5, 2017

I've upgraded to the latest master build, the stream stops after 10-20 seconds on iOS 11. Is anyone else getting this?

rickphp commented Oct 5, 2017

I've upgraded to the latest master build, the stream stops after 10-20 seconds on iOS 11. Is anyone else getting this?

@andrew867

This comment has been minimized.

Show comment
Hide comment
@andrew867

andrew867 Oct 5, 2017

@rickphp Seems to be working fine for me, you can try my stream at:
https://therev.ca/player/
or
http://158.69.227.214:8008/stream

andrew867 commented Oct 5, 2017

@rickphp Seems to be working fine for me, you can try my stream at:
https://therev.ca/player/
or
http://158.69.227.214:8008/stream

@kjwierenga

This comment has been minimized.

Show comment
Hide comment
@kjwierenga

kjwierenga Oct 6, 2017

Contributor

managed to reproduce the problem and I can confirm that commit ddfd9c5 fixes the problem

Contributor

kjwierenga commented Oct 6, 2017

managed to reproduce the problem and I can confirm that commit ddfd9c5 fixes the problem

@andrew867

This comment has been minimized.

Show comment
Hide comment
@andrew867

andrew867 Oct 6, 2017

@rickphp @kjwierenga The fix is in master branch, it's post kh6.

andrew867 commented Oct 6, 2017

@rickphp @kjwierenga The fix is in master branch, it's post kh6.

@kjwierenga

This comment has been minimized.

Show comment
Hide comment
@kjwierenga

kjwierenga Oct 6, 2017

Contributor

👍

Contributor

kjwierenga commented Oct 6, 2017

👍

@rickphp

This comment has been minimized.

Show comment
Hide comment
@rickphp

rickphp Oct 6, 2017

I am running the latest master branch but users are complaining of the stream stopping after 10-20 seconds. They weren't able to tune in at all before the update, they had the crossed out play button. Any ideas?

rickphp commented Oct 6, 2017

I am running the latest master branch but users are complaining of the stream stopping after 10-20 seconds. They weren't able to tune in at all before the update, they had the crossed out play button. Any ideas?

@rickphp

This comment has been minimized.

Show comment
Hide comment
@rickphp

rickphp Oct 6, 2017

Do you get the same behavior with 46.28.49.164:7328/stream ?

rickphp commented Oct 6, 2017

Do you get the same behavior with 46.28.49.164:7328/stream ?

@andistuder

This comment has been minimized.

Show comment
Hide comment
@andistuder

andistuder Oct 6, 2017

@rickphp could you report which platforms/clients your users use to play the stream when they experience stability issues?

andistuder commented Oct 6, 2017

@rickphp could you report which platforms/clients your users use to play the stream when they experience stability issues?

@luca066

This comment has been minimized.

Show comment
Hide comment
@luca066

luca066 Oct 7, 2017

I tested a stream on Safari, FF, Chrome, Edge, IE, Ghost: they stream the audio with no issue.
OSX and Windows 10.

luca066 commented Oct 7, 2017

I tested a stream on Safari, FF, Chrome, Edge, IE, Ghost: they stream the audio with no issue.
OSX and Windows 10.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Nov 15, 2017

As kh7 has been released and talks about fixing iOS 11 breaking, can I assume this issue has been fixed? Is there a reason this issue hasn't been closed yet?

ghost commented Nov 15, 2017

As kh7 has been released and talks about fixing iOS 11 breaking, can I assume this issue has been fixed? Is there a reason this issue hasn't been closed yet?

@karlheyes

This comment has been minimized.

Show comment
Hide comment
@karlheyes

karlheyes Dec 5, 2017

Owner

kh8 is out now, afaik the ios11 issue is resolved. Any further issues then open a separate ticket.

karl.

Owner

karlheyes commented Dec 5, 2017

kh8 is out now, afaik the ios11 issue is resolved. Any further issues then open a separate ticket.

karl.

@karlheyes karlheyes closed this Dec 5, 2017

@dom-robinson

This comment has been minimized.

Show comment
Hide comment
@dom-robinson

dom-robinson Dec 5, 2017

dom-robinson commented Dec 5, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment