『漫游』酷论坛>『影音数码技术学习交流』>[求助]请教一个关于 AV ..
[求助]请教一个关于 AVS 的问题
hr_999@2009-06-03 22:25
DirectShowSource("C:\ReV14hd.mp4",29.970,convertFPS=True)
这句话中的29.970有什么作用?是定义按照29.970帧/s的速度播放每一帧么?如果我把它改成23.976产生什么变化?
如果是这样,那不是和assumeFPS重复了?
convertFPS和ChangeFPS又有什么区别?或者说哪个的效果要更好一些?
先谢过各位大大~~~~~[/ku]
manofman@2009-06-04 00:13
你的视频原本帧速是多少?看起来时有没有问题?没有问题就不要乱改帧速。
分别的话,assumeFPS是按自定帧速播放,帧数不变,影片的播放速度会按照你输入的帧速加快或减慢。
convertFPS是把影片转变帧速,播放速度基本不变,帧数会变,同时会有artefact 出现。举例,如把原来23.976帧速的视频硬转成29.98播放,那么就表示影片每秒会多了6帧的垃圾出来,这些垃圾通常就是把两个帧重叠在一起生出来的另一个帧,叫鬼影(ghosting),看起来很不舒服的。
hr_999@2009-06-04 00:24
TO 2L
29.970就是片源帧率,我刚刚试了试,在这里改帧率实际效果和convertFPS相仿,个人猜想应该是后面的convertFPS=ture的作用吧……请高手证实
效果方面,实测还是changefps要自然一些,我关心的主要不是鬼影问题,我关心的是流畅度的问题。
当然帧率改动不大的情况下还是直接assumefps,然后调整一下音频比较好。
还是谢谢你的解答
roozhou@2009-06-04 00:40
DSS里的convertfps其实很简单
DirectShow是基于时间戳的,每一帧有一个绝对值的时间戳(精确到万分之一秒)所以不需要什么fps,但avs比较落后,整段视频必须要有一个统一的fps和确定的长度。
这个fps就把整个时间轴分成了小段,每一段的间隔是1/fps。使用convertfps,DSS每获得一个新帧后就会看看能不能将它放到某个小段中,如果和上一帧的间隔小于1/fps,这一帧就会被扔掉,如果大于1/fps,就会把上一帧复制几份填充。当然DSS会允许一定范围的误差。
如果不用convertfps,DSS就无视时间戳来一帧放一帧。如果视频放完了还没到预定的长度,就只能填充空白帧;如果视频没放完就到预定长度,后面的就被剪掉了。
hr_999@2009-06-04 09:22
谢谢楼上的大大 我完全明白了
跑了几个论坛都没得到答复,还是漫游的人比较厉害
| TOP