CAF接收器:字幕的定位

时间:2018-01-11 15:04:00

标签: chromecast google-cast custom-receiver ttml caf-receiver-sdk

我创建了一个自定义CAF接收器,用于播放使用Widewine加密的MPEG-DASH内容。我的内容还有清单中嵌入的TTML字幕,可以动态更改。

播放我的加密内容就像魅力一样 - 甚至比V2接收器更好。我甚至可以在不同的字幕之间进行选择。

然而,字幕的定位是偏离的。他们并不以玩家为中心,有时候他们会在提示中间切断(参见附图)。

我可以说CAF接收器使用shaka-player,据我所知,它处理字幕本身的解析 - https://github.com/google/shaka-player/tree/master/lib/text

据我可以从CAF接收器文档中看出,没有办法操纵字幕在接收器上的位置。它们没有被添加到DOM或任何东西中,所以你不能用css来破解它。您唯一能做的就是在TextTrackStyle上设置TextTracksManager,只允许设置颜色等。您无法选择textAlign或类似。

我的问题:

  • 这是CAF Receiver / shaka-player中的已知错误吗?
  • 还有其他人有过类似的问题吗?如果是这样,你有没有设法解决它?

非常感谢任何帮助!

示例1

Cut off subtitles

ttml示例:

    <tt xmlns="http://www.w3.org/ns/ttml" 
    xmlns:tt="http://www.w3.org/ns/ttml" 
    xmlns:ttm="http://www.w3.org/ns/ttml#metadata" 
    xmlns:tts="http://www.w3.org/ns/ttml#styling" 
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter" 
    xmlns:ebutts="urn:ebu:tt:style" xmlns:ebuttm="urn:ebu:tt:metadata" 
    xml:lang="" ttp:timeBase="media">
    <head>
    <metadata>
      <ebuttm:documentMetadata>
        <ebuttm:conformsToStandard>urn:ebu:tt:distribution:2014-01</ebuttm:conformsToStandard>
      </ebuttm:documentMetadata>
    </metadata>
    <styling>
      <style xml:id="Style0_0" tts:fontFamily="proportionalSansSerif" tts:backgroundColor="#00000099" tts:color="#FFFF00" tts:fontSize="100%" tts:lineHeight="normal" ebutts:linePadding="0.5c" />
      <style xml:id="textAlignment_0" tts:textAlign="center" />
    </styling>
    <layout>
      <region xml:id="Region" tts:origin="10% 10%" tts:extent="80% 80%" tts:displayAlign="after" />
    </layout>
  </head>
  <body>
    <div>
      <p region="Region" style="textAlignment_0" begin="114:24:22.120" end="114:24:24.120" xml:id="sub_0">
        <span style="Style0_0">Das hat sich im Grunde</span>
        <br />
        <span style="Style0_0">aus dem Spiel des Seins so ergeben.</span>
      </p>
    </div>
  </body>
</tt>

1 个答案:

答案 0 :(得分:2)

原来这是与Chrome中shaka-player中VTTRegion的使用相关的错误,已在v2.2.9和v2.3.0中修复。 CAF接收器当前加载v2.2.1。

https://github.com/google/shaka-player/issues/1188

在谷歌更新CAF接收器以使用更新版本的播放器之前,你要么必须使用错放的字幕,要么做一个黑客来覆盖接收器上加载的播放器版本。