Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

[技术讨论] 交叉编译了ffmpeg、mpp、gstreamer和python opencv,未能调用mpp进行硬解码

46

积分

0

威望

0

贡献

技术小白

积分
46

交叉编译了ffmpeg、mpp、gstreamer和python opencv,未能调用mpp进行硬解码

发表于 2023-6-5 17:57:59      浏览:10415 | 回复:31        打印     [复制链接] 楼主
  • 固件类型: 官方提供的固件
  • 固件文件名称: RK3588_unbuntu_2.0
  • 固件下载地址: XX
  • Log日志: log.txt
问题描述及复现步骤:
1、问题:
       通过opencv的软解码rtsp流,cpu占用率高,考虑到要处理4k摄像头,采用python opencv+gstreamer+mpp方式进行视频硬件。

2、方式:
       交叉编译了ffmpeg、mpp、gstreamer和python opencv,下图显示已经安装好硬解码器了:


gst命令:gst-launch-1.0  mppvideodec  rtspsrc location=rtsp://admin:js123456@192.168.8.160:554/cam/realmonitor?channel=1&subtype=0 ! rtph264depay ! h264parse ! queue ! mppvideodec ! autovideosink  latency=10 sync=false
但是未能启用:


log.txt

21.92 KB, 下载次数: 1, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-6 14:48:38      沙发
板蓝根 发表于 2023-6-5 18:07
怎么会mppvideodec 和 rtspsrc 放一起呢?

gst-play-1,0 rtsp://xxxx 测试一下

你好,我们按照管网教程安装ffmedia,运行"./demo rtsp://XXX -o 1280x720 -d 0 -r 90"没报错;
F:/微信图片_20230606144602.png

现运行demo_opencv.py遇到如下问题,提示ff_pymedia没有ModuleRtspClient函数:
F:/微信图片_20230606144307.png

请问有遇到过这个问题吗?
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-6 14:53:15      板凳
你好,我们按照管网教程安装ffmedia,运行"./demo rtsp://XXX -o 1280x720 -d 0 -r 90"没报错;


现运行demo_opencv.py遇到如下问题,提示ff_pymedia没有ModuleRtspClient函数:


请问有遇到过这个问题吗?怎么解决?


回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-6 15:18:30      地板
dengkx 发表于 2023-6-6 15:10
dist下只有3.8版本的whl,用python3.8直接跑demo.py,demo.py有全部的模块使用示例,区别是demo.py直接在回 ...

能提供编译好的python3.9,付费也可以的。我们的开发环境都是python3.9,当时装环境也是适配了很久。
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-6 15:22:38      5#
dengkx 发表于 2023-6-6 15:10
dist下只有3.8版本的whl,用python3.8直接跑demo.py,demo.py有全部的模块使用示例,区别是demo.py直接在回 ...

或者能提供下封装3.9whl的教程吗
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-6 17:54:57      6#
改成ff_pymedia-2.0.0-cp38-cp38-linux_aarch64.whl安装后,报错如下:


麻烦予以指导解决下,谢谢!
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-7 12:00:36      7#
dengkx 发表于 2023-6-7 09:40
这不是报错信息,使用py 加cv显示示例
./demo_opencv.py -i url -c 1 -b RGB24
./demo.py -i url -c 1  ...

嗯,好的,谢谢,有看到图片保存本地了,我们公司的产品经理也在跟贵公司的商务沟通中。我们的代码通过是opencv来调用rtsp流的,类似yolov5的 LoadStreams来处理实时视频的,请问demo_opencv.py里相关的ff-pymedia调用方法能否改成类似LoadStreams的方法,你们有过这方面的尝试吗?
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-7 14:44:08      8#
1、-c设置在165以内,demo_opencv.py可以正常运行,否则会报cannot allocate memory或者getTimeoutSample oxlfelb3a0等错误,请问这个参数的作用是什么?一般设置多大,我们要做实时视频流检测。
2、看到:
        for i in range(args.cvdisplay):
            cv_display.frame_list.append(last_module.newModuleMediaBuffer(m.BUFFER_TYPE.DRM_BUFFER_CACHEABLE))
请问上面代码跟下列代码是一样的作用吗,为了或者流的总帧数
           self.frames = max(int(cap.get(cv2.CAP_PROP_FRAME_COUNT)), 0) or float('inf')  # infinite stream fallback
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-7 17:09:28      9#
运行./demo_opencv.py -i url -c 150 -b RGB24后,瞬间起来多个demo_opencv.py的进程,CPU一下子爆满了,
请问这个多进程启动在哪里控制的呀?见下图:
回复

使用道具 举报

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2023-6-7 17:52:47      10#
dengkx 发表于 2023-6-7 17:36
demo_opencv.py里也很容易看出,-c 超过1 就是先申请多少块buf,然后模块运行起来,用队列的buf和rga模块 ...

好的,谢谢,我们再继续研究一下demo代码,遇到问题再向您请教。
回复

使用道具 举报

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

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表