Thursday, August 17, 2006

在PR中导入RM文件

今天学会了这招,相当有用的一招,记得当初做<大象之泪>的时候.为了一段rm格式视频中的声音,足足花了大约1个小时把rm格式转化成avi,其中还不包括找到一个好用的转换工具
把这招先整理下来先^_^
(一)问题关注
Premiere导入RM/RMVB文件可利用Avisynth 的 Frameserving 是功能及其对Premiere的插件,即可实现导入RM/RMVB。 AviSynth是AVI SYNTHesizer的缩写,意思就是AVI和成器,是一个Frameserver。(Frameserver就是一个把影像文件从一个程序转换到另外一个程序的过程, 其间没有临时文件或中介文件产生)

AviSynth的基本工作原理是这样的:
首先建立一个包含特定命令的文本,称之为“脚本”(后缀为avs),这些命令指定要运行处理的影像文件和滤镜;
然后运行影像应用程序,比如VD或ND,打开脚本。此时AviSynth就开始工作了,打开脚本中指定的影像文件,运行特定的滤镜,并把输出结果提供给影像应用程序。但影像应用程序并不了解AviSynth在后台所做的处理,而认为是直接打开了一个“被处理过”的影像文件。

(二)软件安装
1.下载 Real Alternative 1.43 并安装。用 Real Alternative 可在标准的Windows Media Player 中播放RM/RMVB视频。
下载地址:http://nj.onlinedown.net/soft/15943.htm
注:安装 Real Alternative 时会自动卸载原有的RealOne(被取代)。

2.下载并安装 AviSynth 2.5.5 RC3,Avisynt是一个功能强大的影视处理Utility(实用程序),在Premiere中导入RM/RMVB主要是利用它的Frameserving的功能。
下载地址:http://nj.onlinedown.net/soft/34381.htm

3.下载并安装Premiere avisynth import filter 1.1b这是Premiere的插件,从而使Premiere能识别 .avs 文件(Avisynth 文件)
下载地址:http://nj.onlinedown.net/soft/34383.htm

4.基础软件就绪,如在Premiere中导入 .avs 文件出错,提示没有找到编码器...,即缺少相应RM/RMVB影像编码,如XviD DVD影像编码.下载并安装Koepis XviD Codec 1.1.0 Beta 2 下载地址:http://nj.onlinedown.net/soft/12080.htm

(三)导入电影
下载一部RM/RMVB格式电影,如电影:《诺丁山》.rm放入一个文件夹,在这同文件夹中新建一个记事本文件,写入如下控制语句:
DirectShowSource("《诺丁山》.rm",25)
其中《诺丁山》.rm为所要在Premiere中编辑的RM/RMVB视频文件,25为每秒帧数(fps)。保存名《诺丁山》,将扩展名.txt改成.avs即为《诺丁山》.avs 好了在Premiere导入《诺丁山》.avs 除了用在Premiere中外,这样的.avs 还可以用在其它软件中,以解决识别RMVB时带来的问题,如对任何版本的 TMPGEnc。

P.S 其中写控制语句时,rm与rmvb不能弄错

Saturday, August 12, 2006

基本搞定

作业基本完成,剩下的就是添加一些"出错处理"的小函数
这次偷懒,用了很多摸板,所以决定索性把手头的STL抓紧看下.
应该说,很大教训是,写个程序不要断断续续,尽量一口气完成,至少是每天连续时间段完成,避免隔太久时间找不到原来的思路,特别是长时间不写,容易感到生疏,要花多余的时间回忆原来的写的东西..
抽空把"保存,读入"整理出来.做个积累

Thursday, August 10, 2006

"多重选择"和"循环"的结合

以前写菜单的选择功能喜欢用switch,然后用goto返回到"菜单界面",这是个不好的习惯,因为俗话说"有goto的不是好程序",但一直也懒的动脑子
这次终于在别人的"叮嘱"下,改过来,说明自己还是比较贱,一定要被人说了才动手
事实上一个月前就改了,今晚是稍加修改使得更符合我的程序,记录在这里,算是"小小的积累"
Print_manu1();
getchar();
while(n!=0)
{
  scanf("%c",&n);
  switch(n)
  {
case '0':n=NULL;break;
case 'a':break;
case 'b':break;
case 'c':break;
case 'd':break;
case 'e':break;
case 'f':break;
case 'g':break;
case 'h':break;
case 'i':break;
case 'j':break;
default:break;
}
getchar();
Print_manu1();
}
说明:
"n"用来存放选择的项目(0,a~j),当选择"0(零)"时,跳出while
Print_manu1();是输出一个选择菜单,其中加入2个getchar();为的是避免"自动的两次输出Print_manu1();"(注意分析这个过程!!)

有更好的建议请联系我
P.S以后要多看点程序,积累积累

Wednesday, August 09, 2006

No.2

上次开通后,一直不能浏览,于是隔那么久才来更新
没有更新的这段时间正好也"见证"了我的懒惰,因为这里有更新的时候,也说明了我再次准备写完那个程序..
之前的程序是学校要求的管理系统,总的结构已经搞定,比较不会的"保存,读取"在高人的帮助下,顺利解决,应该说国内几个好的论坛都有不少的"好人",只要你问的问题不是太菜的问题..(这就意味着问问题前,你必须自己先做功课).前面写的时候,积累了不少经验,但现在没心思回忆它们,以后慢慢补上了

我想这里会是见证我"无知到精通"的地方.
除了这里外,我还满想再开个"比较像blog的blog",msnspace对我来说是宁静的地方,好朋友聚会的地方.