1. 字幕Subtitles
2. 字幕类型
3. 字幕格式
4. 常用文本字幕
5. 字幕编辑器
6. 字幕编辑器比较

1. 字幕Subtitles

https://en.wikipedia.org/wiki/Subtitles
视频字幕编码的方法既可以与视频一起预渲染,也可以作为图形或文本分离,以由接收器渲染和覆盖.

个人也可以使用免费创建的字幕创建软件来创建字幕,例如,

  • Windows: 字幕工作坊 Subtitle_Workshop;
  • Mac/Windows: MovieCaptioner;
  • Linux: 字幕编辑器 Subtitle_Composer;

然后使用诸如 VirtualDubVSFilter 的程序将其硬编码到视频文件中.在许多软件视频播放器中也可以将字幕显示为软字幕.

自动字幕
https://en.wikipedia.org/wiki/Speech-to-text
在YouTube中,自动字幕可以用英语,荷兰语,法语,德语,意大利语,日语,韩语,葡萄牙语,俄语和西班牙语提供.
适用于Linux的语音识别软件
https://en.wikipedia.org/wiki/Speech_recognition_software_for_Linux
语音识别软件列表
https://en.wikipedia.org/wiki/List_of_speech_recognition_software

2. 字幕类型

字幕有两种形式:

  • 开放字幕是“向所有人开放”,不能由观看者关闭;
  • 封闭字幕是为特定的观看者群体设计的,通常可以打开/关闭或由观看者选择-例如图文电视页面,美国隐藏式字幕(608/708),DVB位图字幕,DVD/蓝光字幕.

提取字幕(Extract Subtitle)
$ ffmpeg -i xx.mkv -map 0:s:0 sub1.srt

在分发内容时,字幕可以以以下三种类型之一出现:

  • Hard 硬字幕(hardsubs, 开放式字幕 open subtitles): 字幕文本不可逆地合并在原始视频帧中,因此不需要特殊的设备或软件即可播放.
  • Prerendered 预渲染(closed 封闭): 字幕是单独的视频帧,在播放时会叠加在原始视频流上.DVD和Blu-ray上使用了预渲染的字幕(尽管它们与视频流包含在同一文件中).可以关闭它们或具有多个语言字幕并在它们之间切换,需要播放器必须支持.需要特殊的OCR软件才能更改此类字幕,例如SubRip 存在将此类字幕转换为“软”字幕的功能.
  • Soft 软字幕(softsubs, closed subtitles 可关闭字幕): 是单独的指令,通常要在播放期间显示与时间戳一专门标记的文本.需要播放器的支持.有多种不兼容的字幕文件格式(但通常可以相互转换).软字幕相对容易创建和更改,因此经常用于粉丝订阅.文本渲染质量可能会因播放器而异,但通常要高于预渲染的字幕.同样,某些格式给最终用户带来了文本编码方面的麻烦,特别是如果同时使用不同的语言(例如拉丁和亚洲脚本)时,尤其如此.

3. 字幕格式

https://zh.wikipedia.org/wiki/字幕格式
字幕格式共分为两类:图形数据格式和文本数据格式.

  • 图形数据格式: 这类字幕数据以图片方式呈现,文件体积较大,不易于修改,有时亦称为“硬字幕”.
    • SUB格式: SUB格式的字幕数据由字幕图片文件(.sub文档)和字幕索引文件(.idx文档)组成.一个.sub文档可同时包含多个语言的字幕,由.idx进行调用.常见于DVD-VIDEO,但在DVD中,这两个文件被集成到VOB内,需要通过软件分离VOB来获取字幕文件.
    • SST格式: SST(Sonic Scenarist)
    • SON格式: SON(Spruce DVDMaestro)
  • 文本数据格式: 这类字幕数据以文本格式呈现,文件体积较小,可直接用文本编辑器进行修改,有时亦称为“软字幕”.
    • SRT格式: SRT(Subripper)是最简单的文本字幕格式,扩展名为.srt,其组成为:一行字幕序号,一行时间代码,一行字幕数据
    • SSA,ASS格式: SSA(Sub Station Alpha)是为了解决SRT过于简单的字幕功能而开发的高级字幕格式,其扩展名为.SSA及更高级的.ASS.
    • SMI格式: SMI(Sami),其扩展名为.smi,现已能被部分掌机播放器所支持的字幕格式.
    • PSB格式: PSB(Power Divx)
    • PJS格式: PJS(Phoenix japanimation)
    • STL格式: STL(Spruce subtittle flie)
    • TTS格式: TTS(Turbo tittle)
    • VSF格式: VSF(Viplay)
    • ZEG格式: ZEG(Zero G)

