




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
帧速率可变型片源的内嵌by 雷鸣 2007-01-25(本文中调整时间轴的程序部分代码受MeteorRain指导而经过优化)看完前面的文章,我想大家应该也会做一些简单的字幕了吧?可能在这个过程中,遇到这样的问题:从MKV里面解出来的AVI视频流怎么播放一下子快一下子慢?或者这个AVI的帧速率怎么这么快?这个时候,可能就是遇到帧速率可变的片源了。在前面一节制作DVDRip的文章中讲到,有的DVD片可能中间既有24fps又有30fps的部分,当时是说以大局为重统一使用24fps。但是,有些追求完美的人不能够忍受把30fps的部分做成24fps,于是发明了各种各样的方法。其中以AVI做成120fps和MKV做成VFR(VFR即可变帧速率)最多。由于AVI120fps法出现比较早,没有MKV做VFR来得完善,所以本篇介绍的方法,最后结果都是得到MKV文件(也就是做成VFR的MKV)。经过前面几篇的操作,我想大家应该对这些东西渐渐熟悉了吧,那么本篇主要介绍一些理论知识,操作就由大家自己去完成了。先讲讲120fps的AVI。如果在24fps的AVI的每一帧(就是每一张图)后面加上4张一模一样的图,然后再用5倍速度播放,得到的画面和原来完全一致,但是播放速度变成了120张图每秒。同样地,在30fps的AVI的每一帧后面加上3张一模一样的图,然后用4倍速度播放,得到的画面也是和原来完全一样的,播放速度也变成了120fps。那么,分别对24fps的AVI和30fps的AVI作此处理,然后合并起来,再统一用120fps的速度播放,就实现了30fps的部分和24fps的部分混合在同一个文件中了(因为AVI播放过程中不能变速)。实际上制作的时候,并不是把相同的图象这么加进去,而是直接加入没有人和信息的帧,这些帧不会被播放出来(因为本身就没有内容),但是却占了时间。用VDM打开这个AVI时,VDM会把这些没有内容的帧当作和之前有内容的帧一样的帧来处理,结果是压缩的时候,编码器必须编码几倍的画面,不仅对于速度还是对于空间,都是一种浪费。这样说可能还是有点复杂,那么举个例子来说明。有一个AVI文件,总播放时间是三分之一秒,速度是30fps,所以总共含有的帧数就是300.3333310帧。把他们排列出来:0123456789如果在每一帧后面加上3个空帧(用D表示),那么就会变成0DDD1DDD2DDD3DDD4DDD5DDD6DDD7DDD8DDD9DDD数一数,总共有40帧。如果用120fps的速度来播放,那么它的总时间就是40120=0.33333(秒),可是有效帧的数量还是10。这样算来,完全没有变化。但是这种片送去压缩的时候,VDM会把D也当作有东西的帧来处理,那么压缩好以后有效帧的数量就会变成40,工作量为4倍。播放的时候,本来只要播放10帧,现在却要播放40帧,可能有的电脑就要开始崩溃了。确实有专门的软件可以用来删除AVI文件中的D帧,但是就算去除了D帧,片子也是不能拿来内嵌。前面说过AVI不支持多种帧速率同时出现在一个文件中,所以删除D帧以后,对于这既有24fps又有30fps的片,无论用什么速度播放,影片的速度都不会正常的。MKV由于自身的特性,本身就是支持多种帧速率在同一个文件中出现。但是用过VDM后发现,VDM根本就不能打开MKV(新版本的也是不能支持VFR),如果把MKV里面的AVI视频解出来,又会遇到相同的问题了:一个AVI文件只能有一种速度。这些理论知道了,方法也就很简单:因为MKV里面解出来的AVI或去除D帧的AVI按照一个一定的速度播放,速度会忽快忽慢。那么,只要把时间轴也调整成忽快忽慢的,就可以正常内嵌了。内嵌完毕,再把速度调回来,不就完了吗?首先是AVI。如何判断一个AVI文件是不是120fps的呢?实际上很简单,VDM就能办到。用VDM打开要内嵌的AVI,选择File Information选项,然后一个窗口弹出来,看看是不是写着119.88fps。由于MKV本身支持VFR的特性,所以VFR的MKV并没有像119.88fps等标志可供识别。MKVExtract这个工具之前用过了吧?前面用它来解MKV里面的声音、图象等。现在用它来解Timecodes v2(Timecodes v2:一种文件,里面详细记录了每一帧什么时候播放)。把timecodes拿来分析一下,就可以很容易知道这个MKV是不是VFR的了。打开命令提示符,进入要存放timecodes的文件夹(前面提到过,输入cd /d 然后拖入文件夹并回车),然后拖入mkvextract的程序文件,敲空格,输入timecodes_v2再空格,拖入MKV文件,空格,打入 1(冒号) 然后输入要保存timecodes的文件名(扩展名为txt),输入好以后大概象这样的:按一下回车,timecodes文件就解出来了。然后对它进行分析。在附带工具里面,可以在tctool文件夹找到一个名为tcv2anal的程序,就是专门用来分析Timecodes文件的工具。双击这个程序,选择刚才解出来的timecodes文件,结论就会出现。比如例子中解出来的那个timecodes,就会弹出如下对话框:结论很明显。但是对于非VFR的片源,如果AVI解出来以后发现播放时间改变了,那么还要进行FPS调整。调整方法可以参考下面的步骤,但是注意,要输入的数字是最接近目标FPS的整数乘上1000然后加1,比如目标是29.97那么就用30*1000+1=30001。调整好以后,就当成普通的AVI处理即可。对于VFR的片源,还有一件事情要做,就是把片源的播放速度调整到一个自己好处理的值,比如23.976就不错。因为封装进MKV,只要有timecodes在,播放速度就不会出问题。但是现在解出来了,就要好好思考播放速度的问题了。那么就把解出来的AVI播放速度改为23.976。在附带工具中可以找到一个叫做avifrate的,就是用来快速更改播放速度的。但是,这个工具有一点非常不好,它对于中文的Windows支持甚烂。一个简单有效的方法,把这个工具的文件夹复制到某个分区的根目录中再打开,例如复制到C:下。启动avifrate,点击File菜单的Open,选择刚才解出来的AVI文件打开,然后在下图所示的方框中输入24001(为什么不是24000呢?Avifrate有个很奇怪的问题,你按一下鼠标它就给你减掉1原因不明),然后点击右边的Apply按钮。会弹出一个对话框让你确认一下。点击对话框中左边那个按钮,播放速度就更改完成了。刚才解出来的Timecodes要留住,一会儿校准时间轴要用到。那么如果片源是120fps的AVI,那么该怎么办呢?这里要用到一款工具,是SSWROOM写的AVIRead,用于处理120fps的AVI很不错。附带的工具中有。(有一种情况,就是从MKV里面解出来的AVI是120fps的,这个时候也按照120fpsAVI的片源来处理,比如动漫花园的AIR)打开AviRead,然后点击菜单的Window-Open File,打开120fps的AVI文件。因为音频视频分开处理,所以先去除音频流,点击View菜单的Audio Streams,会弹出一个音频流的窗口。分别选中里面的每一个点击右边的Remove按钮去除,完成后点下面的OK按钮,完成音频流的去除。然后导出帧列表。帧列表在这里的用途就相当于MKV里面解出来的Timecodes,但是AVIRead不支持直接从AVI中导出Timecodes。没关系,附带的工具中有一个工具就是专门用于把导出来的帧列表转换成Timecodes的工具(前面说过了,调整时间轴的时候要用到,还有最后封装成MKV的时候也要用到)。点击File菜单的Export Frame List按钮,会弹出保存文件的窗口。保存完帧列表文件以后,把它转换成Timecodes格式。在附带工具的tctool文件夹下面找到fltotc2,启动,选择刚才导出来的帧列表,帧列表就会被转换成timecodes格式,保存在同一个文件夹下(到保存帧列表的文件夹中看看多了什么文件就知道了)。到现在还没对AVI进行处理呢。点击Edit菜单的Remove Drop Frames,会弹出一个窗口,直接点击窗口中的OK,所有空帧就会被删除。然后像对待MKV解出来的AVI那样调整播放速度到23.976,不过AVIRead中有这个功能,就直接在AviRead中完成。点击Edit菜单的Change Frame Rate,会弹出一个窗口,在图片中红色部分的方框里面填上24000,点击OK,操作完成,把AVI另存为(切记不要覆盖片源),选择File菜单的Save As,保存处理过的AVI文件。做完以上步骤以后,无论是VFR的MKV片源还是120fps的AVI的片源,都可以获得一个Timecodes文件和一个播放起来忽快忽慢的AVI文件。这个AVI文件准备拿来嵌字幕。但是时间轴还没有调整,直接往AVI里面嵌字幕的话时间轴肯定不准。那么现在,就把时间轴调整成和片源一样忽快忽慢。用SubCreator做完字幕以后,先别急着导出。保存成SubCreator的专有格式以后,拿这个文件去调整,调整完以后再导出成SSA,然后内嵌。方法是,把之前得到的Timecodes文件和SubCreator的专有格式文件放在同一个文件夹下,然后两个都选中,鼠标把其中的那个SubCreator专有格式文件拖动到附带工具scfadjust的图标上面,调整后的时间轴就会出现在同一个文件夹下。这里有2点要注意的。1、SubCreator设置中,要把时间信息设置成第一个选项(见时间轴入门)。2、在拖动文件的时候,务必记住选中2个文件后,鼠标拖动的是SubCreator的那个文件而不是Timecodes文件。虽然Windows平时复制文件等操作中选中2个文件拖动哪个效果是不一样的,但是这里不行。具体操作见图:拖动完毕以后,会生成一个调整过的SubCreator文件,文件名中含有“out”字样的。用SubCreator导出成SSA。记住,这个时候的时间轴已经对不上原来的视频了,但是对的上预先处理过的视频(就是前面从MKV里面解出来并调整FPS的AVI或者用AviRead处理过的AVI)。用前面介绍过的办法把字幕嵌到预先处理过的AVI中。(注意,计算比特率的时候填写的影片时间不是原先的影片时间,而是预先处理过的AVI的时间,和原影片时间可能是不一样的)但是这样内嵌出来的AVI文件,虽然时间轴和图象对的上,但是图象和声音对不上,图象还是忽快忽慢的。现在就是要把这个AVI文件和Timecodes一起封装到MKV文件中,播放起来就一切正常了。这些做完以后,有3个文件是最后要用的。一个是最后内嵌好以后的视频,一个是前面解出来的Timecodes,还有一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市某中学2024-2025学年七年级下学期4月期中英语试题(解析版)
- 2025年度餐饮行业实习生就业协议
- 2025年新能源汽车驱动电机供应合同书
- 2025年度外墙保温施工项目管理与服务合同模板
- 2025版现代简约风格室内装修合同范本
- 2025版电子商务平台数据统计分析服务合同
- 2025年度租赁式铲车租赁与租赁期限调整合同
- 2025年度办公室租赁合同模板(含家具配置)
- 2025年度离婚协议及财产分割与共同债务处理合同范本
- 2025年医药健康产业执业药师培训聘用合同范本
- 2025-2030电动船舶电池系统安全标准构建与产业链配套能力报告
- 数字时代群体冲突演变-洞察及研究
- 2025秋新部编版一年级上册语文教学计划+教学进度表
- 2025年公安辅警招聘知识考试题(附答案)
- (标准)便利店转让合同协议书带烟证
- 廉洁文化知识试题(含答案)
- 2025《地方资产管理公司监督管理暂行办法》解读课件
- 2025年中国PC工业计算机(工控机)数据监测研究报告
- 儿童学针灸启蒙课件
- 中学生健康生活方式指南
- 办公室设备领用管理制度
评论
0/150
提交评论