【问题标题】:Streaming live .m3u8 from iOS to Chromecast从 iOS 流式传输实时 .m3u8 到 Chromecast
【发布时间】:2016-02-27 00:29:58
【问题描述】:

按照 Google 的文档,我可以将 .mp4 和 .m3u8 点播流传输到我的 Chromecast。当我尝试投射直播时,投射图标会消失,然后在一秒钟后重新出现。

这是一个正在工作的点播流:

GCKMediaInformation *mediaInformation =
    [[GCKMediaInformation alloc] initWithContentID:
     @"http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8"
                                        streamType:GCKMediaStreamTypeLive
                                       contentType:@"application/x-mpegURL"
                                          metadata:[self getMetadata]
                                    streamDuration:INFINITY
                                        customData:nil];

这是一个不工作的直播。

GCKMediaInformation *mediaInformation =
    [[GCKMediaInformation alloc] initWithContentID:
     @"http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8"
                                        streamType:GCKMediaStreamTypeLive
                                       contentType:@"application/x-mpegURL"
                                          metadata:[self getMetadata]
                                    streamDuration:INFINITY
                                        customData:nil];

我已经在 VLC 中测试了这两个,以确保流确实处于活动状态。

【问题讨论】:

    标签: ios video-streaming chromecast


    【解决方案1】:

    第二个流没有 CORS 标头,这是 Chromecast 上自适应内容的要求。您可以通过调用curl -v <url> 然后检查标题来检查:

    $ curl -v http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8
    *   Trying 8.253.43.126...
    * Connected to vevoplaylist-live.hls.adaptive.level3.net (8.253.43.126) port 80 (#0)
    > GET /vevo/ch1/appleman.m3u8 HTTP/1.1
    > Host: vevoplaylist-live.hls.adaptive.level3.net
    > User-Agent: curl/7.43.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Cache-Control: max-age=2
    < Date: Tue, 24 Nov 2015 15:44:12 GMT
    < Content-Length: 427
    < Content-Type: application/vnd.apple.mpegurl
    < ETag: "6880298-1ab-51c1fc3e9da00"
    < Last-Modified: Thu, 30 Jul 2015 23:07:20 GMT
    < Accept-Ranges: bytes
    < Server: Footprint Distributor V4.11
    < Vary: Accept-Encoding
    < Expires: Tue, 24 Nov 2015 15:44:14 GMT
    < Connection: keep-alive
    

    如果你对第一个(有效)做同样的事情,你会得到:

    $ curl -v http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8
    *   Trying 23.67.247.168...
    * Connected to qthttp.apple.com.edgesuite.net (23.67.247.168) port 80 (#0)
    > GET /1010qwoeiuryfg/sl.m3u8 HTTP/1.1
    > Host: qthttp.apple.com.edgesuite.net
    > User-Agent: curl/7.43.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Server: Apache
    < ETag: "2b476bddec5a6410f01593dd3244bb86:1299516757"
    < Last-Modified: Mon, 07 Mar 2011 16:52:37 GMT
    < Content-Length: 940
    < Expires: Tue, 24 Nov 2015 15:47:02 GMT
    < Cache-Control: max-age=0, no-cache, no-store
    < Pragma: no-cache
    < Date: Tue, 24 Nov 2015 15:47:02 GMT
    < Connection: keep-alive
    < Set-Cookie: AKID=650047DEB61A8134C38CECC9EC836DF8;expires=Fri, 11-27-2015 00:00:00 GMT; path=/; domain=qthttp.apple.com.edgesuite.net
    < Content-Type: application/x-mpegURL
    < Access-Control-Allow-Origin: *
    < Set-Cookie: CLIENT_SESSION_COOKIE=csid=235AB97C3466663B398A6EC6DA38428C#ct=1448380022#master=sl.m3u8; path=/1010qwoeiuryfg; domain=qthttp.apple.com.edgesuite.net
    < Set-Cookie: CLIENT_VIEWER_COOKIE=78FCBFC2DF7B7BD10F99EEC583042328;expires=Tue, 10-06-2014 00:00:00 GMT; path=/; domain=qthttp.apple.com.edgesuite.net
    

    注意Access-Control-Allow-Origin: * 出现在第二个而不是第一个。

    【讨论】:

    • 我有另一个流确实有 Access-Control-allow-Origin: * 标记,但仍然不起作用。
    • 如果您有使用 CORS 标头提供的流并且具有受支持的格式但仍无法在 Chromecast 上播放,您可以在 code.google.com/p/google-cast-sdk/issues/list 开票并包含您的接收器日志和流.
    • 好的,我必须仔细检查以确保这不是流的问题。
    • 我找到了一个 NFL 直播,它返回 &lt; Access-Control-Allow-Headers: * &lt; Access-Control-Expose-Headers: * &lt; Access-Control-Allow-Methods: GET, HEAD, OPTIONS &lt; Access-Control-Allow-Origin: * 并且它可以流式传输到 Chromecast 没有问题。问题必须与我被测试的流有关。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2014-08-12
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2014-03-27
    相关资源
    最近更新 更多