字幕格式: https://en.wikipedia.org/wiki/Subtitles#Subtitle_formats
对于软件视频播放器: https://en.wikipedia.org/wiki/Subtitles#For_software_video_players
对于媒体: https://en.wikipedia.org/wiki/Subtitles#For_media

4. 常用文本字幕

SRT格式: SRT(Subripper)是最简单的文本字幕格式,扩展名为.srt,其组成为:一行字幕序号,一行时间代码,一行字幕数据,例如:

35
00:06:07,650 --> 00:06:09,920
{\r译文字幕}我有点饿了
{\r原文字幕}I'm a little hungry.

SSA,ASS格式: SSA(Sub Station Alpha)是为了解决SRT过于简单的字幕功能而开发的高级字幕格式,其扩展名为.SSA及更高级的.ASS.
https://zh.wikipedia.org/wiki/SubStation_Alpha

  • SSA:比传统字幕(如SRT)更加强大先进的字幕文件格式.广受欢迎但已停止开发的字幕编辑制作工具.可设定字幕的大小和位置,可实现动态文本和水印等复杂的功能.
  • ASS:比SSA更先进的字幕脚本格式.基于SSA 4.00+编码构建.在SSA编写风格的基础上增添更多的效果和指令,比普通的SSA更为规范.

该字幕格式常被字幕组所应用,分为内挂字幕、外挂字幕和内嵌字幕三种形式.
内挂字幕一般指字幕文件与视频一同封装在MKV文件中,播放时需经过VSFilter渲染.
外挂字幕指字幕文件以单独形式存在,播放时经VSFilter渲染到视频上.内、外挂字幕又称软字幕,是可以提取、取出和查看源代码的.
而内嵌字幕则是指字幕被以图形方式硬编码到视频中,所以播放时不需VSFilter等渲染,一般来说,该过程不可逆.
https://zh.wikipedia.org/wiki/媒体播放器列表#字幕支持

5. 字幕编辑器

https://en.wikipedia.org/wiki/Subtitle_editor
相关软件
SubRip-免费。不是编辑器,而是用于通过光学字符识别从VOB或硬字幕视频文件中提取字幕的字幕文件。
Avidemux-免费。Avidemux是一种视频编辑软件,可用于提取字幕,例如SubRip。
VobSub / VSFilter / DirectVobSub-不是编辑器,而是Windows附加组件(DirectX过滤器),它在视频播放期间显示字幕。

6. 字幕编辑器比较

https://en.wikipedia.org/wiki/Comparison_of_subtitle_editors

Name License Platform 音频波形 支持格式 额外的信息
Aegisub GPL (code:ISC/BSD3c) 跨平台 Yes SSA/ASS, MicroDVD, .srt (Full support)
AdobeEncore, EBU STL (Write Only) JACOsub (Read Only)
对RTL语言的支持有限。它主要用于创建ASS字幕。使用libass,使ASS效果正确显示在内部媒体播放器中。
Amara GPL Affero v3/commercial 跨平台 ?   带有字幕编辑器和工作流工具的云平台,用于协作字幕和字幕,包括对机器生成的字幕进行更正。附加组件包括自动语音识别。
fiveLoadSub GPLv3 跨平台 Yes srt/fls input,fls,srt,sbv,xml for premiere/fcp7/fcpx output 纯HTML + JS,直接在澳门的浏览器上运行
Subtitle Workshop GPLv3 跨平台 No 65~  
Subtitle Composer GPLv2 Linux, Win Yes AQTitle, DVB, DirectVobSub, HDMV-PGS, JACOsub, MicroDVD, MPsub, OGM, Phoenix (PJS), QuickTime, RealText, SAMI, SubRip, SSA/ASS, SubViewer, TMPlayer, VPlayer, VobSub, XSUB 使用Qt5和KF5 用C ++ 编写。支持OCR,语音识别,翻译,文本样式,脚本。集成的视频播放器和交互式波形。
Gnome Subtitles GPL Linux ?    
Subtitle Editor GPLv3 Linux Yes    
Subtitle Edit GPL Windows Yes 200+ 翻译模式,拼写检查,使用.NET Framework
CaptionHub ?商业 跨平台 Yes VTT, TTML, SRT, SCC, EBU-STL, SMI, CSV and others 用于协作字幕和字幕的云平台。它结合了自动语音识别功能和针对语言学家和验证者的简单,可管理的工作流程。
SubtitleNEXT $549-4599 跨平台 Yes Many 广播和创作工具
Online Captions & Subtitles Toolkit $10+/Month 跨平台 Yes All professional formats 在线创建字幕。适用于专业和非专业用户的工具。
MovieCaptioner $99 OS X, Win ? Many MovCaptioner
CaptionMaker/MacCaption $1720 OS X, Win Interactive Many  

