最近在做264编码的时候遇到了一个瓶颈,希望得到指点。
在264编码中对于帧率的修改有以下三个参数:
maxframerate , refframerate ,以及targetframerate。
我将这三个参数同时赋值为60000,即帧率都为60帧,且视频源的帧率也为60帧,但是最后编码后的.264文件却是30帧每秒。
希望得到解答。
我不知道我的理解对不对,应该是 输出的帧率=输入帧率*目标帧率/参考帧率,如果是这样的那么最大帧率的意义是什么?
还望不吝赐教,谢谢
Chris Meng:
你好,
目标帧率是为了码率控制算法来使用的。实际的帧率,是每秒process的帧数。
你现在是多大分辨率编码?输入编码的YUV的帧率是否是60帧?
yuxiang li:
回复 Chris Meng:
1920*1088的,输入帧率是通过机顶盒输入的,我们设置的帧率是60fps
Chris Meng:
回复 yuxiang li:
你好,
DM6467芯片性能上达不到1080p60的编码。
yuxiang li:
回复 Chris Meng:
您好,我现在还是不能正确的修改帧率。
我想问您一下如果我们现在给到板子的输入帧率是60f想编码后的帧率分别是15f和10f
应该怎样修改参数params和dynamicparams的哪些参数?
还有就是您刚才说目标帧率是用来控制码率的,是怎样控制码率的?不是设置最大编码率就可以控制码率么?
还望不吝赐教,万分感谢!!!
Chris Meng:
回复 yuxiang li:
你好,
DM6467的VPIF支持最大时钟应该是小于145MHz的,所以不能支持1080p60的输入。
就你的问题,无论你输入的帧率是多少,你需要使用软件(不是编码算法)来丢帧处理(process)以达到你需要的实际帧率。编码算法里面的目标帧率是为码流控制算法提供参考。
yuxiang li:
回复 Chris Meng:
您好,还想麻烦问您一下,那按您的意思说如果按现在的方式是没有办法修改帧率的么?那输出的帧率是和输入的帧率是一样的么?
Chris Meng:
回复 yuxiang li:
你好,
请问你说的“现在的方式”是什么意思?DM6467的输入还是1080p60?如果是,硬件不支持。
就问题本身,修改帧率要修改应用程序,来实现丢帧。
yuxiang li:
回复 Chris Meng:
您好
那如果输入的帧率是30f和15f输出的帧率应该是多少,是和输入一样么
Chris Meng:
回复 yuxiang li:
你好,
就系统而言,首先输入的帧率芯片必须要支持。
输入和输出的帧率不定需要一样。
如果DM6467输入1080p30,但编码要1080p15,就需要软件每两帧丢一帧,也就是每两帧,只送一帧去process。实际的编码帧率是每秒procsss的帧数。在编码的参数上帧率和实际的送process的帧率要一致,不然码率控制算法就不准确了。
yuxiang li:
回复 Chris Meng:
您好,
可能我对这个机制不是特别了解,那您的意思是如果不做丢帧处理那输出和输入的帧率是一样的吧。