GB/T 44882-2024 信息技术 可关闭字幕 ,该文件为pdf格式 ,请用户放心下载!
尊敬的用户你们好,你们的支持是我们前进的动力,网站收集的文件并免费分享都是不容易,如果你觉得本站不错的话,可以收藏并分享给你周围的朋友。
如果你觉得网站不错,找不到本网站,可以百度、360搜搜,搜狗, 神马搜索关键词“文档天下”,就可以找到本网站。也可以保存到浏览器书签里。
收费文件即表明收集不易,也是你们支持,信任本网站的理由!真心非常感谢大家一直以来的理解和支持!
CCS L70
中华人民共和国国家标准
GB/T44882—2024
信息技术 可关闭字幕
Informationtechnology—Closedcaptioning
2024-11-28发布2025-06-01实施
国家市场监督管理总局
国家标准化管理委员会发布
目 次
前言………………………………………………………………………………………………………… Ⅲ
1 范围……………………………………………………………………………………………………… 1
2 规范性引用文件………………………………………………………………………………………… 1
3 术语和定义……………………………………………………………………………………………… 1
4 缩略语…………………………………………………………………………………………………… 1
5 约定……………………………………………………………………………………………………… 2
6 架构……………………………………………………………………………………………………… 3
7 CC编码………………………………………………………………………………………………… 3
8 CC存储………………………………………………………………………………………………… 19
9 CC传输………………………………………………………………………………………………… 21
附录A (规范性) CC在非MPEG-2TS协议上的传输……………………………………………… 23
附录B(资料性) CC描述模式语法结构……………………………………………………………… 29
参考文献…………………………………………………………………………………………………… 32
前 言
本文件按照GB/T1.1—2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定
起草。
请 注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。
本文件由全国信息技术标准化技术委员会(SAC/TC28)提出并归口。
本文件起草单位:北京工业大学、上海工程技术大学、上海国茂数字技术有限公司、帕科视讯科技
(杭州)股份有限公司、北京大学、上海交通大学、中移(杭州)信息技术有限公司、北京市地铁运营有限公
司、浙江大学、清华大学、青海大学、腾讯科技(深圳)有限公司、中国国际电视总公司、央视国际网络有限
公司、中国互联网协会、中国电子技术标准化研究院、科大讯飞股份有限公司、安徽听见科技有限公司、
北京博雅睿视科技有限公司、咪咕文化科技有限公司、中兴通讯股份有限公司、字幕通(北京)智能媒体
科技发展有限公司、北京牡丹电子集团有限责任公司、北京数字电视国家工程实验室有限公司、河北广
电无线传媒股份有限公司、广东博华超高清创新中心有限公司、山东百盟信息技术有限公司、中关村视
听产业技术创新联盟、鹏城实验室。
本文件主要起草人:牟伦田、赵海武、付强、马思伟、徐异凌、马楠、胡永利、罗红、魏运、张克俊、
卜佳俊、张勇、邵磊、史元春、胡颖、罗威、盛尧、黄畅、李婧欣、刘聪、王玮、程鸣、许晓中、王苫社、李琳、
徐嵩、单华琦、黄成、余建、毛珂、王炜、于智、周晟、杨彦军、王宇、范涛、侯朴玥、姜志乾、白雅贤、李秋婷、
柳建龙、宋国栋、边祥国、蒋运雄、邱溥业、曲文雍、原源、隋康尼、李思远、柳玉华、焦磊、卢金禹、龙仕强、
肖铁军、陈智敏、赵洪伟、付强、翟光耀、魏嘉、韩巍、江东来、赵海英、尹宝才、王国中、张伟民、黄铁军、
高文。
1 范围
本文件提出了可关闭字幕的架构,规定了可关闭字幕的编码、存储和传输。
本文件适用于网络流媒体、网络电视、视频点播、电视广播和应急广播中有关节目的无障碍服务字
幕和字幕翻译。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文
件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于
本文件。
GB/T4880.3—2009 语种名称代码 第3部分:所有语种的3字母代码
GB/T13000 信息技术 通用多八位编码字符集(UCS)
GB/T17975.1 信息技术 运动图像及其伴音信息的通用编码 第1部分:系统
GB18030 信息技术 中文编码字符集
GB/T33475.1 信息技术 高效多媒体编码 第1部分:系统
GB/T33475.6—2024 信息技术 高效多媒体编码 第6部分:智能媒体传输
ISO/IEC14496-12 信息技术 音视频对象编码 第12部分:ISO基础媒体文件格式(Information
technology—Codingofaudio-visualobjects—Part12:ISObasemediafileformat)
IETFRFC3550 RTP:实时应用传输协议(RTP:A TransportProtocolforReal-TimeApplications)
3 术语和定义
下列术语和定义适用于本文件。
3.1
可关闭字幕 closedcaptioning
与音视频内容具有关联关系的可打开或关闭其显示的文本。
注1:通常用于在视频屏幕或其他视觉显示设备上为听力障碍人群提供语音的文本转录或非语音内容的文本描述。
注2:可为不同语种地区观众提供当地所使用主语种的相应翻译文本。
3.2
可关闭字幕文件 closedcaptioningfile
独立存储可关闭字幕的文本文件。
4 缩略语
下列缩略语适用于本文件。
1
GB/T44882—2024
AS:自适应流媒体(adaptivestreaming)
BSLBF:左位在先位串(bitstringleftbitfirst)
CC:可关闭字幕(closedcaptioning)
CCF:可关闭字幕文件(closedcaptioningfile)
CEU:通用封装单元(commonencapsulationunit)
CTS:组合时间戳(compositiontimestamp)
DTS:解码时间戳(decodingtimestamp)
ETS:结束时间戳(endingtimestamp)
GIF:图形交换格式(graphicsinterchangeformat)
ISOBMFF:ISO 基本媒体文件格式(ISObasemediafileformat)
JPG:联合图像专家组(jointphotographicexpertsgroup)
MANE:媒体感知网络单元(media-awarenetworkelement)
MP:智能媒体传输包(SMTpackage)
MPD:媒体呈现描述(mediapresentationdescription)
MPEG-2TS:MPEG-2传输流(MPEG-2transportstream)
MPT:智能媒体传输包表(SMTpackagetable)
PA:包访问(packageaccess)
PCR:节目时钟参考(programclockreference)
PES:分组的基本流(packetizedelementarystream)
PNG:便携式网络图形(portablenetworkgraphics)
PSI:载荷结构指示符(payloadstructureindicator)
PTS:显示时间戳(presentationtimestamp)
RTP:实时传输协议(real-timetransportprotocol)
SMT:智能媒体传输(smartmediatransport)
SMTP:智能媒体传输协议(smartmediatransportprotocol)
SRT:子Rip字幕(subriptext)
STAP:单时间复合包(single-timeaggregationpacket)
TIFF:标签图像文件格式(taggedimagefileformat)
UCS:通用编码字符集(universalcodedcharacterset)
URI:统一资源标识符(uniformresourceidentifier)
UTF-8:UCS转换格式8(UCStransformationformat8)
UIMSBF:高位在先无符号整数(unsignedintegermostsignificantbitfirst)
XML:可扩展置标语言(extensiblemarkuplanguage)
5 约定
5.1 描述符
下列约定适用于本文件中的描述符:
———b(8):一个任意取值的字节;
———f(n):取特定值的连续n 个二进制位;
———r(n):连续n 个“1”;
2
GB/T44882—2024
———u(n):n 位无符号整数,高位在先;
———utf8:用UTF-8编码字符。
5.2 函数
以下函数用于语法描述。假定解码器中存在一个位流指针,这个指针指向位流中要读取的下一个
位的位置。函数由函数名及左右圆括号内的参数构成。函数也可没有参数。以下函数的约定为:
———next_bits(n):返回位流的随后n 个位,最高有效位在先,不改变位流指针。如剩余的位少
于n,则返回0;
———round():四舍五入取整。
6 架构
CC架构见图1,主要包含如下部分:
a) CC编码:规定可关闭字幕基本流的语法和语义;
b) CC存储:规定可关闭字幕文件格式,包括独立字幕文件格式CCF和基于ISOBMFF的扩展;
c) CC传输:规定可关闭字幕基本流在MPEG-2TS中传输的格式。
CC在非MPEG-2TS协议上的传输应符合附录A 的要求。与CC编码具有对应关系的CC表示的
模式语法结构见附录B。
图1 CC架构
7 CC编码
7.1 CC基本流语法
7.1.1 CC序列语法
CC序列语法见表1。
表1 CC序列语法
CC序列语法描述符
CC_sequence(){
do{
3
GB/T44882—2024
表1 CC序列语法(续)
CC序列语法描述符
while((next_bits(32)== CC_sample_start_code)){
CC_sample()
}
}while(next_bits(32)! = CC_sequence_end_code)
CC_sequence_end_code f(32)
}
7.1.2 CC样本语法
CC样本语法见表2。
表2 CC样本语法
CC样本语法描述符
CC_sample(){
CC_sample_start_code f(32)
CC_type u(8)
language b(24)
CC_string_offset u(8)
if(CC_type! =4&& CC_type! =255){
time_information()
}
if(CC_type! =255){
position_description()
display_description()
color_description()
font_description()
style_description()
}
for(i=0;i<n;i++)
user_data_byte (8)
if(CC_type! =2){
CC_string()
4
GB/T44882—2024
表2 CC样本语法(续)
CC样本语法描述符
}
else{
picture_data_byte b(8)
}
}
7.1.3 时间信息语法
时间信息语法见表3。
表3 时间信息语法
时间信息语法描述符
time_infomation(){
time_reference u(2)
time_format u(2)
end_type u(2)
reserved r(2)
if(time_format==1){
reserved BSLBF(4)
PTS[32..30] BSLBF(3)
marker_bit BSLBF(1)
PTS[29..15] BSLBF(15)
marker_bit BSLBF(1)
PTS[14..0] BSLBF(15)
marker_bit BSLBF(1)
if(end_type==0){
reserved BSLBF(4)
ETS[32..30] BSLBF(3)
marker_bit BSLBF(1)
ETS[29..15] BSLBF(15)
marker_bit BSLBF(1)
ETS[14..0] BSLBF(15)
5
GB/T44882—2024
表3 时间信息语法(续)
时间信息语法描述符
marker_bit BSLBF(1)
}
if(end_type==1){
reserved BSLBF(4)
duration[32..30] BSLBF(3)
marker_bit BSLBF(1)
duration[29..15] BSLBF(15)
marker_bit BSLBF(1)
duration[14..0] BSLBF(15)
marker_bit BSLBF(1)
}
}
if(time_format==2){
start_hour_add_1 u(8)
start_minute_add_1 u(8)
start_second_add_1 u(8)
start_millisecond_add_1 u(10)
reserved r(6)
if(end_type==0){
end_hour_add_1 u(8)
end_minute_add_1 u(8)
end_second_add_1 u(8)
end_millisecond_add_1 u(10)
reserved r(6)
}
if(end_type==1){
duration_hour_add_1 u(8)
duration_minute_add_1 u(8)
duration_second_add_1 u(8)
duration_millisecond_add_1 u(10)
reserved r(6)
6
GB/T44882—2024
表3 时间信息语法(续)
时间信息语法描述符
}
}
}
7.1.4 位置描述语法
位置描述语法见表4。
表4 位置描述语法
位置描述语法描述符
position_description(){
origin u(2)
abs_or_relative u(2)
position_format u(4)
if(position_format==1){
center_x u(15)
marker_bit f(1)
center_y u(15)
marker_bit f(1)
reserved r(32)
}
if(position_format==2){
left u(15)
marker_bit f(1)
top u(15)
marker_bit f(1)
right u(15)
marker_bit f(1)
bottom u(15)
marker_bit f(1)
}
}
7
GB/T44882—2024
7.1.5 显示描述语法
显示描述语法见表5。
表5 显示描述语法
显示描述语法描述符
display_description(){
display_direction u(2)
horizontal_justification u(2)
vertical_justification u(2)
reserved u(10)
}
7.1.6 颜色描述语法
颜色描述语法见表6。
表6 颜色描述语法
颜色描述语法描述符
color_description(){
background_color_red u(8)
background_color_green u(8)
marker_bit f(1)
background_color_transparency u(7)
background_color_blue u(8)
background_width u(8)
foreground_color_red u(8)
foreground_color_green u(8)
marker_bit f(1)
foreground_color_transparency u(7)
foreground_color_blue u(8)
reserved b(32)
}
7.1.7 字型描述语法
字型描述语法见表7。
8
GB/T44882—2024
表7 字型描述语法
字型描述语法描述符
font_description(){
font_id u(8)
font_size u(8)
reserved r(8)
}
7.1.8 风格描述语法
风格描述语法见表8。
表8 风格描述语法
风格描述语法描述符
style_description(){
if(CC_type! =2){
bold_flag u(1)
italic_flag u(1)
underline_flag u(1)
reserved r(13)
}
else{
picture_format u(8)
reserved r(8)
}
}
7.1.9 CC字符串语法
CC字符串语法见表9。
表9 CC字符串语法
CC字符串语法描述符
caption_string(){
do{
9
GB/T44882—2024
表9 CC字符串语法
CC字符串语法描述符
while(next_bits(8)! =0){
CC_char utf8
}
zero_byte f(8)
}while(next_bits(32)! = CC_sequence_end_code&&next_bits(32)! =
CC_sample_start_code)
}
7.2 字幕基本流语义
7.2.1 字幕序列
7.2.1.1 通则
字幕序列由若干字幕样本组成,以字幕样本起始码开始,以字幕序列结束码结束。
7.2.1.2 字幕序列结束码(CC_sequence_end_code)
位串“0x000001C1”。标识字幕序列的结束。
起始码是一组特定的位串。在符合本文件的位流中,除起始码外的任何情况下都不应出现这些
位串。
起 始码由起始码前缀和起始码值构成。起始码前缀是位串“000000000000000000000001”。所
有的起始码都应字节对齐。
起始码值是一个8位无符号整数,用来表示起始码的类型,见表10。
表10 起始码值
起始码类型起始码值(十六进制)
字幕样本起始码(CC_sample_start_code) C0
字幕序列结束码(CC_sequence_end_code) C1
保留C2~C7
用户自定义起始码C8~FF,00~BF
7.2.1.3 掩码位(marker_bit)
1位,取固定值1。
注:设置掩码位的目的是避免出现伪起始码。
10
GB/T44882—2024
7.2.2 字幕样本
7.2.2.1 字幕样本起始码(CC_sample_start_code)
位串“0x000001C0”。标识字幕样本的开始。
7.2.2.2 字幕类型(CC_type)
7.2.2.2.1 8位无符号整数,值为1表示字幕样本中包含的字幕是普通文本;值为2表示字幕样本中包
含的字幕是图片;值为3表示字幕样本中包含的字幕是手语描述(用于说明手语动作);值为4表示字幕
样本是直播字幕;值为255表示字幕样本是应急广播。其他取值保留。CC_type取值分配见表11。
表11 CC_type取值
CC_type 含义
0 禁止
1 普通文本
2 图片
3 手语描述
4 直播字幕
5..254 保留
255 应急广播
7.2.2.2.2 当CC_type的值为2时,字幕类型为图片。终端应忽略display_description()、color_description()
、font_description()中的格式信息。如图片的宽度和高度与position_description()中指定的
CC窗口的宽度和高度不一致,终端应调整图片使其适应CC窗口。
7.2.2.2.3 当CC_type的值为4时,字幕类型为直播字幕。当终端接收到直播字幕时,应按以下方法
处理。
a) 如直播字幕的CC字符串不为空,则按以下方式处理:
1) 如终端正在显示直播字幕,则立即停止正在显示的直播字幕,并立即显示本条直播字幕;
2) 如终端没有正在显示的直播字幕,则立即显示本条直播字幕。
b) 如直播字幕的CC字符串为空,即没有出现CC_char字段,则按以下方式处理:
1) 如终端正在显示直播字幕,则立即停止正在显示的直播字幕;
2) 如终端没有正在显示直播字幕,则不做任何动作。
7.2.2.2.4 当CC_type的值为255时,字幕类型为应急广播。当终端接收到应急广播时,应按以下方法
处理。
a) 如应急广播的CC字符串为空,即没有出现CC_char字段,则按以下方式处理:
1) 如终端正在播放应急广播,则应立即停止正在播放的应急广播;
2) 如终端没有正在播放应急广播,则不做任何动作。
b) 如应急广播的CC字符串不为空,则立即开始按本条以下规定的方式开始播放应急广播的内
容,直到接收到下一条应急广播为止。
7.2.2.2.5 应急广播的格式信息取以下值,其中有些字段的取值在指定的范围之内即可:
11
GB/T44882—2024
origin=1
abs_or_relative=2
position_format=2
left=0
top应大于或等于800小于或等于900
right=1000
bottom =1000
display_direction=0
horizontal_justification=3(此字段在应急广播的格式描述中应被忽略)
vertical_justification=1
background_color_red=16
background_color_green=16
background_color_transparency=100
background_color_blue=240
background_width=255
foreground_color_red=240
foreground_color_green=240
foreground_color_transparency=100
foreground_color_blue=240
font_id=0
font_size的值大于或等于(bottom-top)×0.7小于或等于(bottom-top)×0.9
bold_flag=0
italic_flag=0
underline_flag=0
7.2.2.2.6 应急广播应循环播放。文字从屏幕右侧向左侧匀速运动,运动速度为每秒5个汉字,每个循
环头尾间隔大于或等于10个汉字,小于或等于屏幕宽度。
7.2.2.2.7 如应急广播的CC字符串中出现回车、换行符,则终端应忽略这些回车、换行符。
7.2.2.3 语种(language)
24位位串,GB/T4880.3—2009 规定的三字母语种代码。符合本文件的终端至少应支持汉语
(zho)和英文(eng)。
7.2.2.4 CC字符串偏移(CC_string_offset)
8位无符号整数,表示本字段与CC字符串之间的字节数。
7.2.2.5 用户数据字节(user_data_byte)
用户数据字节,其数量由CC字符串偏移和CC格式信息、时间信息的字节数共同确定。用户数据
也可起到填充的作用。用户数据的含义本文件不做规定,但用户数据应保证不出现伪起始码。解码器
可忽略这些数据。
7.2.2.6 图片数据字节(picture_data_byte)
当CC_type的值为2时,此字段中包含图片文件数据字节。
12
GB/T44882—2024
7.2.3 时间信息
7.2.3.1 时间参考(time_reference)
2位无符号整数。值为1表示CC样本中的时间相对于PCR;值为2表示CC样本中的时间相对于
节目的开始时刻,节目的开始时刻定义为0时刻。
7.2.3.2 时间格式(time_format)
2位无符号整数。值为1表示CC样本中的时间格式是33位时间戳,单位是1/90000s;值为2表
示CC样本中的时间格式是时分秒毫秒,分别用1/1/1/2个字节表示。如时间参考取值1,则时间格式
应取值1;如时间参考取值2,则时间格式应取值2。
7.2.3.3 终止时间类型(end_type)
2位无符号整数。值为0表示CC样本中给出字幕显示的终止时刻,值为1表示CC样本中给出字
幕显示的持续时间。
7.2.3.4 PTS
33位无符号整数,表示CC开始显示的时刻。为了防止出现伪起始码,PTS被分为三个部分,中间
用掩码位分割开。PTS的编码格式应符合GB/T17975.1。
7.2.3.5 ETS
33位无符号整数,表示CC结束显示的时刻。为了防止出现伪起始码,ETS被分为三个部分,中间
用掩码位分割开。ETS的编码格式与PTS相同。
7.2.3.6 CC持续显示时间(duration)
33位无符号整数,表示CC持续显示的时间长度,单位为1/90000s。为了防止出现伪起始码,CC
持续显示时间被分为三个部分,中间用掩码位分隔开。CC 持续显示时间的编码格式与显示时间戳
相同。
7.2.3.7 CC开始时加1(start_hour_add_1)
8位无符号整数,表示CC开始显示时间的小时加1。start_hour_add_1的取值范围是1..24。
7.2.3.8 CC开始分加1(start_minute_add_1)
8位无符号整数,表示CC开始显示时间的分钟加1。start_minute_add_1的取值范围是1..60。
7.2.3.9 CC开始秒加1(start_second_add_1)
8位无符号整数,表示CC开始显示时间的秒加1。start_second_add_1的取值范围是1..60。
7.2.3.10 CC开始毫秒加1(start_millisecond_add_1)
10位无符号整数,表示CC 开始显示时间的毫秒加1。start_millisecond_add_1的取值范围是
1..1000。
字幕开始时间记为SH:SM:SS:SX,计算方式如下:
13
GB/T44882—2024
SH =start_hour_add_1-1
SM =start_minute_add_1-1
SS=start_second_add_1-1
SX =start_millisecond_add_1-1
7.2.3.11 CC结束时加1(end_hour_add_1)
8位无符号整数,表示CC结束显示时间的小时加1。end_hour_add_1的取值范围是1..24。
7.2.3.12 CC结束分加1(end_minute_add_1)
8位无符号整数,表示CC结束显示时间的分钟加1。end_minute_add_1的取值范围是1..60。
7.2.3.13 CC结束秒加1(end_second_add_1)
8位无符号整数,表示CC结束显示时间的秒加1。end_second_add_1的取值范围是1..60。
7.2.3.14 CC结束毫秒加1(end_millisecond_add_1)
10位无符号整数,表示CC 结束显示时间的毫秒加1。end_millisecond_add_1 的取值范围是
1..1000。
CC结束时间记为EH:EM:ES:EX,计算方式如下:
EH =end_hour_add_1-1
EM =end_minute_add_1-1
ES=end_second_add_1-1
EX =end_millisecond_add_1-1
7.2.3.15 CC持续时加1(duration_hour_add_1)
8位无符号整数,表示CC持续显示时间的小时加1。duration_hour_add_1的取值范围是1..24。
7.2.3.16 CC持续分加1(duration_minute_add_1)
8位无符号整数,表示CC持续显示时间的分钟加1。duration_minute_add_1的取值范围是1..60。
7.2.3.17 CC持续秒加1(duration_second_add_1)
8位无符号整数,表示CC持续显示时间的秒加1。duration_second_add_1的取值范围是1..60。
7.2.3.18 CC持续毫秒加1(duration_millisecond_add_1)
10位无符号整数,表示CC持续显示时间的毫秒加1。duration_millisecond_add_1的取值范围是
1..1000。
CC持续时间记为DH:DM:DS:DX,计算方式如下:
DH = duration_hour_add_1-1
DM = duration_minute_add_1-1
DS= duration_second_add_1-1
DX = duration_millisecond_add_1-1
14
GB/T44882—2024
7.2.4 位置描述
7.2.4.1 通则
位置描述中包含样本显示位置的信息。CC窗口示意图见图2。规定屏幕左上角为坐标原点,横坐
标从左向右增加,纵坐标从上到下增加。屏幕水平分辨率记为ScreenWidth,屏幕垂直分辨率记为
ScreenHeight,视频窗口左上角坐标记为(VideoWindowX0,VideoWindowY0),视频窗口的宽度和高
度记为VideoWindowWidth和VideoWindowHeight。
图2 CC窗口示意图
7.2.4.2 原点(origin)
2位无符号整数,值为1表示坐标原点在屏幕左上角,值为2表示坐标原点在视频显示窗口左
上角。
7.2.4.3 绝对或相对(abs_or_relative)
2位无符号整数,值为1表示给出的位置坐标是绝对坐标,单位是像素;值为2表示给出的位置坐
标是相对坐标,单位是1‰。
7.2.4.4 指定CC窗口位置的方式(position_format)
4位无符号整数,值为1表示指定CC窗口的中心坐标,CC窗口的大小根据所需显示的字幕确定。
值为2表示指定CC窗口的左上角和右下角坐标。
7.2.4.5 中心横坐标(center_x)和中心纵坐标(center_y)
15位无符号整数。当abs_or_relative值为1时表示CC窗口中心的绝对横坐标和纵坐标,以像素
为单位;当abs_or_relative的值为2时表示CC窗口中心的相对横坐标和纵坐标,单位是1‰。CC窗口
的中心坐标(CCWCenterX,CCWCenterY)按以下方式计算:
if(origin==1){
if(abs_or_relative==1){
CCWCenterX =center_x
CCWCenterY =center_y
}
if(abs_or_relative==2){
15
GB/T44882—2024
CCWCenterX =round(ScreenWidth*center_x/1000)
CCWCenterY =round(ScreenHeight*center_y/1000)
}
}
if(origin==2){
if(abs_or_relative==1){
CCWCenterX = VideoWindowX0+center_x
CCWCenterY = VideoWindowY0+center_y
}
if(abs_or_relative==2){
CCWCenterX = VideoWindowX0+round(VideoWindowWidth*center_x/1000)
CCWCenterY = VideoWindowY0+round(VideoWindowHeight*center_y/1000)
}
}
7.2.4.6 CC 窗口左上角横坐标(left)、CC 窗口左上角纵坐标(top)、CC 窗口右下角横坐标(right)和字
幕窗口右下角纵坐标(bottom)
15位无符号整数。当abs_or_relative值为1时表示CC窗口左上角和右下角的绝对横坐标和纵坐
标,以像素为单位;当abs_or_relative的值为2时表示CC窗口左上角和右下角的相对横坐标和纵坐
标,单位是1‰。CC窗口左上角和右下角的相对于屏幕左上角的绝对坐标(CCW_X0,CCW_Y0)和
(CCW_X1,CCW_Y1)按以下方式计算:
if(origin==1){
if(abs_or_relative==1){
CCW_X0=left
CCW_Y0=top
CCW_X1=right
CCW_Y1= bottom
}
if(abs_or_relative==2){
CCW_X0=round(ScreenWidth*left/1000)
CCW_Y0=round(ScreenHeight*top/1000)
CCW_X1=round(ScreenWidth*right/1000)
CCW_Y1=round(ScreenHeight* bottom/1000)
}
}
if(origin==2){
if(abs_or_relative==1){
CCW_X0= VideoWindowX0+left
CCW_Y0= VideoWindowY0+top
CCW_X1= VideoWindowX0+right
CCW_Y1= VideoWindowY0+ bottom
16
GB/T44882—2024
}
if(abs_or_relative==2){
CCW_X0= VideoWindowX0+round(VideoWindowWidth*left/1000)
CCW_Y0= VideoWindowY0+round(VideoWindowHeight*top/1000)
CCW_X1= VideoWindowX0+round(VideoWindowWidth*right/1000)
CCW_Y1= VideoWindowY0+round(VideoWindowHeight* bottom/1000)
}
}
7.2.5 显示描述
7.2.5.1 显示方向(display_direction)
2位无符号整数,值为0表示文本从左到右、从上到下显示,值为1表示文本从左到右、从下到上显
示,值为2表示文本从右到左、从上到下显示,值为3表示文本从右到左、从下到上显示。
7.2.5.2 水平对齐(horizontal_justification)
2位无符号整数,值为0表示左对齐,值为1表示水平居中,值为2表示右对齐,值为3表示水平两
端对齐。
7.2.5.3 垂直对齐(vertical_justification)
2位无符号整数,值为0表示顶端对齐,值为1垂直居中,值为2表示底端对齐,值为3表示垂直两
端对齐。
7.2.6 颜色描述
7.2.6.1 背景色红色分量(background_color_red)
8位无符号整数,背景色的红色分量,取值范围是0~255。
7.2.6.2 背景色绿色分量(background_color_green)
8位无符号整数,背景色的绿色分量,取值范围是0~255。
7.2.6.3 背景色透明度(background_color_transparency)
7位无符号整数,背景色的透明度,取值范围是0~100,值为0表示完全透明,值为100表示完全不
透明。
7.2.6.4 背景色蓝色分量(background_color_blue)
8位无符号整数,背景色的蓝色分量,取值范围是0~255。
7.2.6.5 背景宽度(background_width)
8位无符号整数,值为255表示背景色填满CC窗口,值为0表示背景色无效,值为1~15表示用背
景色给CC字符镶边,镶边的宽度为指定的值,单位为像素。16~254为保留值,可用于未来扩展。
注1:CC字符镶边的目的是防止CC字符的颜色与视频内容刚好接近时无法看清,同时尽可能减少CC字符遮盖视
频内容的面积。
17
GB/T44882—2024
注2:CC字符镶边的过程是以CC字符点阵中每个属于字符的点为中心,并以指定的镶边宽度(背景宽度)为半径
画圆。如果圆内的点不属于字幕字符,则将该点的颜色置为背景色。如果在圆内的点属于字幕字符,则不变。
7.2.6.6 前景色红色分量(foreground_color_red)
8位无符号整数,前景色的红色分量,取值范围是0~255。
7.2.6.7 前景色绿色分量(foreground_color_green)
8位无符号整数,前景色的绿色分量,取值范围是0~255。
7.2.6.8 前景色透明度(foreground_color_transparency)
7位无符号整数,前景色的透明度,取值范围是0~100,值为0表示完全透明,值为100表示完全不
透明。
7.2.6.9 前景色蓝色分量(foreground_color_blue)
8位无符号整数,前景色的蓝色分量,取值范围是0~255。
7.2.7 字型描述
7.2.7.1 字型序号(font_id)
8位无符号整数,每一个文种最多支持256种字体。本字段的含义和language字段的取值有
关,表12列出了文种为中文和英文时本字段的取值及其含义。
表12 font_id取值及含义
font_id language的值为zho时的含义language的值为eng时的含义
0 黑体timesnewroman
1 宋体arial
2 楷体calibri
3 仿宋体helvetica
4..255 保留保留
7.2.7.2 字型尺寸(font_size)
8位无符号整数,字符的高度,取值范围是1..255,当abs_or_relative=1时单位是像素,当abs_or_
relative=2且origin=1时单位是屏幕高度的1‰,当abs_or_relative=2且origin=2时单位是视频窗
口高度的1‰。鉴于不同文种的字型尺寸规定不统一,本文件要求无论是哪个文种的哪种字体,解码器
应将字符映射到指定高度,并保持纵横比。
7.2.8 风格描述
7.2.8.1 加粗标志(bold_flag)
1位无符号整数,值为0表示不加粗,值为1表示加粗。
18
GB/T44882—2024
7.2.8.2 斜体标志(italic_flag)
1位无符号整数,值为0表示不斜体,值为1表示斜体。
7.2.8.3 下划线标志(underline_flag)
1位无符号整数,值为0表示不加下划线,值为1表示加下划线。
7.2.8.4 图片格式(picture_format)
8位无符号整数,取值及含义见表13。
表13 picture_format取值及含义
picture_format 含义
0 禁止
1 JPG
2 PNG
3 TIFF
4 GIF
5..255 保留
7.2.9 CC字符串
7.2.9.1 CC字符(CC_char)
采用UTF-8编码字符时,应符合GB/T13000,并与GB18030有关部分建立映射关系。
7.2.9.2 零字节(zero_byte)
8位。取固定值0x00。
8 CC存储
8.1 独立CC文件
CCF是一个文本文件,可以独立编辑。CCF的语法见表14。
表14 CCF语法
CCF语法
CC_file(){
for(i=0;i<n;i++){
caption()
}
}
19
GB/T44882—2024
一个CCF文件由若干字幕条组成。字幕条语法见表15。
表15 字幕条语法
字幕条语法
caption(){
for(i=0;i<n;i++){
note_line()
}
for(i=0;i<n;i++){
format_line()
}
counter_line()
time_line()
for(i=0;i<n;i++){
caption_line()
}
blank_line()
}
一个字幕条由若干注释行、若干格式行、计数行、时间行、若干字幕行和一个空行组成。
a) 注释行note_line():以‘#’开头的行,其他字符可以是任意可显示字符,直到行末。
b) 格式行format_line():中间包含‘#’的行,‘#’后面是格式名称,‘#’前面是格式的值。
c) 计数行counter_line():只包含一个整数的行,当前字幕文件第一个字幕条的计数行的数字应
为0,计数行的数字宜每次加1。
d) 时间行time_line():包含时间信息,有两种格式:
● 当第二个时间表示结束时刻时,应与SRT文件保持一致,即:hh:mm:ss,ttt--> hh:mm:
ss,ttt;
● 当第二个时间表示持续显示时长时,采用以下格式:hh:mm:ss,tttdurhh:mm:ss,ttt。
其中hh、mm、ss分别表示时分秒,ttt表示毫秒。
e) 字幕行caption_line():在屏幕上显示的一行字幕,可包含任意可显示字符。一个字幕条可包
含多个字幕行。
f) 空行blank_line():表示一个字幕条的结束。
一个字幕条中的注释行可不出现。
一个CCF文件中的第一个字幕条应包含完整的格式行,对字幕格式进行完整的定义。其他字幕
条可不包含格式行,或只包含部分格式行,对部分格式进行重新设置。没有被重新设置的格式保持
不变。
20
GB/T44882—2024
8.2 基于ISOBMFF的文件封装
8.2.1 CC媒体文件
当CC基本流基于ISO/IEC14496-12进行封装时,CC基本流作为字幕媒体被封装为可关闭字幕
轨道,应满足以下要求:
a) 其轨道的HandlerBox数据盒类型应为“subt”且包含于MediaBox数据盒中;
b) CC轨道的MediaInformationBox数据盒中应包含一个SubtitleMediaHeaderBox;
c) 其DTS和CTS信息通过ISOBMFF中TimeToSampleBox数据盒和CompositionOffsetBox
数据盒来管理。
8.2.2 可关闭字幕样本
可关闭字幕轨道中的一个样本应包含7.1.2的表2中规定的一个CC_sample(),且不应包含CC_
sequence_end_code(见7.2.1.2的表10)。
8.2.3 可关闭字幕轨道样本入口
8.2.3.1 定义
样本入口类型:'avcc'。
容器:SampleTableBox('stbl')。
强制性:可关闭字幕轨道中应至少包含一个'avcc'样本入口。
数量:一个或多个。
可关闭字幕轨道的每个样本入口应是一个'avcc'样本入口,其样本入口类型为'avcc'。
8.2.3.2 语法
classAVSClosedCaption()extendsSubtitleSampleEntry('avcc'){
}
9 CC传输
9.1 CC基本流的PES语法
CC基本流在GB/T17975.1的PES中封装的语法见表16。
表16 CC基本流的PES语法
语法位数描述符
PES_packet(){
packet_start_code_prefix 24 BSLBF
stream_id 8 UIMSBF
PES_packet_length 16 UIMSBF
CC_start_code_value 8 UIMSBF
if(stream_id= =0xFD){
if(CC_start_code_value==0xC0){
CC_sample_without_startcode()
21
GB/T44882—2024
表16 CC基本流的PES语法(续)
语法位数描述符
}
for(i=0;i<n;i++){
stuffing_byte 8 UIMSBF
}
}
}
9.2 CC基本流的PES语义
CC基本流的PES语义如下:
a) stream_id:流标识符字段,取值0xFD(extended_stream_id);
b) PES_packet_length:PES分组长度字段,应等于CC样本去掉起始码前缀后的字节数加填充字
节数;
c) CC_start_code_value:CC起始码值,取值应为0xC0(CC样本起始码值)或0xC1(CC序列结束
码值)。
22
GB/T44882—2024
附 录 A
(规范性)
CC在非MPEG-2TS协议上的传输
A.1 CC在RTP上传输
A.1.1 RTP头的使用
IETFRFC3550的5.1中给出了RTP头的格式,见图A.1。
图A.1 RTP头
RTP载荷格式对其中数据域的使用应符合IETFRFC3550的规定。
A.1.2 RTP载荷的通用格式
A.1.2.1 通则
本载荷格式定义了两种不同的基本载荷结构,每种又可分为不同的子类型:
a) 单样本包:一个RTP包载荷中仅包含一个7.1.2中给出的CC_sample();
b) 复合包:一个RTP包载荷中包含多于一个单时间CC_sample()。
不同载荷结构通过第一个字节PSI来进行区分。PSI格式见图A.2。
图A.2 PSI格式
PSI各字段语义如下:
F:1位
23
GB/T44882—2024
值0表示RTP载荷中不宜包含位错误或其他语法错误。值1表示RTP载荷中可能包含位错误或
其他语法错误。如检测到RTP载荷中有位错误,MANE宜将F设为1。
NRI:2位
NRI值表明RTP包的相对传输优先级。MANE可利用这个信息更好地保护更重要的RTP包。
优先级由高到低的NRI值依次为11b、10b、01b和00b。
Type:5位
用于指示RTP载荷的结构,语义见表A.1。
表A.1 PSI中Type字段所对应的载荷结构
Type 载荷结构载荷结构全称
0 未规定
1..6 CC_sample 单样本包
7 STAP 单时间复合包
8..31 未规定
A.1.2.2 单样本包
单样本包应包含且仅包含一个7.1.2给出的CC_sample()。复合包不能在单样本包中使用。通过
按RTP序列号顺序解封装单样本包所得到的字幕基本流应符合字幕基本流的解码顺序。在单样本包
载荷结构中,RTP载荷中的第一个字节为PSI信息,其后紧跟CC_sample(),单样本包的RTP载荷格
式见图A.3。
图A.3 单样本包的RTP载荷格式
A.1.2.3 单时间复合包
STAP应包含具有相同时间信息的多个CC_sample(),其中时间信息指一个CC_sample()打包为
一个RTP包时的RTP时间戳。复合包的载荷格式见图A.4。
24
GB/T44882—2024
图A.4 复合包的RTP载荷格式
A.2 CC在AS上传输
应对GB/T33475.1做以下扩展以支持CC。
a) 以下术语需要列举出CC:
● 连续媒体continuousmedia;
● 媒体内容mediacontent;
● 表示representation。
b) MPD结构中需要列举出CC。
c) 表9 AdaptationSet、Representation 和SubRepresentation 的公共属性和元素的语义需要
补充:
● CC时间信息描述与7.2.3一致;
● CC窗口的位置描述与7.2.4一致;
● CC显示信息描述与7.2.5~7.2.9一致。
d) 同步插播需要支持CC流与视频流、音频流的同步插播。
A.3 CC在SMT上传输
A.3.1 SMTP包结构
GB/T33475.6—2024中8.3.2.2的图8给出了SMTP包结构,见图A.5。
25
GB/T44882—2024
图A.5 SMTP包结构
CC 数据作为SMTP包载荷封装在payloaddata字段中。同时,为支持CC 数据在SMTP的传
输,增加了SMTP包对数据类型的定义。
type:标识载荷数据类型。载荷类型值见表A.2。
表A.2 数据类型与数据单元定义
值数据类型数据单元定义
0x00 CEU 媒体感知的CEU 片段
0x01 信令消息一条或多条信令消息或信令消息的片段
0x02 CC数据CC数据片段或一个或多个CC数据
0x03 为其他数据类型保留
0x04..0x3F 私有用途保留
A.3.2 CC数据模式下SMTP载荷头
CC数据模式下SMTP载荷头部结构见图A.6。
26
GB/T44882—2024
图A.6 CC数据模式下SMTP载荷头部结构
Fragmentation_Indicator(f_i:2位):指示SMTP中CC数据的片段信息。片段指示值见表A.3。
表A.3 片段指示值
值描述
0x00 CEU
0x01 信令消息
0x02 CC数据
0x03 为其他数据类型保留
aggregation_flag(A:1位):该字段置“1”表示载荷中包含2个或以上CC数据。
fragmentation_counter(frag_count:8位):该字段表示此CC数据片段后包含同一CC数据片段的
SMTP载荷个数。当aggregation_flag字段置“1”时该字段置“0”。
res(6位):该字段所有位置“0”,保留以后使用。
CC_data_length(16位):该字段表示此字段后CC数据长度。当aggregation_flag置“1”时,该字段
出现次数与整合进载荷中的CC数据个数相同,并出现在每个CC数据前面。
CC_data_playload:CC数据载荷。
A.3.3 CC业务描述符
CC业务元数据封装在MP表(见GB/T33475.6—2024的9.3.6)中的媒体资源描述符中,以PA 消
息(见GB/T33475.6—2024的9.3.2)或MPT 消息(见GB/T33475.6—2024的9.3.3)的形式进行传
输,见表A.4。
表A.4 CC_service_descriptor语法
语法值位数备注
CC_service_descriptor(){
descriptor_tag
descriptor_length
num_of_service
for(i=0;i<n;i++){
CC_service_number
}
}
N
16
16
8
8
UIMSBF
UIMSBF
UIMSBF
UIMSBF
27
GB/T44882—2024
descriptor_tag:标识符,用于标志descriptor的类型。
descriptor_length:标识符的长度,单位为字节。
num_of_service:标识CC业务的数目。
CC_service_number:CC业务的编号。
28
GB/T44882—2024
附 录 B
(资料性)
CC描述模式语法结构
CC中元素的描述性说明基于W3CXMLSchema[1]语法结构进行组织。
该schema由以下URI来描述:cn:org:avs:schema:CC。
<? xmlversion="1.0"encoding="UTF-8"? >
<schemaxmlns="http: www.w3.org="" 2001="" xmlschema"<br="">xmlns:ClosedCaption="cn:org:avs:schema:CC"
xmlns:ns1="cn:org:avs:schema:CC"
targetNamespace="cn:org:avs:schema:CC"
elementFormDefault="qualified"attributeFormDefault="unqualified">
<elementname="ccseqheader"type="cc:ccseqheadertype">
<complextypename="ccseqheadertype">
<elementname="language"type="cc:languagetype">
<complextypename="languagetype">
<attributename="value_of_language"type="string">
<elementname="timeinfo"type="cc:timeinfotype">
<complextypename="timeinfotype"
<attributename="ctime"type="string">
<attributename="duration"type="integer">
<attributename="layer"type="integer">
<elementname="position"type="cc:positiontype">
<complextypename="positiontype"
<attributename="ctime"type="string">
<attributename="tx"type="integer">
<attributename="ty"type="integer">
<attributename="height"type="integer">
<attributename="width"type="integer">
<elementname="sampledescriptions"type="cc:sampledescriptions">
<complextypename="sampledescriptionstype">
29
GB/T44882—2024
<elementname="sd"type="cc:sdtype">
<complextypename="sdtype">
<attributename="id"type="integer">
<elementname="dispflags"type="cc:dispflagstype">
<complextypename="dispflagstype"
<attributename="write_text_vertically"type="integer">
<attributename="horizontal_justification"type="integer">
<attributename="vertical_justification"type="integer">
<elementname="fonttable"type="cc:fonttabletype">
<complextypename="fonttabletype"
<elementname="fontname"type="cc:fontnametype">
<complextypename="fontnametype"
<attributename="id"type="integer">
<attributename="font"type="string">
<elementname="stylerecord"type="cc:stylerecordtype">
<complextypename="stylerecordtype"
<elementname="fontinfo"type="cc:fontinfotype">
<complextypename="fontinfotype"
<attributename="fontid"type="integer">
<attributename="fontsize"type="integer">
<elementname="facestyle"type="cc:facestyletype">
<complextypename="facestyletype"
<attributename="bold"type="integer">
<attributename="italic"type="integer">
<attributename="underline"type="integer">
<elementname="text_color_rgba"type="cc:text_color_rgbatype">
<complextypename="text_color_rgbatype"
<attributename="red"type="integer">
<attributename="green"type="integer">
<attributename="blue"type="integer">
<attributename="transparency"type="integer">
30
GB/T44882—2024
<elementname="boxrecord"type="cc:boxrecordtype">
<complextypename="boxrecordtype"
<attributename="top"type="integer">
<attributename="left"type="integer">
<attributename="bottom"type="integer">
<attributename="right"type="integer">
<elementname="ccsample"type="cc:ccsample">
<complextypename="ccsampletype">
<elementname="text"type="cc:text">
<complextypename="texttype">
<attributename="text"type="string">
<elementname="dur"type="cc:dur">
<complextypename="durtype">
<attributename="duration"type="integer">
<elementname="sd_id"type="cc:sd_id">
<complextypename="sd_id">
<attributename="sdid"type="integer">
31
GB/T44882—2024
参 考 文 献
[1] C.M.Sperberg-McQueen,Henry Thompson.W3C XML Schema[S].(2018-03-09).</attributename="sdid"type="integer"></complextypename="sd_id"></elementname="sd_id"type="cc:sd_id"></attributename="duration"type="integer"></complextypename="durtype"></elementname="dur"type="cc:dur"></attributename="text"type="string"></complextypename="texttype"></elementname="text"type="cc:text"></complextypename="ccsampletype"></elementname="ccsample"type="cc:ccsample"></attributename="right"type="integer"></attributename="bottom"type="integer"></attributename="left"type="integer"></attributename="top"type="integer"></complextypename="boxrecordtype"
</elementname="boxrecord"type="cc:boxrecordtype"></attributename="transparency"type="integer"></attributename="blue"type="integer"></attributename="green"type="integer"></attributename="red"type="integer"></complextypename="text_color_rgbatype"
</elementname="text_color_rgba"type="cc:text_color_rgbatype"></attributename="underline"type="integer"></attributename="italic"type="integer"></attributename="bold"type="integer"></complextypename="facestyletype"
</elementname="facestyle"type="cc:facestyletype"></attributename="fontsize"type="integer"></attributename="fontid"type="integer"></complextypename="fontinfotype"
</elementname="fontinfo"type="cc:fontinfotype"></complextypename="stylerecordtype"
</elementname="stylerecord"type="cc:stylerecordtype"></attributename="font"type="string"></attributename="id"type="integer"></complextypename="fontnametype"
</elementname="fontname"type="cc:fontnametype"></complextypename="fonttabletype"
</elementname="fonttable"type="cc:fonttabletype"></attributename="vertical_justification"type="integer"></attributename="horizontal_justification"type="integer"></attributename="write_text_vertically"type="integer"></complextypename="dispflagstype"
</elementname="dispflags"type="cc:dispflagstype"></attributename="id"type="integer"></complextypename="sdtype"></elementname="sd"type="cc:sdtype"></complextypename="sampledescriptionstype"></elementname="sampledescriptions"type="cc:sampledescriptions"></attributename="width"type="integer"></attributename="height"type="integer"></attributename="ty"type="integer"></attributename="tx"type="integer"></attributename="ctime"type="string"></complextypename="positiontype"
</elementname="position"type="cc:positiontype"></attributename="layer"type="integer"></attributename="duration"type="integer"></attributename="ctime"type="string"></complextypename="timeinfotype"
</elementname="timeinfo"type="cc:timeinfotype"></attributename="value_of_language"type="string"></complextypename="languagetype"></elementname="language"type="cc:languagetype"></complextypename="ccseqheadertype"></elementname="ccseqheader"type="cc:ccseqheadertype"></schemaxmlns="http:></n;i++){
</n;i++){
</n;i++){
</n;i++){
</n;i++){
</n;i++){
</n;i++)
评论