1 关于DVD格式
-
Digital Versatile Disc
-
DVD五种格式
-
DVD-VIDEO: 可达17G
-
DVD-ROM:
-
DVD-R: 4.7G
-
DVD-RAM: 可以作为虚拟硬盘
-
DVD-AUDIO: 比CD的音频品质好一倍
-
DVD区域码
-
DVD联盟将全世界依地理区域分为1-6区,而每一部DVD播放机及每一片DVD都会被锁定只能在某一区中播放(依产品贩卖的地区锁上相对应的区域码)。
-
影片的锁码必须配合播放机的锁码(第1区的影片配合第1区的播放机,第2区的影片配合第2区的播放机.)你才能顺利的观赏影片!
-
后来产的DVD播放机一般可以播放全区域的DVD
-
DVD版权保护
-
CSS(Content Scrambling System, 内容乱码系统)
-
防类比设备翻录
-
区码限制
2 关于VOB格式
-
vob文件用来保存所有MPEG-2格式的音频和视频数据,这些数据不仅包含影片本身,而且还有供菜单和按钮用的画面以及多种字幕的子画面流。
-
.ifo文件用于控制VOB文件的播放,在这个文件中可以找到如何控制.vob文件中数据播放的信息。
-
有时候.ifo文件保存了一份副本,即同名的.bup文件。
-
每个DVD光盘中都有视频管理器(VMG),它存放在VIDEOTS.ifo文件中,保存了光盘的全局信息,如光盘可以在哪个地区播放等。
-
光盘还将用于显示菜单的数据保存在VIDEOTS.vob文件中,当光盘插入到光驱中时播放器会首先显示这个菜单,大多数菜单可让观众指定场景、选择语言字幕等。
3 关于TS流和PS流
3.1 TS流
-
DVD节目中的MPEG2格式,TS的全称则是Transport Stream。
-
MPEG-TS主要应用于实时传送的节目,比如实时广播的电视节目。
-
TS码流由于采用了固定长度的包结构,当传输误 码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。
-
信道环境较为恶劣,传输误码较高时,一般采用TS码流
-
TS流(DVB-T,DMB-TH等)如果断了码流,后面的随时可以再开始解码怎么看都行。
3.2 PS流
-
DVD节目中的MPEG2格式,是MPEG2-PS,全称是Program Stream。
-
PS包由于长度是变化的,一旦某一 PS包的同步信息丢失,接收机无法确定下一包的同步位置,就会造成失步,导致严重的信息丢失。
-
在信道环境较好,传输误码较低时,一般采用PS码流 如DVD等等。
-
ps流(主要用在DVD上)如是中间丢了一断码流,后面的都没法播了。
4 关于DVD格式转换
4.1 几个概念
-
angle: 高级的DVD支持同一段场景的不同视角(angle), 一般的DVD只有一个视角
-
Title Set: 基本上一个Title Set的视频为一组内容, 有的DVD会有好几个Title Set, 第一个Title Set往往是最长的, 包含了主体影片的内容; 其余的Title Set往往是一些影片花絮啥的.
-
chapter: 应该是DVD字幕上用于选择章节的东西.
5 CLI工具, 自动化(脚本形式)的抓取转换工具
5.1 基本工具
-
lsdvd, 读取dvd信息, 可以得到title set, duration信息等等
-
dvdbackup, rip video DVDs from the command line, 同样可以读取dvd信息, 有时需要libdvdcss的支持, ubuntu上的安装方法可以参考Ubuntu Wiki.
-
h264enc, 交互式的抓取工具, bash脚本, 整个脚本将近一万行(支持非常多的配置选项)
-
ffmpeg and mencoder, linux下两款主要的音频和视频格式转换工具, 绝大多数的GUI工具都是这两个命令行工具的封装. 很多Windows播放器底层也是这两个. ffmpeg还有个有趣的Hall of Shame
-
mplayer and vlc, linux下两款非常有名的播放器, 功能非常qiangda, 支持framebuffer和ascii lib的输出, 很有趣.
5.2 土法炼钢提取vob视频文件并合成一整个视频文件
-
原理: vob文件可以直接拼接(cat file1.vob file2.vob >> new_file.vob), 拼接出来的vob文件可以正常播放(测试了两个拼接的文件和拼接后转换的f4v文件, 网页和本地播放器均正常播放到结尾)
-
思路:
-
先将整个的DVD内容拷贝到硬盘(比较节省光驱资源)
-
进入DVD视频文件目录(一般为VIDEO_TS)
-
用lsdvd或者dvdbackup工具找出duration最长的title set, 提取出这个title set里面的vob文件
-
cat命令拼接这些vob成一个新的vob文件
-
利用ffmpeg转换脚本转换成新的格式
5.3 h264enc交互式脚本合并
-
原理: 给予mencoder的转换工具, 可以自动化的设置码率, 滤镜, crop参数, 提取vob文件合并到一个文件中(输出格式可以指定)
-
思路:
-
多做实验, 将每次做实验的结果进行对比, 选出最好的一组参数写成配置文件, 调用h264enc做自动化的处理
6 Todo list
-
深入研究下mencoder的使用方法, 以及mencoder和ffmpeg的不同和关联
-
深入了解分析下h264enc工具的脚本, 了解下h264enc的配置文件