Toybrick

楼主: jefferyzhang

RK3399Pro入门教程(6)硬件编解码器MPP库的使用

 

Doogi

新手上路

积分
14
发表于 2020-10-22 17:06:46 | 显示全部楼层
本帖最后由 Doogi 于 2020-10-27 09:40 编辑

更新:
编码时的报错如下:
linaro@linaro-alip:~/zh/mpp/my-build/test$ sudo ./mpi_enc_test -w 1920 -h 1080 -o /home/linaro/zh/1.h264 -t 7 -n 100
mpp[6955]: mpi_enc_utils: cmd parse result:
mpp[6955]: mpi_enc_utils: input  file name: (null)
mpp[6955]: mpi_enc_utils: output file name: /home/linaro/zh/1.h264
mpp[6955]: mpi_enc_utils: width      : 1920
mpp[6955]: mpi_enc_utils: height     : 1080
mpp[6955]: mpi_enc_utils: format     : 0
mpp[6955]: mpi_enc_utils: type       : 7
mpp[6955]: mpi_enc_test: mpi_enc_test start
mpp[6955]: mpp_rt: NOT found ion allocator
mpp[6955]: mpp_rt: found drm allocator
mpp[6955]: mpp_info: mpp version: db750eff author: Herman Chen   2020-10-12 [mpi_enc_test]: Add encoder frame skip config
mpp[6955]: mpi_enc_test: 0x8010f820 mpi_enc_test encoder test start w 1920 h 1080 type 7
mpp[6955]: h264e_api_v2: MPP_ENC_SET_PREP_CFG w:h [1920:1080] stride [1920:1080]
mpp[6955]: h264e_api_v2: MPP_ENC_SET_RC_CFG bps 7776000 [486000 : 8262000] fps [30:30] gop 60
mpp[6955]: mpp_enc_v2: send header for set cfg change input/format
mpp[6955]: mpp_enc_v2: mode vbr bps [486000:7776000:8262000] fps fix [30/1] -> fix [30/1] gop i [60] v [0]
mpp[6955]: mpp_device: mpp_device_send_reg ioctl VPU_IOC_SET_REG failed ret -1 errno 14 Bad address
mpp[6955]: hal_h264e_vepu1_v2: mpp_device_send_reg failed ret -1
mpp[6955]: mpp_enc_v2: mpp 0x8010f858 mpp_enc_hal_start:883  failed return -1
mpp[6955]: mpp_enc_v2: mpp 0x8010f858 mpp_enc_normal:1265 failed return -1
mpp[6955]: mpi_enc_test: 0x8010f820 encoded frame 0   
--------------------------------------------
我的问题已解决,原因是我没有用build目录下的脚本编译,而是自己用cmake命令进行编译,这样编译时没问题,但运行时会出各种问题,希望大家引以为戒。




回复

使用道具 举报

jianglin2045

新手上路

积分
33
发表于 2020-10-26 10:19:46 | 显示全部楼层
您好,博主
我在RK3300 Pro上面使用/usr/share/rockchip-mpp/example/编码例子发现:编码分辨率640x480格式(YUV片源->H264)时候I帧模糊P帧正常,做了测试码率越低模糊的越明显。
例程里就该了分辨率其它参数没有改变,请教一下这是什么元素引起的呢?
回复

使用道具 举报

闲花落地

注册会员

积分
135
发表于 2020-10-28 14:59:27 | 显示全部楼层
版主你好,直接用mpi的decode接口能解码jpeg吗?
回复

使用道具 举报

jefferyzhang

论坛元老

积分
8193
 楼主| 发表于 2020-10-28 15:49:23 | 显示全部楼层
闲花落地 发表于 2020-10-28 14:59
版主你好,直接用mpi的decode接口能解码jpeg吗?

sample里有,jpeg需要用advance api
回复

使用道具 举报

闲花落地

注册会员

积分
135
发表于 2020-10-28 16:22:47 | 显示全部楼层
jefferyzhang 发表于 2020-10-28 15:49
sample里有,jpeg需要用advance api

我刚测试了一张5184x3888的jpg,在解码后数据没有写入文件的情况下耗时是280毫秒,请问这个是正常的吗?有没有更快的解码方式?
回复

