SAMI 1.0, 全称 Microsoft® Synchronized Accessible Media Interchange (SAMI)
Captioning Technologies
简介
SAMI Captioning 是WMP(Windows Media Player)专用字幕文件格式,使用类似HTML的格式记录
SAMI的语法规则近似HTML,有根节点,有一个和,还可以使用CSS控制样式

<SAMI>
<HEAD>
<TITLE>SAMI Example</TITLE>
<SAMIParam>Media {cheap44.wav}Metrics {time:ms;}Spec {MSFT:1.0;}
</SAMIParam>
<STYLE TYPE="text/css">
<!--P { font-family: Arial; font-weight: normal; color: white; background-color: black; text-align: center; }#Source {color: red; background-color: blue; font-family: Courier; font-size: 12pt; font-weight: normal; text-align: left; }.ENUSCC { name: English; lang: en-US ; SAMIType: CC ; }.FRFRCC { name: French;  lang: fr-FR ; SAMIType: CC ; }
-->
</STYLE>
</HEAD>
<BODY>
<-- Open play menu, choose Captions and Subtiles, On if available -->
<-- Open tools menu, Security, Show local captions when present -->
<SYNC Start=0><P Class=ENUSCC ID=Source>The Speaker</P><P Class=ENUSCC>SAMI 0000 text</P><P Class=FRFRCC ID=Source>French The Speaker</P><P Class=FRFRCC>French SAMI 0000 text</P>
</SYNC>
<SYNC Start=1000><P Class=ENUSCC>SAMI 1000 text</P><P Class=FRFRCC>French SAMI 1000 text</P>
</SYNC>
<SYNC Start=2000><P Class=ENUSCC>SAMI 2000 text</P><P Class=FRFRCC>French SAMI 2000 text</P>
</SYNC>
<SYNC Start=3000><P Class=ENUSCC>SAMI 3000 text</P><P Class=FRFRCC>French SAMI 3000 text</P>
</SYNC>
</BODY>
</SAMI>

SAMI 1.0 定义
Microsoft Synchronized Accessible Media Interchange (SAMI) 设计之初的目的是为开发人员、教育工作者以及多媒体制作人和设计人员简化他们的工作,使其更易于访问。 SAMI 文件格式规范作为开放(无许可费用)标准向公众开放。
字幕最初是由 WGBH (波士顿公共电视台) 为大约 2000 万失聪或听力障碍的美国人开发的。 SAMI 技术扩展了为各种多媒体产品提供隐藏式字幕的能力。 本文档的唯一目的是介绍 PC 多媒体中使用的字幕技术。 不包括电视字幕。
CPB/WGBH 国家无障碍媒体中心 (NCAM) 对本文档的开发和更新提供了很大帮助。 有关详细信息,请参阅 NCAM 网站。
SMIL
同步多媒体集成语言 (SMIL™) 侧重于实时编排音频、视频、文本和图形的多媒体演示。 SMIL 1.0 是万维网联盟 (W3C) 的推荐标准(1998 年 6 月)。 W3C 开发了后续版本(SMIL 2.0)。 有关 W3C 和 SMIL 2.0 的更多信息,请参阅网站 http://www.w3.org/AudioVideo/。
Internet Explorer 5.5(或更高版本)支持基于 SMIL 2.0 规范的 HTML+TIME。 此处提供的 MSDN 文章中提供了 HTML+TIME 的技术细节。
SAMI
SAMI 1.0 旨在为 PC 系统中广泛可用的数字媒体添加字幕。 SAMI 字幕作为单独的简单文本文件与数字媒体共存。 可以针对不同语言轻松修改、维护、自定义和本地化字幕。
SAMI 规范受 Microsoft® Encarta® Encyclopedia、Windows Media® Player 和一些 Microsoft 多媒体游戏的支持。 本文档和 Windows Media Player 9 系列软件开发工具包 (SDK) 中提供了技术细节。
本文档中提供了 SAMI 隐藏式字幕示例。
有关更多信息,请参阅向数字媒体添加隐藏式字幕。
File Extension
SAMI documents must use the following extensions: .smi or .sami
SAMI 结构和声明
由于 SAMI 密切基于 HTML,因此它具有类似(但不完全相同)的组件结构,使其成为一种易于学习和编辑的格式。 所有 SAMI 文档都必须以 标签开始并以 标签结束。
标题标签
header 部分(在 和 标记之间)是必需的,它包含 SAMIParam 和 Style 部分。 这些部分包含基本布局和格式信息。
标题标签

