版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
cpu100
帖子: 28
注册时间: 2010-11-09 14:43

关于视频流畅度(帧数)的问题!

不知道此文写在那一模块好,但想到AVS的强大,就写在这个模块里啦!

关于视频的流畅度上的问题,我作了一些分析,但是无果,想请高人指点:
我用后期软件(AE)制作了一个视频:模拟物体的左右运动;
分别输出两种帧率不同的视频:一个是25fps,一个是50fps;
可以看得到:25fps有拖影的现象(运动不流畅或说不连惯),而50fps则是比较流畅(运动很细腻).
视频都是逐行扫描,不考虑视频的其它因素,只研究物体运动的流畅度。
视频连接如下:
25fps.avi :http://dl.dbank.com/c0b4tbdrax
50fps.avi :http://dl.dbank.com/c09fa58z9g
(话说,这个网盘有点慢吧,审了半天了都没动静,不会是一个一个文件从头看到尾吧,这样工作量不小哦-_-||||)
我用50fps视频转换成为25fps,其它什么AVS都不用,直接用一般的软件工具转成25fps,效果如同AE输出的25fps,
输出的文件50fps TO 25fps.avi : http://dl.dbank.com/c0h5f5udl9

问题:
1、怎么能让50fps的视频转换成为25fps时也是很流畅细腻呢?
2、如AE输出的25fps怎么能做成50fps这样流畅度呢?交错可否行?怎么做(x264编码)?(俺不懂,请教)

大家是怎么看的?

延伸:
如果用摄像机来拍摄的视频,在一定的时间内,一个人快速的从画面的左边走到右边,在25fps下人就会有上面不流畅的问题,但是电影拍摄上面貌似人都很流畅啊,他们是怎么样搞的这么流畅?一般也是23.976fps而已啊。


2012.04.26补充:
关于我为什么问这个问题的来源是这样的:
背景情况
这个问题是出在拍摄的视频上,在有限的拍摄场景,拍摄的视频是25fps(逐行)。

问题:
采集出来的视频有一个问题:视频中人在摄像范围内从左走到右或从右走到左的动作,人就显得有闪,就像帧率不足的一样,观看时眼睛特不舒服。

问题分析:
1、视频采集出来后就像连续的静帧图片串连起来,并没有运动模糊,就像渲染3D动画不开运动模糊一样,画面很生硬。
2、提升帧率是一个解决方案,但是摄像机最高只支持25P/50i的HDV。

这几在初步解决方法成果:
在拍摄端改善,摄像拍50i的视频,(隔行50i比逐行25P流畅,在50i拍摄出来的视频中取出静帧图像有“动感”,而25P则是都是帧很清晰的图片。)

分享最近查阅的资料:
像前面我讲的25P视频不流畅、闪的现象,是因为画面缺少一种运动的“视觉走向”心里的“动感模糊”信息,造成了“视频暂留”产生的顿错感。

但压制环节还是有问题:
1、我已经拍了“不流畅”的视频怎么处理有“动感模糊”呢,"06_taro" 的AVS我了解的不多,有点难。
2、怎么让新拍的50i视频压制成逐行的后,他的效果和“i”场时效果相当呢。
上次由 cpu100 在 2012-04-26 17:21,总共编辑 2 次。
btcdtc
帖子: 73
注册时间: 2010-10-29 23:23

Re: 关于视频流畅度(帧数)的问题!

motion blur
头像
cpu100
帖子: 28
注册时间: 2010-11-09 14:43

Re: 关于视频流畅度(帧数)的问题!

btcdtc 写了:motion blur
AVS怎么加呀?
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 关于视频流畅度(帧数)的问题!

motion blur意思是运动模糊,之所以一般电影23.976fps看起来也并没有十分明显的闪烁感是因为运动模糊的存在(一般是在摄像机端产生的,由曝光时间决定),而在3D游戏里有时会人为加入运动模糊来增强运动感,因为单纯靠人眼的视觉残留效应来产生运动的模糊感可能至少需要120fps以上的帧率,而多数条件下无论是信号源还是显示设备都无法做到足够高的帧率来达到像现实环境中你看快速运动物体的模糊感,例如现实中运动车轮的轮毂看起来是个模糊的原盘,而在没有运动模糊的3D游戏里看到的是闪烁的轮毂。
而如果像是用HTPC连接电视机,显卡驱动里调成24Hz的话,移动鼠标就是明显一卡一卡的。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Motion blur sample

[syntax lang="avisynth" lines="f" filename="Motion_blur-Sample.avs"]
### AviSource("input.avi")

