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. VUE项目部署公网ip和端口以及使用域名访问配置

    前提是已经配置好了相应的外网和内网端口的映射 一.公网ip和端口配置 在vue项目启动之前对项目下:项目名/config/index.js 文件进行修改 原来的内容为:(位置在index.js的第16 ...

  2. Spring Security教程(二):自定义数据库查询

    Spring Security教程(二):自定义数据库查询   Spring Security自带的默认数据库存储用户和权限的数据,但是Spring Security默认提供的表结构太过简单了,其实就 ...

  3. ntpdate 设置时区(注意本地时区要设置正确)

    修改timezone sudo cp -a /usr/share/zoneinfo/Etc/GMT-8  /etc/localtime date -R   == 展示当前的timezone ntpda ...

  4. Java后台技术(TDDL)

    从PC客户端开发转项目经理已经有一段时间了,感觉还不错,平安这边的项目经理还需要对外,所以部门其他项目经理经常需要出差去见客户,我专门对内,部门所有的开发和测试每天做什么.接下来做什么我都必须了解,部 ...

  5. python-opencv:读取图片

    代码 import cv2 # 读取一张图片 src = cv2.imread("../images/lena.jpg") # 命名一个窗口 cv2.namedWindow(&qu ...

  6. SprintBoot学习(一)

    Spring Boot是什么? 1. SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 Sprin ...

  7. SQL SERVER用户表信息

    可以使用下面这个语句查看用户表的相关信息 RowCount 记录数 FileGroup 文件组 PartitionScheme 分区结构 IsPartitioned 是否分区 SELECT tbl.n ...

  8. JavaScript的发展史

    一.JavaScript发展历程 1. 诞生 ​ JavaScript因互联网而生,紧跟浏览器的发展而发展. ​ 1990年,欧洲核能研究所(CERN)科学家在互联网(Internet)基础上,发明了 ...

  9. Write-Up-wakanda-1

    关于 下载地址:点我 哔哩哔哩:哔哩哔哩 祖传开头 信息收集 这里用vm虚拟机可能有一点问题,因为官方的是用vbox虚拟机导出的镜像文件.所以这次使用vbox虚拟机. ➜ ~ ip a show de ...

  10. springboot中关于datasource的配置

    datasource spring.dao.exceptiontranslation.enabled: 是否开启PersistenceExceptionTranslationPostProcessor ...