Subtitles的更多相关文章

  1. Html5-Video标签以及字幕subtitles和captions的区别

    <video id="mainvideo" src="video.mp4" type="video/mp4"controls auto ...

  2. video.js

    1.github地址 2.常用API: class : video-js: video-js应用视频所需的风格.js功能,比如全屏和字幕. vjs-default-skin: vjs-default- ...

  3. video.js--很赞的H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  4. 05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 1.引入 概述 音频文件或视频文件都可以看做是一个容器文 ...

  5. ZFPlayer 源码解读

    源码下载地址:https://github.com/renzifeng/ZFPlayer 之前自己实现过一个模仿百思不得姐的demo https://github.com/agelessman/FFm ...

  6. FFmpeg数据结构:AVPacket解析

    本文主要从以下几个方面对AVPacket做解析: AVPacket在FFmpeg中的作用 字段说明 AVPacket中的内存管理 AVPacket相关函数的说明 结合AVPacket队列说明下AVPa ...

  7. video.js-H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  8. 10个最常见的 HTML5 面试题及答案

    这是选择了10个 HTML5 面试问题并给出了答案.这是 Web 开发人员最常见的面试问题,相信你掌握了这些重要的面试问题后一定会觉得你的理解提高了.一起来看看吧. 您可能感兴趣的相关文章 Web 前 ...

  9. 论HTML5 Audio 标签歌词同步的实现

    HTML5草案里面其实有原生的字幕标签(<track> Tag)的,但使用的是vtt格式的文件,非常规的字幕(.sub, .srt)或歌词文件(.lrc). 用法如下(代码来自W3Scho ...

随机推荐

  1. 「JSOI2013」侦探jyy

    「JSOI2013」侦探jyy 传送门 个人感觉我写的复杂度不够优秀啊,但是好像没有别的办法了... 我们枚举每个点,考虑这个点能不能不发生. 首先我们从这个点开始,在反图上面 \(\text{BFS ...

  2. 域名和URL各部分组成

    什么是域名? 域名,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传 输时标识计算机的电子方位. IP地址是Internet主机的作为路由寻址用的数字型标识,人 ...

  3. linu后台执行py文件和关闭的后台py文件

    后台执行py nohup python xxx.py 关闭后台执行py 查看进程pid ps -aux|grep main.py 根据pid关闭关闭进程 kill -9 (pid)

  4. laravel qq邮件配置

  5. FastDFS上传文件访问url地址直接下载

    fdfs 存储节点storage安装nginx,修改nginx配置文件 location ~/group[1-9]/M00 {  if ( $query_string ~* ^(.*)paramete ...

  6. POJ1321棋盘问题(暴搜)

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...

  7. UNICODE UTF编码方式解析

    先明确几个概念 基础概念部分 1.字符编码方式CEF(Character Encoding Form) 对符号进行编码,便于处理与显示 常用的编码方式有 GB2312(汉字国标码 2字节) ASCII ...

  8. mysqld: Can't change dir to 'D:\TONG\mysql-5.7.19-winx64\data\' (Errcode: 2 - No such file or directory)

    mysqld: Can't change dir to 'D:\TONG\mysql-5.7.19-winx64\data\' (Errcode: 2 - No such file or direct ...

  9. 【摘录自MDN】预定义函数

    JavaScript语言有好些个顶级的内建函数: eval() eval()方法会对一串字符串形式的JavaScript代码字符求值. uneval()  uneval()方法创建的一个Object的 ...

  10. word2vec 构建中文词向量

    词向量作为文本的基本结构——词的模型,以其优越的性能,受到自然语言处理领域研究人员的青睐.良好的词向量可以达到语义相近的词在词向量空间里聚集在一起,这对后续的文本分类,文本聚类等等操作提供了便利,本文 ...