» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

蛋疼2小时...解决了熊猫傻瓜版pspavc视频软件的2个问题....(更新)

貌似是3.30以后(或者更早),SONY又改了播放器,现在高度是272的话会被裁剪或者压缩

a):480X272的最下面两个像素被裁,播放时变成480x270,上下各有一像素黑边
b):368x272这样宽度不足480的,播放时会被压缩为高度为360输出,此时效果会变得非常糟糕,因为不是点对点

解决方法16:9 =>480x270    4:3=>360x270   (SONY官方转片软件IC3输出的也是480x270)

PS:ffmpeg本身的resize效果很差最好不要用-s 480:272 类似这样的参数,最好用AVS来定义分辨率,帧数最好也由AVS定义;

如2.35:1加黑边
BicubicResize(480,204,-0.8,0)
AddBorders(0, 33, 0, 33)
然后在ffmpeg的参数里面把 -s 480:272去掉,效果如何自己一看便知:D


TOP

嗯 我理解你的意思了,就是做两次resize

我的AVS模板这样用的:
引用:
DirectShowSource("<%InputFile%>",convertfps=true)
fps= float(Framerate)
w =  float (Width)
h =  float (Height)
aspect = float (w / h)

#帧数30以下按原帧数输出,超过30的强制变帧到29.97帧输出
(fps > 31 )?changeFPS(29.97):NOP()

#根据片源分辨率比例 选择resize的尺寸
( aspect > 2 )? BicubicResize(480,204,-0.8,0):( aspect >= 1.5 && aspect <= 2 )? BicubicResize(480,270,-0.8,0):( aspect < 1.5 )?BicubicResize(360,270,-0.8,0):NOP()

#如果是2.35:1的比例就上下加黑边
( aspect > 2 )? AddBorders(0, 33, 0, 33):NOP()

ConvertToYV12()
这样就让AVS来通过片源的尺寸自动选择合适的分辨率,如果是2.35:1的话就会自动加黑边,这样就不用ffmpeg来处理缩放分辨率。

如此一来连3种不同尺寸的分辨率选择都不用了,不管什么分辨率的直接拖进去,彻底傻瓜化。

不过3GP还是有不方便的地方,不能让压片完全傻瓜化。比如一种后缀只能对应一个AVS模板...遇到WMV或者MKV要挂字幕就又要改AVS模板,还有很多地方都不够灵活。

所以为了达到更懒的目的,按照3GP的思路自己写了个GUI自己用,实现了一些自己觉得有必要的功能,内核完全抛弃ffmpeg改用对多线程支持好的x264cli 加上neroAacEnc和MP4box,这套最常用的MP4压制解决方案。



刚编程没多久,编出来的东西只敢自己用用...而且还没完成只实现了预想的部分功能....



TOP

还差一些没完成呢,等差不多了就传上来让大家试试吧...不过最近快到春节了忙的都没空更新了


TOP

发新话题
     
官方公众号及微博