Toybrick

两路1080P视频编码只能维持23FPS

zhuo799154051

中级会员

积分
443
楼主
发表于 2020-12-22 17:01:33    查看: 6800|回复: 7 | [复制链接]    打印 | 只看该作者
    我修改了下编码的demo并进行了测试,输入两路25FPS的1080P视频,输出两个23FPS的H264文件。通过打印的信息,encode_put_frame消耗了43ms左右的时间,仅编码单路的话则消耗25ms。这里我已经设置了MPP_BUFFER_TYPE_DRM。
  1. double t1 = what_time_is_it_now3();

  2. ret = p->mpi->encode_put_frame(p->ctx, frame);
  3. if (ret) {
  4. printf("mpp encode put frame failed\n");
  5. mpp_frame_deinit(&frame);
  6. goto RET;
  7. }

  8. double t2 = what_time_is_it_now3();
  9. printf("put_frame -> %f\n", t2 - t1);
复制代码



     我看了MPP文档,encode_put_frame是阻塞式函数,于是尝试了设置MPP_SET_INPUT_TIMEOUT为非阻塞,直接返回-1。请问有什么方法能降低encode_put_frame的耗时?


回复

使用道具 举报

jefferyzhang

版主

积分
12939
沙发
发表于 2020-12-22 19:49:26 | 只看该作者

回帖奖励 +5 金钱

1. 什么板子、什么芯片
2. 什么系统

回复

使用道具 举报

zhuo799154051

中级会员

积分
443
板凳
 楼主| 发表于 2020-12-23 08:54:30 | 只看该作者
jefferyzhang 发表于 2020-12-22 19:49
1. 什么板子、什么芯片
2. 什么系统

toybrick RK3399ProD debian10,官方
回复

使用道具 举报

jefferyzhang

版主

积分
12939
地板
发表于 2020-12-23 09:10:32 | 只看该作者

回帖奖励 +5 金钱

zhuo799154051 发表于 2020-12-23 08:54
toybrick RK3399ProD debian10,官方

3399ProD编码能力在你这个场景基本已经是极限了,没啥问题呀。
回复

使用道具 举报

zhuo799154051

中级会员

积分
443
5#
 楼主| 发表于 2020-12-23 09:14:27 | 只看该作者
jefferyzhang 发表于 2020-12-23 09:10
3399ProD编码能力在你这个场景基本已经是极限了,没啥问题呀。

这就完全没办法提升了么,我看Wiki上3399pro规格参数支持2路1080P@30fps编码
回复

使用道具 举报

jefferyzhang

版主

积分
12939
6#
发表于 2020-12-23 09:30:04 | 只看该作者

回帖奖励 +5 金钱

zhuo799154051 发表于 2020-12-23 09:14
这就完全没办法提升了么,我看Wiki上3399pro规格参数支持2路1080P@30fps编码

2路是要你代码写的很好的情况。
给你几个思路,你自己研究研究:

1. MPP用BufferGroup自己管理内存
2. 用物理连续内存喂编码器
3. VPU抬频
回复

使用道具 举报

zhuo799154051

中级会员

积分
443
7#
 楼主| 发表于 2020-12-23 09:44:32 | 只看该作者
jefferyzhang 发表于 2020-12-23 09:30
2路是要你代码写的很好的情况。
给你几个思路,你自己研究研究:

第1点MppBufferGroup我在MPP文档中看到用在解码,编码也是相同用法么?
第2点是要以CMA分配的物理地址作为输入传入编码器么?
第3点VPU抬频如何抬?具体需要修改那些设置?

另外还有一个疑问,MPP编码H264要求图像16位对齐,改成H265是不是能8位对齐,不然1080P会有底边泛绿。
回复

使用道具 举报

jefferyzhang

版主

积分
12939
8#
发表于 2020-12-23 10:44:11 | 只看该作者
本帖最后由 jefferyzhang 于 2020-12-23 12:22 编辑
zhuo799154051 发表于 2020-12-23 09:44
第1点MppBufferGroup我在MPP文档中看到用在解码,编码也是相同用法么?
第2点是要以CMA分配的物理地址作 ...

1. 是的
2. 是的
3. 要改kernel代码,不懂的话不建议乱改
4. 怎么对齐跟硬件相关,应用只有获取对齐后宽高的能力,没有能力去改对齐方式

PS: 3399Pro不支持265编码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表