preblur = RemoveGrain(4)

b1super = MSuper
b2super = preblur.MSuper

f1V = b1super.MAnalyse(delta=1, isb=false, chroma=false, truemotion=true)
b1V = b1super.MAnalyse(delta=1, isb=true, chroma=false, truemotion=true)

f1V = b2super.MRecalculate(f1V, truemotion=true)
b1V = b2super.MRecalculate(b1V, truemotion=true)

Mbr = MFlowBlur(b2super, b1V, f1V, blur=15)

dif = mt_makediff(Mbr)
Sd1 = mt_makediff(preblur)
Sd2 = sd1.Repair(dif, 1, -1)
Sd2 = mt_lutxy(sd1, sd2, "x 128 - Abs y 128 - Abs < x y ?")
Ssh = mt_adddiff(Mbr, sd2, U=2, V=2)

f1C = MCompensate(b2super, f1V)
b1C = MCompensate(b2super, b1V)
Tma = Mbr.mt_logic(f1C, "max").mt_logic(b1C, "max")
Tmi = Mbr.mt_logic(f1C, "min").mt_logic(b1C, "min")

Ssh.mt_clamp(Tma, Tmi, 0, 0, U=2, V=2)
[/syntax]
僅大致框架,使用時請自己tweak參數…
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
cpu100
帖子: 28
注册时间: 2010-11-09 14:43

Re: Motion blur sample

06_taro 写了:
谢谢!
我尝试了一下,对于25P的视频,脚本没有明显的解决“丢帧或帧率不足”而画面不流畅的问题。
现在都有点放弃后期能解决的想法了。
估计解决这种问题的方法也只有从拍摄端想办法了。

mawen1250 同学说的很有道理,拍摄端对快门的控制,对近物在运动时利用“动感模糊”的这种技巧来弥补“帧不足”才是最好的办法了。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 关于视频流畅度(帧数)的问题!

mvtools做motion blur的效果已經非常明顯了,motion blur就是你說的『对近物在运动时利用“动感模糊”的这种技巧来弥补“帧不足”』,到底是『没有明显的解决』還是『最好的办法了』我就不做評論了,反正我只寫個motion blur的模板,效果不做保證。不過這個腳本全是默認參數,所以me精度非常低,需要更好的效果來實用的話請自己tweak參數。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
cpu100
帖子: 28
注册时间: 2010-11-09 14:43

Re: 关于视频流畅度(帧数)的问题!

弱弱的问:tweak 是调整颜色饱和度的参数吧?
这个和调整“运动模糊”有很大的关系?
头像
upyzl
帖子: 446
注册时间: 2010-12-25 18:44
来自: 湘/京
联系: 网站

Re: 关于视频流畅度(帧数)的问题!

那里tweak是动词,不是名词,即让你自行调整相关参数以达到更佳效果
头像
cpu100
帖子: 28
注册时间: 2010-11-09 14:43

Re: Motion blur sample

请教这些参数解释是什么意思,小弟在这一块的确很菜,在此谢谢!
06_taro 写了:[syntax lang="avisynth" lines="f" filename="Motion_blur-Sample.avs"]
### AviSource("input.avi")

preblur = RemoveGrain(4)

b1super = MSuper
b2super = preblur.MSuper

f1V = b1super.MAnalyse(delta=1, isb=false, chroma=false, truemotion=true)
b1V = b1super.MAnalyse(delta=1, isb=true, chroma=false, truemotion=true)

f1V = b2super.MRecalculate(f1V, truemotion=true)
b1V = b2super.MRecalculate(b1V, truemotion=true)

Mbr = MFlowBlur(b2super, b1V, f1V, blur=15)

dif = mt_makediff(Mbr)

Sd1 = mt_makediff(preblur)
Sd2 = sd1.Repair(dif, 1, -1)
Sd2 = mt_lutxy(sd1, sd2, "x 128 - Abs y 128 - Abs < x y ?")
Ssh = mt_adddiff(Mbr, sd2, U=2, V=2)

f1C = MCompensate(b2super, f1V)
b1C = MCompensate(b2super, b1V)
Tma = Mbr.mt_logic(f1C, "max").mt_logic(b1C, "max")
Tmi = Mbr.mt_logic(f1C, "min").mt_logic(b1C, "min")

Ssh.mt_clamp(Tma, Tmi, 0, 0, U=2, V=2)
[/syntax]
僅大致框架,使用時請自己tweak參數…

回到 “AviSynth”