搜索 社区服务 统计排行 帮助
  • 1149阅读
  • 4回复

[求助]请教一个关于 AVS 的问题

楼层直达
级别: 新手上路
注册时间:
2009-06-03
在线时间:
0小时
发帖:
57
DirectShowSource("C:\ReV14hd.mp4",29.970,convertFPS=True)

这句话中的29.970有什么作用?是定义按照29.970帧/s的速度播放每一帧么?如果我把它改成23.976产生什么变化?
如果是这样,那不是和assumeFPS重复了?

convertFPS和ChangeFPS又有什么区别?或者说哪个的效果要更好一些?

先谢过各位大大~~~~~[/ku]

我很懒
级别: 新手上路
注册时间:
2005-05-15
在线时间:
9小时
发帖:
188
只看该作者 1楼 发表于: 2009-06-04
你的视频原本帧速是多少?看起来时有没有问题?没有问题就不要乱改帧速。

分别的话,assumeFPS是按自定帧速播放,帧数不变,影片的播放速度会按照你输入的帧速加快或减慢。

convertFPS是把影片转变帧速,播放速度基本不变,帧数会变,同时会有artefact 出现。举例,如把原来23.976帧速的视频硬转成29.98播放,那么就表示影片每秒会多了6帧的垃圾出来,这些垃圾通常就是把两个帧重叠在一起生出来的另一个帧,叫鬼影(ghosting),看起来很不舒服的。
级别: 新手上路
注册时间:
2009-06-03
在线时间:
0小时
发帖:
57
只看该作者 2楼 发表于: 2009-06-04
TO 2L

29.970就是片源帧率,我刚刚试了试,在这里改帧率实际效果和convertFPS相仿,个人猜想应该是后面的convertFPS=ture的作用吧……请高手证实

效果方面,实测还是changefps要自然一些,我关心的主要不是鬼影问题,我关心的是流畅度的问题。

当然帧率改动不大的情况下还是直接assumefps,然后调整一下音频比较好。

还是谢谢你的解答

我很懒
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 3楼 发表于: 2009-06-04
DSS里的convertfps其实很简单

DirectShow是基于时间戳的,每一帧有一个绝对值的时间戳(精确到万分之一秒)所以不需要什么fps,但avs比较落后,整段视频必须要有一个统一的fps和确定的长度。

这个fps就把整个时间轴分成了小段,每一段的间隔是1/fps。使用convertfps,DSS每获得一个新帧后就会看看能不能将它放到某个小段中,如果和上一帧的间隔小于1/fps,这一帧就会被扔掉,如果大于1/fps,就会把上一帧复制几份填充。当然DSS会允许一定范围的误差。

如果不用convertfps,DSS就无视时间戳来一帧放一帧。如果视频放完了还没到预定的长度,就只能填充空白帧;如果视频没放完就到预定长度,后面的就被剪掉了。
级别: 新手上路
注册时间:
2009-06-03
在线时间:
0小时
发帖:
57
只看该作者 4楼 发表于: 2009-06-04
谢谢楼上的大大 我完全明白了

跑了几个论坛都没得到答复,还是漫游的人比较厉害

我很懒
快速回复

限150 字节
上一个 下一个