用VirtualDub进行简单的视频剪辑和字幕添加

作者 astronomer, 2005 十月 02, 15:34:27

« 上一篇主题 - 下一篇主题 »

astronomer

由于系统自动过滤了一些字符,使得原来的文章的代码有错误,在这里向大家道歉。 现已修正。

用VirtualDub进行简单的视频剪辑和字幕添加


首先请到VirtualDubd的主页下载VirtualDub和它的字幕插件SubTitler,然后把字幕插件的Subtitler.vdf释放到plugins目录下。如果想了解关于字幕的制作,请用VirtualDub加载字幕插件包内的gray.avi和demo.ssa,或者用文本编辑器打开demo.ssa以了解编写字幕的语法。

1.视频剪切
假设我们已经准备好要编辑的视频,打开VirtualDub-->File-->Open video file或者用热键Ctrl+O来选择我们的视频文件。正常打开的话,我们应该在VirtualDub的界面上应该能看到影象,如下图:

从播放条上,我们可以拉动进行预览,也可以用于选择关键祯,从下面的数字,我们也可以看到这个视频的祯数,祯数越大,视频的体积也就越大。

停止按钮也就不用说了,是播放输入的视频,是播放输出的视频,用于预览。当我们要剪辑视频时,比如我们我们现在不想要一段视频,先把播放条拉动到你不想要的那段视频的开始处,按键,再把播放条拉动到你不想要的这段视频的结尾处,按键,这时,播放条就改变了,我们不要的那部分的颜色变了,如下图:

现在我们按Delete键就可以把那段视频删除掉。这样,一段视频就剪辑好了。如果这样剪辑出来的视频已经是你想要输出的最终视频,点击File-->Save as AVI或者用热键F7进行保存。但这样保存的视频的体积将会很大!如需要压缩,请参看本文的视频压缩部分。如果这样剪辑出来的视频只是你的最终输出视频的一个片段,点击File-->Save segmented AVI...进行保存。

2.视频合并
通过上面的步骤,我们已经得到了我们想要的全部的视频片段,现在我们就不它们合并起来,组成一个完整的视频。首先你要计划好所有视频片段的顺序。打开第一个视频,我们会看到画面和祯数,点击File-->Append AVI segmented...选择我们的第二个视频片段,成功添加后,我们可以发现播放条的祯数增加了。用同样的方法,把所有的视频片段添加进来。好了后,点击按钮就可以预览我们的视频了。如果发现不好的地方,可以用上面的方法把它剪掉。这里要注意一点,我们所添加的视频一定要是同一种编码方式的视频。也就是说,用DivX ;-) MPEG-4 Fast-Motion编码过的视频不能和用Microsoft Windows Medis Video 9编码过的视频加在一起。当出现这样的错误时,会有这样的提示出现:

所以,请确保你所合并的视频是同一编码格式的。

