CAF Receiver:字幕定位
CAF Receiver: Positioning of subtitles
我创建了一个自定义 CAF 接收器,用于播放使用 Widewine 加密的 MPEG-DASH 内容。我的内容还在清单中嵌入了 TTML 字幕,可以动态更改。
播放我的加密内容非常棒 - 甚至比在 V2 接收器上播放还要好。我什至可以在不同的字幕之间 select。
但是,字幕的位置有偏差。它们不以播放器为中心,有时它们会在提示中间被切断(参见我的附图)。
我可以看出 CAF 接收器使用 shaka-player,据我所知,它可以自行处理字幕解析 - https://github.com/google/shaka-player/tree/master/lib/text
据我从 CAF 接收器文档中得知,无法操纵接收器上字幕的位置。它们不会添加到 DOM 或任何东西中,所以你不能用 css 破解它。您唯一能做的就是在 TextTracksManager
上设置一个 TextTrackStyle
,它只允许设置颜色等。您无法执行 textAlign
或类似操作。
我的问题:
- 这是 CAF Receiver/shaka-player 中的已知错误吗?
- 有没有其他人遇到过类似的问题?如果是这样,您是否设法修复它?
非常感谢任何帮助!
示例 1
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>
原来这是一个与在 Chrome 上的 shaka-player 中使用 VTTRegion 有关的错误,已在 v2.2.9 和 v2.3.0 中修复。 CAF 接收器当前加载 v2.2.1.
https://github.com/google/shaka-player/issues/1188
在 Google 更新 CAF 接收器以使用较新版本的播放器之前,您要么不得不忍受放错位置的字幕,要么进行黑客攻击以覆盖加载到播放器上的播放器版本接收器。
我创建了一个自定义 CAF 接收器,用于播放使用 Widewine 加密的 MPEG-DASH 内容。我的内容还在清单中嵌入了 TTML 字幕,可以动态更改。
播放我的加密内容非常棒 - 甚至比在 V2 接收器上播放还要好。我什至可以在不同的字幕之间 select。
但是,字幕的位置有偏差。它们不以播放器为中心,有时它们会在提示中间被切断(参见我的附图)。
我可以看出 CAF 接收器使用 shaka-player,据我所知,它可以自行处理字幕解析 - https://github.com/google/shaka-player/tree/master/lib/text
据我从 CAF 接收器文档中得知,无法操纵接收器上字幕的位置。它们不会添加到 DOM 或任何东西中,所以你不能用 css 破解它。您唯一能做的就是在 TextTracksManager
上设置一个 TextTrackStyle
,它只允许设置颜色等。您无法执行 textAlign
或类似操作。
我的问题:
- 这是 CAF Receiver/shaka-player 中的已知错误吗?
- 有没有其他人遇到过类似的问题?如果是这样,您是否设法修复它?
非常感谢任何帮助!
示例 1
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>
原来这是一个与在 Chrome 上的 shaka-player 中使用 VTTRegion 有关的错误,已在 v2.2.9 和 v2.3.0 中修复。 CAF 接收器当前加载 v2.2.1.
https://github.com/google/shaka-player/issues/1188
在 Google 更新 CAF 接收器以使用较新版本的播放器之前,您要么不得不忍受放错位置的字幕,要么进行黑客攻击以覆盖加载到播放器上的播放器版本接收器。