【问题标题】:Media source vs. progressive media in Cobalt portCobalt 端口中的媒体源与渐进式媒体
【发布时间】:2017-06-15 10:17:11
【问题描述】:

我的 Cobalt 端口目前无法在 Youtube 上播放直播。我总是收到“播放错误”页面。 经过一番调查,似乎在 HTMLMediaElement::LoadResource 中,我们总是尝试调用 LoadProgressive,而 linux-x11 端口总是调用 LoadMediaSource。 我是否缺少配置?如果相关,我可以提供调试日志。

我在 src/starboard/shared/starboard/media/media_can_play_mime_and_key_systems.cc 中使用 SbMediaCanPlayMimeAndKeySystem 的示例右舷实现。

以下是请求的日志:

[0616/124741:INFO:url_utils.cc(124)] Update URL to https://www.youtube.com/tv#/search?resume
[0616/124742:INFO:fetcher_factory.cc(94)] Fetching: https://clients1.google.com/complete/search?client=yout[...]
[0616/124745:INFO:url_utils.cc(124)] Update URL to https://www.youtube.com/tv#/watch/video/idle?v=ANM-dq5USTc&resume
[0616/124745:WARNING:html_media_element.cc(837)] HTMLMediaElement::LoadInternal, nothing to load
[0616/124746:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d4015"; width=426; height=240; framerate=30; bitrate=258000) -> probably/true
[0616/124746:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; width=640; height=360; framerate=30; bitrate=646000) -> probably/true
[0616/124746:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401f"; width=854; height=480; framerate=30; bitrate=1171000) -> probably/true
[0616/124746:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401f"; width=1280; height=720; framerate=30; bitrate=2326000) -> probably/true
[0616/124746:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(audio/mp4; codecs="mp4a.40.5") -> not supported/false
[0616/124746:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(audio/mp4; codecs="mp4a.40.2") -> not supported/false
[0616/124746:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.42c00b"; width=256; height=144; framerate=30; bitrate=124000) -> probably/true
[0616/124746:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9"; width=426; height=240; framerate=30; bitrate=236500) -> not supported/false
[0616/124746:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9"; width=640; height=360; framerate=30; bitrate=421720) -> not supported/false
[0616/124746:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9"; width=854; height=480; framerate=30; bitrate=768640) -> not supported/false
[0616/124746:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9"; width=1280; height=720; framerate=30; bitrate=1521280) -> not supported/false
[0616/124746:INFO:html_media_element.cc(213)] HTMLMediaElement::canPlayType(video/mp4; codecs="avc1.42001E, mp4a.40.2", ) -> probably
[0616/124746:INFO:html_media_element.cc(213)] HTMLMediaElement::canPlayType(application/x-mpegURL, ) -> maybe
[0616/124746:INFO:fetcher_factory.cc(94)] Fetching: https://s.youtube.com/api/stats/qoe?event=streamingstat[...]
[0616/124746:INFO:html_media_element.cc(213)] HTMLMediaElement::canPlayType(application/x-mpegURL, ) -> maybe
[0616/124746:INFO:html_media_element.cc(213)] HTMLMediaElement::canPlayType(application/x-mpegURL, ) -> maybe
[0616/124746:INFO:fetcher_factory.cc(94)] Fetching: https://www.youtube.com/live_204?ns=yt&el=leanback&eurl[...]
[0616/124746:WARNING:html_media_element.cc(837)] HTMLMediaElement::LoadInternal, nothing to load
[0616/124746:INFO:html_media_element.cc(881)] HTMLMediaElement::LoadResource(https://manifest.googlevideo.com/api/manifest/hls_variant/file/index.m3u8?dover=8&ip=195.70.19.74&requiressl=yes&playlist_type=DVR&signature=0F9647CBEA834556179171D3A3FD2FEAEA373C3F.3DFC9F0879094D2E779724380C28DB9C63DDF9CE&gcr=ch&maudio=1&expire=1497632026&id=ANM-dq5USTc.6&ipbits=0&keepalive=yes&source=yt_live_broadcast&ratebypass=yes&ei=urhDWYCqDYuscvuaqJgN&itag=0&go=1&sparams=ei%2Cgcr%2Cgo%2Cid%2Cip%2Cipbits%2Citag%2Cmaudio%2Cplaylist_type%2Cratebypass%2Crequiressl%2Csource%2Cexpire&key=yt6&cpn=1nZ-rQ6kQLN1TFx9&ibw=1369843&c=TVHTML5&cver=5.20160729&ptk=ChannelsTVNigeria&oid=dxjKbku-XsIc5f9auPNeFQ&ptchn=EXGDNclvmg6RW0vipJYsTQ&pltype=contentlive, , 
[0616/124746:INFO:html_media_element.cc(873)] HTMLMediaElement::LoadInternal, using 'src' attribute url
[0616/124746:INFO:shell_demuxer.cc(210)] this is a PROGRESSIVE playback.
[2508:1202853151620:WARNING:thread_set_name.cc(36)] Thread name "ShellDemuxerBlockingThread" was truncated to "ShellDemuxerBlo"
[0616/124746:WARNING:html_media_element.cc(990)] HTMLMediaElement::NoneSupported() error.
[0616/124746:WARNING:html_media_element.cc(837)] HTMLMediaElement::LoadInternal, nothing to load
[0616/124746:WARNING:html_media_element.cc(837)] HTMLMediaElement::LoadInternal, nothing to load
[0616/124746:INFO:html_media_element.cc(881)] HTMLMediaElement::LoadResource(https://manifest.googlevideo.com/api/manifest/hls_variant/file/index.m3u8?dover=8&ip=195.70.19.74&requiressl=yes&playlist_type=DVR&signature=0F9647CBEA834556179171D3A3FD2FEAEA373C3F.3DFC9F0879094D2E779724380C28DB9C63DDF9CE&gcr=ch&maudio=1&expire=1497632026&id=ANM-dq5USTc.6&ipbits=0&keepalive=yes&source=yt_live_broadcast&ratebypass=yes&ei=urhDWYCqDYuscvuaqJgN&itag=0&go=1&sparams=ei%2Cgcr%2Cgo%2Cid%2Cip%2Cipbits%2Citag%2Cmaudio%2Cplaylist_type%2Cratebypass%2Crequiressl%2Csource%2Cexpire&key=yt6&cpn=1nZ-rQ6kQLN1TFx9&ibw=1369843&c=TVHTML5&cver=5.20160729&ptk=ChannelsTVNigeria&oid=dxjKbku-XsIc5f9auPNeFQ&ptchn=EXGDNclvmg6RW0vipJYsTQ&pltype=contentlive&playerfallback=1, , 
[0616/124746:INFO:shell_demuxer.cc(210)] this is a PROGRESSIVE playback.
[0616/124746:INFO:html_media_element.cc(873)] HTMLMediaElement::LoadInternal, using 'src' attribute url
[2513:1202853318166:WARNING:thread_set_name.cc(36)] Thread name "ShellDemuxerBlockingThread" was truncated to "ShellDemuxerBlo"
[0616/124746:WARNING:html_media_element.cc(990)] HTMLMediaElement::NoneSupported() error.
[0616/124746:INFO:fetcher_factory.cc(94)] Fetching: https://s.youtube.com/api/stats/qoe?event=streamingstat[...]
[0616/124746:INFO:fetcher_factory.cc(94)] Fetching: https://www.youtube.com/live_204?ns=yt&el=leanback&eurl[...]
[0616/124746:WARNING:html_media_element.cc(837)] HTMLMediaElement::LoadInternal, nothing to load 

【问题讨论】:

    标签: c++ youtube cobalt mse


    【解决方案1】:

    这可能是您的 SbMediaCanPlayMimeAndKeySystem() 实现中的问题。

    在播放任何视频之前,您应该会在日志中看到一些查询,例如:

    [0615/083711:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; width=640) -> probably/true
    [0615/083711:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; width=99999) -> not supported/false
    [0615/083711:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9") -> not supported/false
    [0615/083711:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; height=360) -> probably/true
    [0615/083711:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; height=99999) -> not supported/false
    [0615/083711:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9") -> not supported/false
    [0615/083711:INFO:media_source.cc(331)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; framerate=30) -> probably/true
    [0615/083711:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/mp4; codecs="avc1.4d401e"; framerate=9999) -> not supported/false
    [0615/083711:INFO:media_source.cc(322)] MediaSource::IsTypeSupported(video/webm; codecs="vp9") -> not supported/false
    

    如果你能把这样的日志贴在这里,我可能会有更好的猜测。

    【讨论】:

    • 这个 IsTypeSupported() 输出看起来不错。您是否可以使用 linux-x64x11 尝试相同的流?如果 linux-x64x11 工作正常,您能否检查您的 SbPlayer 是否通过回调报告任何错误消息或是否有任何 SbPlayer* 调用失败?
    • 我尝试从同一个源代码库运行 linux-x64x11,它适用于实时流。我还注意到正在使用“ASYNC MEDIA SOURCE 播放”,即 LoadMediaSource(在我的端口中调用了 LoadProgressive)。此时,还没有调用任何 SbPlayer,因此这里没有可能的错误。我认为主要问题是:是否有一种配置可以让钴/youtube 始终使用“PROGRESSIVE”而不是“ASYNC MEDIA SOURCE”播放?
    • 我发现了问题。它与 SbMediaGetAudioOutputCount 和 SbMediaGetAudioConfiguration API 的一些错误实现有关。我不知何故使用了存根版本。
    猜你喜欢
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 2015-06-17
    • 2018-03-16
    相关资源
    最近更新 更多