ithlony / google-cast-sdk

Automatically exported from code.google.com/p/google-cast-sdk
0 stars 0 forks source link

Some HLS livestreams (m3u8 file) start at wrong segment on Chromecast, resulting in long timelags #606

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1.Play the livestream of the German public TV Channel 'Das Erste' 
http://live-lh.daserste.de/i/daserste_de@91204/master.m3u8 on Chromecast (See 
also attached m3u8 file).
2. Compare the videostream playback timing on Chromecast to a playback on a 
browser like Chrome Desktop, iPhone Mobile Safari or any other browser that 
supports this livestream. You will see that the stream on Chromecast is excatly 
30 minutes behind the actual livestream, which results in a timelag for the 
user.

What is the expected output? What do you see instead?
The livestream should start at the same segment on Chromecast as on any other 
media player.

What version of the product are you using? On what operating system?
Chromecast Firmware 32904

Please provide any additional information below.
The livestream timelag issue only occurs on some specific hls livestreams, like 
the one in the attached m3u8 file. The timelag may be 30 minutes like in the 
given example but it may also be longer or shorter depending on the stream. We 
have no idea what causes the issue, because the m3u8 file seems to be correct 
and healthy. It seems like this issue only affects 10-20 % of all livestreams 
we investigated yet.

Original issue reported on code.google.com by team2...@gmail.com on 29 Jun 2015 at 2:22

Attachments:

GoogleCodeExporter commented 8 years ago
Which sender are you using when you see this timelag? Can you reproduce the 
error with the stream you mentioned and provide the receiver logs?

Original comment by jonathan...@google.com on 29 Jun 2015 at 6:30

GoogleCodeExporter commented 8 years ago
Please find attached the console debug output when playing the livestream.

We use our iOS app "Video & TV Cast for Chromecast" as sender (Please Donwload 
at https://itunes.apple.com/app/video-tv-cast-browser-for/id907405413). Just 
open the app, google "ard live" and you should be directed to the webpage that 
embeds the livestream player. Please compare the local webplayer livestream to 
the livestream on chromecast and you will see the timelag. 

We have figured out that the livestream obviously starts with the wrong segment 
of the m3u8 file. 

Original comment by team2...@gmail.com on 2 Jul 2015 at 12:38

Attachments:

GoogleCodeExporter commented 8 years ago
By the way: The mentioned livestream is only available in Germany. Maybe you 
need to use some kind of vpn solution to get it running with our app, for 
example hola vpn.

Original comment by team2...@gmail.com on 2 Jul 2015 at 1:15

GoogleCodeExporter commented 8 years ago

Original comment by jonathan...@google.com on 6 Jul 2015 at 8:18

GoogleCodeExporter commented 8 years ago
If you're using a custom receiver application, pass in Infinity as 
opt_initialTime to player.load

https://developers.google.com/cast/docs/reference/player/cast.player.api.Player#
load

to play from stream live point.

Original comment by vadi...@google.com on 14 Jul 2015 at 4:05

GoogleCodeExporter commented 8 years ago
Here's where it's mentioned on the developer page: 
https://developers.google.com/cast/docs/player#frequently-asked-questions

How to enable live streams?
Live streams should just work out of the box, provide the URL.
To start at "live" you can specify the Infinity property as the initialTime 
parameter to the player.load API call.

Original comment by jonathan...@google.com on 14 Jul 2015 at 5:16

GoogleCodeExporter commented 8 years ago
Ok, thank you very much. I think we already tried that, but we will have a look 
again.

Original comment by team2...@gmail.com on 17 Jul 2015 at 2:30

GoogleCodeExporter commented 8 years ago
We us a styled media receiver, not a custom receiver. Is there an option to 
pass this Infinity value to the custom styled receiver in the  iOS SDK and 
Android SDK? Or is there any workaround to achieve this?

In the android cast sdk there is used a MediaInfo object where you can set the 
streamtype to MediaInfo.STREAM_TYPE_LIVE or any other of the values mentioned 
in 
https://developers.google.com/android/reference/com/google/android/gms/cast/Medi
aInfo

Unfortunately non of the values works to fix the livestream timelag issue. The 
same applies to the iOS sdk.

Original comment by team2...@gmail.com on 17 Jul 2015 at 2:54

GoogleCodeExporter commented 8 years ago
You will need to use a custom receiver to play at the live point.

Original comment by jonathan...@google.com on 17 Jul 2015 at 9:20

GoogleCodeExporter commented 8 years ago
Ok thanks, that is the final answer I was looking for I guess.

Original comment by team2...@gmail.com on 27 Jul 2015 at 9:35