使用道具 举报

jefferyzhang

论坛元老

积分
8193
 楼主| 发表于 2020-10-28 19:45:44 | 显示全部楼层
闲花落地 发表于 2020-10-28 16:22
我刚测试了一张5184x3888的jpg,在解码后数据没有写入文件的情况下耗时是280毫秒,请问这个是正常的吗? ...

这颗芯片没有。具体耗时我不是很清楚,但是解码jpeg确实不会很快。
他唯一优势是不占用cpu
回复

使用道具 举报

闲花落地

注册会员

积分
135
发表于 2020-10-29 09:03:56 | 显示全部楼层
jefferyzhang 发表于 2020-10-28 19:45
这颗芯片没有。具体耗时我不是很清楚,但是解码jpeg确实不会很快。
他唯一优势是不占用cpu ...

哦哦,多谢
回复

使用道具 举报

Rereflyer

新手上路

积分
38
发表于 2020-10-29 12:25:40 | 显示全部楼层
你好,请教一下,使用mpp编码H264,设置输入帧率15,输出帧率15,编码成H264以后,拿VLC进行播放,发现播放速度是视频文件fps=15的两倍,也就是说,60秒的视频,30秒就播完了
这种情况大概会是哪个参数的设置问题,对比了sample,其他参数都是设置一样的
回复

使用道具 举报

Rereflyer

新手上路

积分
38
发表于 2020-10-30 09:29:09 | 显示全部楼层
Rereflyer 发表于 2020-10-29 12:25
你好,请教一下,使用mpp编码H264,设置输入帧率15,输出帧率15,编码成H264以后,拿VLC进行播放,发现播放 ...

应该是vlc的问题,拿ffplay播放是正常的
回复

使用道具 举报

lily393

注册会员

积分
56
发表于 2020-11-5 16:21:55 | 显示全部楼层
跑测试demo的时候,报这个错是什么原因啊?命令为:./mpi_dec_test -i 800_600.264  -t 7 n 10

firefly@firefly:~/rk3399/src/mpp-develop/build/test$ clear
firefly@firefly:~/rk3399/src/mpp-develop/build/test$ ./mpi_dec_test -i 800_600.264  -t 7 n 10
mpp[14256]: mpi_dec_test: cmd parse result:
mpp[14256]: mpi_dec_test: input  file name: 800_600.264
mpp[14256]: mpi_dec_test: output file name:
mpp[14256]: mpi_dec_test: config file name:
mpp[14256]: mpi_dec_test: width      :    0
mpp[14256]: mpi_dec_test: height     :    0
mpp[14256]: mpi_dec_test: type       : 7
mpp[14256]: mpi_dec_test: debug flag : 0
mpp[14256]: mpi_dec_test: max frames : 0
mpp[14256]: mpi_dec_test: mpi_dec_test start
mpp[14256]: mpi_dec_test: input file size 43997980
mpp[14256]: mpp_info: mpp version: unknown mpp version for missing VCS info
mpp[14256]: mpi_dec_test: 0xd249220 mpi_dec_test decoder test start w 0 h 0 type 7
mpp[14256]: mpp_rt: NOT found ion allocator
mpp[14256]: mpp_rt: found drm allocator
mpp[14256]: mpi_dec_test: 0xd249220 decode_get_frame get info changed found
mpp[14256]: mpi_dec_test: 0xd249220 decoder require buffer w:h [800:600] stride [800:608] buf_size 972800
mpp[14256]: mpp_device: mpp_device_send_reg ioctl VPU_IOC_SET_REG failed ret -1 errno 14 Bad address
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 0 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 1 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 2 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 3 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 4 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 5 err 1 discard 0
mpp[14256]: mpp_device: mpp_device_send_reg ioctl VPU_IOC_SET_REG failed ret -1 errno 14 Bad address
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 6 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 7 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 8 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 9 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 10 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 11 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 12 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 13 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 14 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 15 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 16 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 17 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 18 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 19 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 20 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 21 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 22 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 23 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 24 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 25 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 26 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 27 err 1 discard 0
mpp[14256]: mpi_dec_test: 0xd249220 decode get frame 28 err 1 discard 0
回复

使用道具 举报

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

本版积分规则

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


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