ChromeCast 解析分段 TTML

Posted

技术标签:

【中文标题】ChromeCast 解析分段 TTML【英文标题】:ChromeCast Parse Segmented TTML 【发布时间】:2014-03-10 18:44:42 【问题描述】:

喂!

我有一个带有 Smooth Streaming 和 PlayReady 的 ism 文件。 这个ism包含分段ttml格式的标题。

但是这个 ttml 有一个换行符,例如:p8:br 如何解析它并将这些字符替换为 /n(或 Google ChromeCast 可以处理的任何内容)?

所以我可以看到 2 行而不是 1 行的字幕。

我知道我可以使用protocol.getStreamInfo(index) 获取streaminfo,但是之后我可以做什么?

更新 #1

我们为其他平台做一个应用程序,方法如下。 ttml 变量包含电影的标题。

  ttml = ttml.Replace("<p7:br />", "\n");
  ttml = ttml.Replace("<p8:br />", "\n");
  ttml = ttml.Replace("<p7:br/>", "\n");
  ttml = ttml.Replace("<p8:br/>", "\n");
  ttml = ttml.Replace("<br />", "\n");
  ttml = ttml.Replace("<br/>", "\n");

换行符替换为“\n”后,应用程序开始显示当前文本取决于时间(例如,电影底部有一个标签。)

更新 #2

这是来自 dfxp 的示例:

   <p p7:region="speaker" p7:begin="00:04:31:21" p7:end="00:04:37:22"  xmlns:p7="http://www.w3.org/2006/10/ttaf1">Talán mert nem vagy olyan okos?<p7:br />Mert lassú a felfogásod?</p>
   <p p7:region="speaker" p7:begin="00:04:38:23" p7:end="00:04:42:11" xmlns:p7="http://www.w3.org/2006/10/ttaf1">Eressz, különben<p7:br />nem állok jót magamért.</p>  
   <p p7:region="speaker" p7:begin="00:04:52:17" p7:end="00:04:55:10" xmlns:p7="http://www.w3.org/2006/10/ttaf1">Mesélj a nagypapáról.</p>
   <p p7:region="speaker" p7:begin="00:05:08:18" p7:end="00:05:14:12"   xmlns:p7="http://www.w3.org/2006/10/ttaf1">A cukornádföldön voltam.<p7:br />Akkor kapott el, mikor egyedül voltam.</p>

在示例的最后一行,设备无法识别字符并显示字幕如下:

a cukornádföldön voltam.Akkor kapott el, mikor egyedül voltam。

代替

a cukornádföldön voltam。

Akkor kapott el,mikor egyedül voltam。

所以我想借助 ChromeCast API 做一些类似的操作。但这只是简单地更改字符会更容易,因为 ChromeCast 可以完美地处理时间。

非常感谢!

【问题讨论】:

【参考方案1】:

媒体播放器库中有一个错误即将修复;这应该解决这个命名空间问题。修复发布后我会更新这篇文章。

【讨论】:

谢谢 Les Vogel 和 Ali Naddaf!我期待听到这个修复! 修复现在可用;请查看我们开发者网站上的发行说明以查看该库的新网址。【参考方案2】:

我与工程部门核实了这一点,Media Player Library 正在将 br 转换为换行符,我们忽略了命名空间。

如果您有一些有问题的样品,请发送给我们。

【讨论】:

我明白了。但我的问题是我的分段 ttml 标题在清单文件中,换行符是“p8:br”。您说媒体播放器库将“br”转换为换行符,但首先我必须将“p8:br”转换为媒体播放器库所需的“br”。 是封闭的吗? 还是只是 p8:br ??有人告诉我,我们没有查看 p8: 命名空间。 (当然可能有错误) 我更新了我的问题。有没有办法查看更多的命名空间?在这种情况下,我们不必编写解析器来显示标题。 我们真的需要一个例子来为我们提供整个 vtt 段。 l e s v (at) g... 有人问我什么是 p7 和 p8 命名空间?我们找不到他们。

以上是关于ChromeCast 解析分段 TTML的主要内容,如果未能解决你的问题,请参考以下文章

将文本文件解析为列表会导致分段错误

Chromecast 支持哪些字幕格式?

Linux内存管理解析 : 分段与分页机制

Flutter CupertinoSlidingSegmentedControl 分段组件使用解析

MATLAB | solve函数求解析解时不支持分段函数的解决方案

MATLAB | solve函数求解析解时不支持分段函数的解决方案