3.字幕添加
通过1,2两个步骤,我们已经有是一个完整的视频素材了,但添加一些字幕来说明一下将会润色不少。
VirtualDub的字幕插件使用的是ssa格式的字幕文件,这里只是做最简单的介绍,如果希望了解更详细的信息,请到网上搜索相关资料。VirtualDub的字幕插件所附带的demo.ssa就是很好的学习资料,里面包括了VirtualDub所支持的ssa脚本语法格式(VirtualDub只支持一部分的ssa脚本语法)。当我们用文本编辑器打开一个ssa字幕文件时,我们可以看到最上方的内容为:
引用
[Script Info]
Title: TombRaider
Original Script: MaxChen
ScriptType: v4.00
Collisions: Normal
PlayResY: 400
PlayResX: 300
PlayDepth: 0
其中title和original可以随便写,而PlayResY和PlayResX就是字幕出现的范围,请根据你的视频的大小来确定。其他的不用改变
下一部分是:
引用
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
;Style: Foo,MS Gothic,72,65535,65280,65535,0,0,-1,1,2,4,2,30,30,30,0,134
Style: MainB,Arial,14,65535,65280,65535,0,0,-1,1,2,4,1,16,16,16,0,134
Style: MainT,Arial,14,65535,65280,65535,0,0,0,1,2,4,5,16,16,16,0,134
Style: Timer,Arial,14,65535,65280,65535,0,0,-1,1,2,4,5,16,16,40,0,134
Style: B0S0K,Arial,14,&HE0E0E0,65280,65535,&H000000,0,-1,1,0,0,5,16,16,40,0,134
Style: B2S2R,Arial,14,&HE0E0E0,65280,65535,&H004080,0,-1,1,2,2,5,16,16,40,0,134
Style: B2S6G,Arial,14,&HE0E0E0,65280,65535,&H408000,0,-1,1,2,6,5,16,16,40,0,134
Style: B4S4B,Arial,14,&HE0E0E0,65280,65535,&H804000,0,-1,1,4,4,5,16,6,6,0,134
Style: Karaoke,Arial,14,&H40FFFF,&HFF4040,65535,0,0,0,1,2,4,5,16,16,16,0,134
Style: ShiftJIS,MS Gothic,20,&HE0E0E0,65280,65535,0,0,0,1,2,4,5,16,16,16,0,134
Style: Default,华文彩云,18,&Hff0000,&Hff8080,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,134
这部分是定义字体样式的,我们可以根据自己的需要来自己定义。
各段解释:
Name. 字体名称
Fontname.                          Windows字体名 //注意文件用Uniquote存盘,否则中文字体名无效
Fontsize.                          字体大小
PrimaryColour.                     主要色。(蓝-绿-红,用工具配色如ps,注意RGB次序,十六进制用&H开头)
SecondaryColour.                   次要色。//卡拉OK效果时先显示
OutlineColor (TertiaryColour).     外框色。
BackColour.                        背景色。
Bold.                              粗体,-1为真,0为假。
Italic.                            斜体,-1为真,0为假。
Underline.                         下划线,-1为真,0为假。
Strikeout.                         删除线,-1为真,0为假。
ScaleX.                            横向缩放(百分比)。
ScaleY.                            纵向缩放(百分比)。
Spacing.                           间距(象素)。
Angle.                             角度(度)。
BorderStyle.                       边框类型,1为轮廓线加阴影,3不透明框?
Outline.                           轮廓线线宽(取值 0-4)。
Shadow.                            阴影深度(取值0-4)。
Alignment.                         对齐方式。从上到下,从左到右。
MarginL.                           左边距。
MarginR.                           右边距。
MarginV.                           垂直边距,由Alignment决定参照。
AlphaLevel.                        透明度(取值0-255)。
Encoding.                          语言代码,134为简体,136为繁体,0为英语。
上面的是我修改自demo.ssa的,大家可以直接拿去用,如何定义请参考其他资料。但值得注意的一个是最后一个Encoding,这个定义字体的编码。
下一部分是:
引用
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
这个我们不用管。
下面的部分就是要我们自己编辑的要显示在我们的视频里的字幕了,下面介绍我们用到的控制代码:
所有代码加{}表示,\\n,\\N,\\h除外
所有代码由\\开头
\\n         空格,宽度超出范围后自动换行
\\N         硬回车
\\h         硬空格
\\b    粗体 0关闭,1开启
\\i    斜体
\\u    下划线
\\fe        改变编码
\\c&H&      改变颜色---------十六进制00-ff,蓝绿红
\\r  可以改变成其它的字体
\\fs        改变字体大小
\\a  设置对齐方式
左   中   右
-- + -- + --
上│ 5   6    7
+
中│ 9   10   11
+
下│ 1   2    3
例子:左上角对齐的代码为:\\a5
   中间对齐的代码为:\\a10
