我用的drk版本是04.00.00.03,我的encode参数想从CBR设置为VBR,rateControlPreset的设置为IVIDEO_USER_DEFINED
rcAlgo的设置为IH264_RATECONTROL_PRC
那为什么我的码率和帧率没有什么变化呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,
无论是CBR还是VBR,TI码率控制算法的策略都是尽量靠近用户设定的目标码率。
请问你想利用VBR实现什么样的效果?
你好,
IVAHD h264enc是否丢帧,丢多少帧,是用户配置的,相关参数如下:
allowFrameSkip
skipDistributionWindowLength
numSkipInDistributionWindow
图像的质量一般是由QP确定的,固定QP能确保图像质量不变化,但是码率就无法控制。
map dog 说:问题是画面大量的运动,码率和帧率还是没有变化
你测试的是多少分辨率多少帧,设置的目标码率是多少?VBR只有在目标码率较低的情况下,运动剧烈时,码率增加比较明显。如果码率控制算法能够将码率控制在目标码率之下,那就是看不出码率的变化的。
下面是enclink的统计信息,你看对吗?
[m3video] --------- CH 2 : H264 ENC : Dynamic Params -------
[m3video]
[m3video] videnc2DynamicParams -> inputHeight : 576
[m3video] videnc2DynamicParams -> inputWidth : 704
[m3video] videnc2DynamicParams -> refFrameRate : 30000
[m3video] videnc2DynamicParams -> targetFrameRate : 25000
[m3video] videnc2DynamicParams -> targetBitRate : 256000
[m3video] videnc2DynamicParams -> intraFrameInterval : 50
[m3video] videnc2DynamicParams -> generateHeader : 0
[m3video] videnc2DynamicParams -> captureWidth : 704
[m3video] videnc2DynamicParams -> forceFrame : -1
[m3video] videnc2DynamicParams -> interFrameInterval : 1
[m3video] videnc2DynamicParams -> mvAccuracy : 2
[m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
[m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1
[m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1
[m3video] videnc2DynamicParams -> lateAcquireArg : -1
[m3video] [m3video] rateControlParams -> rateControlParamsPreset : 1
[m3video] rateControlParams -> scalingMatrixPreset : 0
[m3video] rateControlParams -> rcAlgo : 0
[m3video] rateControlParams -> qpI : -1
[m3video] rateControlParams -> qpMaxI : 40
[m3video] rateControlParams -> qpMinI : 10
[m3video] rateControlParams -> qpP : -1
[m3video] rateControlParams -> qpMaxP : 40
[m3video] rateControlParams -> qpMinP : 10
[m3video] rateControlParams -> qpOffsetB : 4
[m3video] rateControlParams -> qpMaxB : 44
[m3video] rateControlParams -> qpMinB : 10
[m3video] rateControlParams -> allowFrameSkip : 0
[m3video] rateControlParams -> removeExpensiveCoeff : 0
[m3video] rateControlParams -> chromaQPIndexOffset : 0
[m3video] rateControlParams -> IPQualityFactor : 0
[m3video] rateControlParams -> initialBufferLevel : 4000000
[m3video] rateControlParams -> HRDBufferSize : 4000000
你好,
1. 请参考xdias里面的ivideo.h, 你现在配置的是CBR。
typedef enum {
IVIDEO_LOW_DELAY = 1, /**< CBR rate control for video conferencing. */
IVIDEO_STORAGE = 2, /**< VBR rate control for local storage (DVD)
* recording.
*/
IVIDEO_TWOPASS = 3, /**< Two pass rate control for non real time
* applications.
*/
IVIDEO_NONE = 4, /**< No configurable video rate control
* mechanism.
*/
IVIDEO_USER_DEFINED = 5,/**< User defined configuration using extended
* parameters.
*/
/** Default setting. */
IVIDEO_RATECONTROLPRESET_DEFAULT = IVIDEO_LOW_DELAY
} IVIDEO_RateControlPreset;
2. 你发的参数是704x576不是720p的分辨率。
在enclink_h264.c文件函数里面
dynamicParams->rateControlParams.rateControlParamsPreset = IH264_RATECONTROLPARAMS_USERDEFINED;
dynamicParams->rateControlParams.rcAlgo == IH264_RATECONTROL_PRC
上面的设置还是不行
在encode的pdf文档中rateControlParamsPreset 的只能设这3个值
IH264_RATECONTROLPARAMS_DEFAULT
IH264_RATECONTROLPARAMS_USERDEFI_NED
IH264 RATECONTROLPARAMS EXISTING
你好,
你提供的视频显示配置码率512k,实际平均码率1.2M,已经远超256kbps了。
bitrate declared : 512 000
--------------------------------------------
real max : 1 584 000
real avg : 1 258 600
real min : 378 200