标记用于 SAMI 中的信息目的,并且是可选的。 SAMI 参数 SAMI 参数在 SAMIParam 部分中输入,以 和 为边界。 SAMI 参数有两种类型。 一些参数是严格的信息。 SAMI 引擎会忽略这些参数。 例如,版权不会成就或破坏 SAMI 文档; 它只是所有权的指定。 其他参数用于设置显示字幕的初始属性或编码器/解码器属性的基本值。 Copyright 版权的使用仅供参考,SAMI 渲染引擎不会对其进行解析。 它与 SAMIParam 部分一起使用意味着版权仅涵盖转录、格式和时间戳。 媒体的版权必须在别处指定。 用法:Copyright {<版权字符串>}

Media
媒体参数既用作媒体激活的交叉引用,也用作基本媒体的记录。 可以在 Media 参数中指定主要 URL 和辅助 URL。 在大多数情况下,只会使用 Primary 值。 在用户选择是要播放带声音的视频剪辑还是只播放声音文件的情况下,可以使用辅助 URL。 Media 参数不是必需的(尽管这是一个很好的做法,并且在未来的版本中可能需要)。
用法: Media {<主要 URL>}, {<次要 URL>}

Metrics
Metrics指定同步和持续时间的时间单位。 Microsoft® DirectShow® 和 Windows Media Player 仅支持毫秒 (ms),但 SAMI 适合与使用不同时间增量的其他系统一起使用。
用法: Metrics {time: <时间单元>; duration:<时常>}

Specification 规范
规范指定 SAMI 文档规范的版本。
用法: Spec {MSFT:1.0;}

例子:

<SAMIParam>
Copyright {(c)1998-2001, Microsoft Corporation}
Media {SAMI.jpg}
Metrics {time:ms; duration: 73000;}
Spec {MSFT:1.0;}
</SAMIParam>

Style parameters 样式参数
Style parameters are used to format textual display and to provide a method for multiple language support. SAMI style supports methods and attributes of W3C CSS2 (Cascading Style Sheets, level 2). SAMI styles are based on CSS (W3C Cascading Style Sheet) methods and attributes. Style parameters are entered within the Style section, bounded by 标记内。
段落标签
一个标题块(一到四个标题行)在 SAMI 中被定义为一个段落。 可以使用段落样式将基本格式应用于所有标题块。 任何 CSS 样式都可以使用。
例如:

