zhwa

zhwa

0个粉丝

32

问答

0

专栏

1

资料

zhwa  发布于  2017-03-01 11:22:44
采纳率 0%
32个问答
6194

设置编码帧率问题

 
用hi3516a做编码,开始在编码部分设置帧率,用不同帧率的相机测试后发现设置帧率无效。后来改了vi、vpss、enc部分的元帧率、目标帧率,运行时HI_MPI_VPSS_SetChnAttr报错:VPSS 参数设置无效。
设-1时不报错,设为30就报错;如下设置;
// stVpssChnAttr.s32SrcFrameRate = -1;
   // stVpssChnAttr.s32DstFrameRate = -1;
       
        stVpssChnAttr.s32SrcFrameRate = 30;
    stVpssChnAttr.s32DstFrameRate = 30;
    s32Ret = HI3516A_COMM_VPSS_EnableChn(VpssGrp, VpssChn, &stVpssChnAttr, &stVpssChnMode, HI_NULL);

难道vpss的VPSS_CHN_ATTR_S没有这个这两个成员?不是的。到底为何?编码的帧率如何设置?用vlc看到的帧率准确吗
我来回答
回答6个
时间排序
认可量排序

ma7562042

0个粉丝

4

问答

0

专栏

0

资料

ma7562042 2017-03-01 17:16:39
认可0
VPSS_CHN_ATTR_S结构体中这两个属性是进行帧率控制的。
1、而通道帧率控制只有在VI-VPSS在线模式下有效。
2、原帧率与目标帧率都为-1,则不进行帧率控制。
3、目标帧率不能大于原帧率。
你可以在创建VENC通道的之前,对VENC_CHN_ATTR_S结构体里面的帧率进行修改。亲测有效。

zhwa

0个粉丝

32

问答

0

专栏

1

资料

zhwa 2017-03-01 17:39:06
认可0
本帖最后由 zhwa 于 2017-3-1 17:54 编辑

创建Venc通道之前帧率修改,那就是在VENC_RC_ATTR_S这个结构体里设置帧率,我用的是Vbr
else if (HI3516A_RC_VBR == vp.rc_mode)
            {
                stVencChnAttr.stRcAttr.enRcMode = VENC_RC_MODE_H265VBR;
                stH265Vbr.u32Gop = 30;
                stH265Vbr.u32StatTime = 1;
                stH265Vbr.u32SrcFrmRate = 30;
                stH265Vbr.fr32DstFrmRate = 30;
                 memcpy(&stVencChnAttr.stRcAttr.stAttrH265Vbr, &stH265Vbr, sizeof(VENC_ATTR_H265_VBR_S));

}然后s32Ret = HI_MPI_VENC_CreateChn(VencChn, &stVencChnAttr);可是帧率随着摄像机的帧率是30、60、,编解码出来的帧率就是30、60,完全控制不了啊。

flyarcher

0个粉丝

0

问答

0

专栏

0

资料

flyarcher 2017-03-02 13:49:36
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45832&ptid=14351]zhwa 发表于 2017-3-1 17:39[/url]
创建Venc通道之前帧率修改,那就是在VENC_RC_ATTR_S这个结构体里设置帧率,我用的是Vbr
else if (HI3516A_ ...[/quote]

其实这个只是RealSrcFrameRate *fr32DstFrmRate/u32SrcFrmRate ;
也就是说你dst和src都设置了30fps,那么实际效果就是不降帧

zhwa

0个粉丝

32

问答

0

专栏

1

资料

zhwa 2017-03-02 14:40:31
认可0
非常感谢各位,问题已经解决。

1. VI的源帧率和像机帧率一样时,venc出来的帧率就是你设置的VI目标帧率,
2. 当VI的源帧率和目标帧率设为相同,但是不等于像机的帧率时,设置的帧率不产生作用。
3. 当VI的源帧率大于目标帧率,但不等于像机帧率时,venc的帧率误差比较大,如像机的帧率为60,VI输入设置50,目标帧率30,venc出来可达38

海思这样有点傻吧

_hellotan

7个粉丝

14

问答

0

专栏

0

资料

_hellotan 2018-07-05 15:37:40
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45890&ptid=14351]zhwa 发表于 2017-3-2 14:40[/url]
非常感谢各位,问题已经解决。

1. VI的源帧率和像机帧率一样时,venc出来的帧率就是你设置的VI目标帧率 ...[/quote]

你好 ,请问你说像机帧率是指SENSOR 吗  ,我现在VENC 帧率都是 30  ,不管这个目标帧率设置多少 文件都是30 帧
stH264Cbr.u32SrcFrmRate       = 60;// VIDEO_MODE_NTSC) ? 25 : 30; /* input (vi) frame rate */    stH264Cbr.fr32DstFrmRate         = 60;

jipd

0个粉丝

14

问答

0

专栏

0

资料

jipd 2018-07-05 17:09:32
认可0
11111111111111111111111
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区