下面进行见解,代码如下:
引用
Dialogue: Marked=0,0:00:05.00,0:10:00.00,B4S4B,,0000,0000,0000,!Effect,{\\a7\\fs20}古墓丽影关卡空间
这个代码的意思就是把"古墓丽影关卡空间"这几个字在时间轴5-10秒这个时间段内以B4S4B的样式20的大小在右上角显示。其中样式可以是你在[V4 Styles]段定义的任何一个样式。
引用
Dialogue: Marked=0,0:09:52.80,0:10:00.00,MainT,,0000,0000,0000,!Effect,{\\a10\\fs30}谢谢观看\\N古墓丽影关卡空间\\Nhttp://maxchen.512j.com
这个代码的意思是在时间轴的9分52.8秒到10分这段时间内以MainT的样式30的大小在屏幕中间分三行,第一行显示"谢谢观看",第二行显示"古墓丽影关卡空间",第三行显示"http://maxchen.512j.com"。
制作可移动的banner,命令格式:
Banner;delay[;lefttoright;fadeawaywidth]
参数解释:delay为滚动速度,取值1-100,越小越快。lefttoright取值0(右移到左)或1(左移到右)。fadeawaywidth为渐隐褪色宽度。
例子
引用
Dialogue: Marked=0,0:02:02.00,0:02:17.00,MainT,,0000,0000,0000,Banner;20;1;10,字幕-速度20-左移到右-渐隐褪色宽度10.
制作上下移动的字幕,命令格式:
Scroll up;y1;y2;delay[;fadeawayheight]
参数解释:y1和y2定义滚动区域(上边界和下边界),满屏取0。delay为滚动速度,取值1-100,越小越快。fadeawayheight为渐隐褪色宽度。
例子:
引用
Dialogue: Marked=0,0:02:02.00,0:02:17.00,MainT,,0000,0000,0000,Scroll up;20;250;10;50,字幕-从Y250移到Y20-速度10-渐隐褪色宽度50。
好了,ssa的脚本就将到这里,我是个门外汉,如果有什么错漏,请大家批评指正。
有了基础知识后,我们就可以打VirtualDub来为我们的视频来添加字幕了。点击Video-->Filters...-->Add...就可以在Add Filters窗口里查看Subtitler是不是已经成功加载了。如果没有看到subtitler,请检查此插件是否已经正确安装。双击subtitler,我们会看到:

先新建一个ssa字幕文件,内容就是[Script Info],[V4 Styles]和[Events]这三个段,选择我们建好的ssa字幕文件,点击Show Preview就可以看到视频的预览了。这时,我们就可以拉动播放条来预览,当我们到了一个我们想加字模的地方时,先在播放条下方查看此祯的时间(如0:01:12.50),然后确定此字幕的持续时间(如1秒),字体样式,对齐方式和字体大小,我们就可以在ssa文件中加入
引用
Dialogue: Marked=0,0:01:12.50,0:01:13.50,B4S4B,,0000,0000,0000,!Effect,{\\a7\\fs20}写上你想要写的内容
然后就是重复这样的步骤,直到你把所有你想加的字幕都加在你想要的位置和时间上为止。最后,我们保存ssa文件,重新加载并打开预览窗口就可以看到我们加的字幕了。当一切都好了后,就点击OK按钮。成功的话,就可以在Filters窗口里看到已经加载了ssa字幕的信息,点击OK完成字幕的加载。

4.视频的输出
当所有要编辑的东西都编辑好后,就可以输出了。如果你现在就直接点击File-->Save sa AVI或者按F7进行输出的话, 出来的视频将很清晰但体积也非常的大!!我们点击Video-->Full processing mode,在点击Video-->Compression...或者热键Ctrl+P就会出现Select Video
Compression对话框,拉动滚动条,选择你想要的编码格式,一般用DivX ;-) MPEG-4 Fast-Motion,DivX ;-) MPEG-4 Low-Motion,DivX Pro和Mirosoft Windows Media Video 9。当选择了一种编码格式后,点击右边的Configure还可以进行详细的设置(有关这方面的资料,请查找其他的资料),一般用默认值就可以了。设置好后,点击OK,就回到了主界面,点击File-->Save sa AVI就可以进行最后的输出了。







古墓之神

astronomer 大哥还真强啊~~~
【动作】 古墓之神 鼓掌喝采

rainbow


无情却有情

置身古墓关卡,常常顿悟"东边日出西边雨,道是无晴却有晴"

handsome1999

太复杂了,前面看懂了,后面的字幕制做没有看懂。