P {margin-left: 8pt;
margin-right: 8pt;
margin-bottom: 2pt;
margin-top:-10pt;
text-align: left;
font-size: 12pt;
font-family: arial, sans-serif;
font-weight: bold;
color: #fee8c6; }

Class and Localization 类和本地化
类用于定义特定于语言的标题或动作。 解析 SAMI 文档时,呈现引擎会将用户选择的语言值与类定义中的名称值进行匹配。 SAMI 渲染引擎将仅呈现 Name 值与用户选择(或作者选择)Language 值匹配的那些行。 有关示例,请参阅 Windows Media Player 的播放菜单上的语言。 如果用户(或作者)没有明确选择语言,则默认使用第一个类(语言)定义。
为保持一致性,语言值应遵循标准 ISO639-ISO3166 命名约定。 例如,“en”是 ISO 639 语言代码 ,“US”是ISO 3166 语言代码(国家码) 。 因此,“en-US”是如何指定英语类型(对于美国)。
SAMI 中的类命名是通过创建一个以句点开头的唯一名称来实现的。 例如,.ENCC 可用于英文字幕,.FRFRCC 可用于法语/法国字幕(与法语/加拿大字幕相反)。 通过将 Class 参数放置在段落标记中来引用 Class。
例如:

除了语言之外,Class 还可用于修改 Caption 块格式。 也就是说,段落样式(如前所述)中支持的任何格式参数都可以添加到类样式中。 这对于字体和边距可能会相应更改的多种语言很有帮助(例如,德语比英语多占用 30% 的行空间)。 在类样式中使用格式参数将取代任何段落样式参数。
用法
{Name: <名称>; Lang: -;
<文字样式格式描述>}
示例

.ENCC {Name: English; lang: en-US; color: white; margin-left: 30pt; margin-right: 30pt;} .FRFRCC {Name: French; lang: fr-FR; color: yellow; margin-left: 12pt; margin-right: 12pt;} .DECCGer {Name: German; lang: de-DE; color: yellow; margin-left: 3pt; margin-right: 3;}

ID Style
通常,特殊格式有助于满足特定受众(例如,儿童或视障人士)的需求。在 SAMI 中,这是通过 ID 属性完成的。例如,大字标题可以 18pt 显示。这是通过创建 BigPrint ID 样式并将其应用于适当的段落来完成的。 ID 样式是通过将唯一名称附加到井号 (#) 来定义的,后跟支持的格式参数列表。
在 HTML 使用 CSS 样式时,作者创建并应用了 ID。使用 SAMI,作者只需要创建 ID 样式。 SAMI 渲染引擎根据用户选择的样式在同步时应用 ID 样式。也就是说,如果用户选择 Big Print 样式,SAMI 引擎会将编写的 #BigPrint 样式应用于呈现的每个

标记。
用法
#<唯一名称> {<格式参数>}
示例

P {font-size: 14pt; text-align: left; font-family: sans-serif; color: white; background-color: black;} 解析为 标准格式 14号
#Standard {Name: Standard; margin-left: 30pt; margin-right: 30pt;} 解析为 放大字体
#Youth {Name: Youth; color: yellow; margin-left: 15pt; margin-right: 15pt;} 解析为 标题
#BigPrint {Name: BigPrint; color: yellow; margin-left: 4pt; margin-right: 3pt;}

Source ID
Source ID 始终显示为标题块顶部的附加行(请参阅下文)。 这用于显示被加字幕的声音或声音的来源。 它可以包含说话者的名称或对象的名称(例如,收音机)。 要使 SAMI 引擎支持 Source ID 功能,必须在 Style 块中定义 #Source。 然后在同步块中指定源 ID(请参阅以下示例和同步部分)。 源 ID 仅在源更改时才需要更新。
用法
#Source {<格式参数>}

示例

#Source {background-color: silver; color: black; font-size: 11pt; font-family: sans-serif; font-weight: normal;}

以下是在 Style 块中定义 Source ID 的示例:

<P Class=ENCC ID=Source> Pres. John F. Kennedy
<P Class=ENCC> Let the word go forth, from this time and place...

Synchronization
SAMI 引入了 <Sync Start=> 标记来支持此功能。 为 Start 参数分配媒体的 Elapsed Time 值(以毫秒为单位)。 当媒体经过的播放时间与同步开始时间匹配时,SAMI 渲染引擎会将 <Sync Start=> 标记后面的内容传递给 SAMI 显示引擎。 要将段落留空,请使用不间断空格实体 ( )。
定义
当媒体的经过时间与其 Start= 值匹配时,SAMI 引擎会解析特定 块的所有内容。 如果 块中的段落包含 Class 属性,则它必须与要呈现的用户选择的语言相匹配。 每个 块只能包含以下 HTML 标记标签,用于标题文本的样式、字体和格式。 所有标记标签都在 W3C HTML 4.01 中定义。
Table 1. HTML Markup Tags Supported in SAMI 1.0

最后一个完整的示例

<SAMI>
<Head><Title>President John F. Kennedy Speech</Title><SAMIParam>Copyright {(C)Copyright 1997, Microsoft Corporation}Media {JF Kennedy.wav}Metrics {time:ms; duration: 73000;}Spec {MSFT:1.0;}</SAMIParam><STYLE TYPE="text/css"><!--P {margin-left: 29pt; margin-right: 29pt; font-size: 12pt; text-align: left; font-family: tahoma, arial, sans-serif; font-weight: normal; color: white; background-color: black;}TABLE {Width: "248pt" ;}.ENUSCC {Name: "English Captions"; lang: en-US-CC;}#Source {margin-bottom: -15pt; background-color: silver; color: black; vertical-align: normal; font-size: 12pt; font-family: tahoma, arial, sans-serif; font-weight: normal;}#Youth {color: greenyellow; font-size: 18pt;}#BigPrint-1 {color: yellow; font-size: 24pt;}--></Style>
</Head><Body><SYNC Start=0><P Class=ENUSCC ID=Source>Pres. John F. Kennedy   <SYNC Start=10><P Class=ENUSCC>Let the word go forth, from this time and place to friend and foe alike that the torch<SYNC Start=8800><P Class=ENUSCC>has been passed to a new generation of Americans, born in this century, tempered by war,<SYNC Start=19500><P Class=ENUSCC>disciplined by a hard and bitter peace, proud of our ancient heritage, and unwilling to witness<SYNC Start=28000><P Class=ENUSCC>or permit the slow undoing of those human rightsto which this nation has always<SYNC Start=38000><P Class=ENUSCC>been committed and to which we are committed today at home and around the world.<SYNC Start=46000><P Class=ENUSCC>Let every nation know, whether it wishes us well or ill, that we shall pay any price, bear any burden,<SYNC Start=61000><P Class=ENUSCC>meet any hardship, support any friend, oppose any foe, to ensure the survival andsuccess of liberty.<SYNC Start=73000><P Class=ENUSCC ID=Source>End of:<P Class=ENUSCC>President John F. Kennedy Speech
</Body>
</SAMI>

SMI/SAMI 字幕相关推荐

  1. f6-下载与字幕FAQ

    f6-下载与字幕FAQ Home > 返回首页 Update > 站内更新 News > F6新闻 Plots > 故事梗概 Caption > F6字幕 Downloa ...

  2. Vitamio打造自己的Android万能播放器

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  3. 使用Vitamio打造自己的Android万能播放器(1)——准备

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  4. Mencoder MPlayer 参数详解

    MPlayer(1)                        电影播放器                        MPlayer(1) D>0>        mplayer  ...

  5. mplayer全参数

    mplayer(1)                        电影播放器                        MPlayer(1) D0        mplayer  - 影视播放器 ...

  6. mencoder MPlayer 参数详细

    MPlayer(1)                        电影播放器                        MPlayer(1) D>0>        mplayer  ...

  7. mplayer - Linux下的电影播放器

    概要 mplayer [选项] [ 文件 | URL | 播放列表 | - ] mplayer [全局选项] 文件1 [特定选项] [文件2] [特定选项] mplayer [全局选项] {一组文件和 ...

  8. mplayer 使用手册(中文)

    MPlayer 名称 概要 说明 一般注记 播放选项 ( 仅用于 MPLAYER) 分路器 / 媒体流选项 OSD/ 字幕选项 音频输出选项 ( 仅用于 MPLAYER) 视频输出选项 ( 仅用于 M ...

  9. x264 代码重点详解 详细分析

    eg mplayer x264 代码重点详解 详细分析 分类: ffmpeg 2012-02-06 09:19 4229人阅读 评论(1) 收藏 举报 h.264codecflv优化initializ ...

  10. ffmpeg mplayer x264 代码重点详解 详细分析

    ffmpeg和mplayer中求平均值得方法 1 ordinary c language level #define avg2(a,b) ((a+b+1)>>1) #define avg4 ...

最新文章

  1. 《Wireshark协议分析从入门到精通》
  2. python面试技巧和注意事项_Python 程序员面试须知须会的5个问题
  3. php实现中英文网站插件,php官网英文自动跳中文
  4. 从微信浏览器,调起本地应用,最简单的解决方案
  5. Android开发笔记(一百五十六)通过渲染纹理展示地球仪
  6. 千锋培训php怎么样,零基础学员真实感受 选择千锋PHP培训完成人生蜕变
  7. Java中常见的八种数据结构
  8. 微信小程序实现图片翻转效果
  9. python读取文件报错OSError: [Errno 22] Invalid argument: '\u202aC:\\Users\\yyqhk\\Desktop\\1.csv'
  10. Javascript中Math常用操作,向上取整、向下取整、四舍五入
  11. unity2.5D动画学习笔记(一):添加人物四向移动动画及脚本
  12. 好玩的猜数游戏(不是二分查找!四位数)
  13. TDM阅读笔记,在推荐系统的应用
  14. navigationController的一些用法
  15. 知乎 量子计算机 未来,知乎打脸媒体“无脑吹”昆仑量子计算模拟机
  16. 王者荣耀注销服务器的流程,王者荣耀账号怎么永久注销 王者荣耀注销账号流程介绍...
  17. 计算机专业本科毕业生去当兵,本科毕业去当兵如何?过来人是这么说的,很有道理!...
  18. Detecting Insults in Social Commentary 数据分析报告(python)
  19. Android 实现简易下载管理器 (暂停、断点续传、多线程下载)
  20. 盘点多边形战士 Polygon 的扩容解决方案

热门文章

  1. Stm32学习笔记(1)-利用TIM1产生SPWM波
  2. 经典网络模型 —— 盘点 22篇必读论文与网络模型 + 5种常见数据集
  3. 华硕win10键盘失灵_win10笔记本键盘失灵
  4. 汇率换算自然语言理解功能JAVA DEMO
  5. 微信文件没下载过期了
  6. 带孔的打印纸怎么设置_针式打印机纸张的格式大小该怎么设置?
  7. 百度SEM/SEO关键词批量自动分词工具
  8. 华为手机鸿蒙系统卡吗,鸿蒙到底有多流畅?华为:3年不卡!
  9. 轻量化神经网络专题文献综述
  10. 计算机中丢失msvcr100.dll怎么办,Win7计算机中Msvcr100.dll丢失的解决方法