autoexpect / ffmpeg_tutorial

ffmpeg->rockchip mpp decoding->rknpu rknn->opencv opengl rendering
29 stars 8 forks source link

编译完成后,运行报错:[h264_rkmpp @ 0x55999be120] Failed to send packet to decoder (code = -11) #2

Closed victorming666 closed 1 year ago

victorming666 commented 1 year ago

应该是ffmpeg-rockchip-4.1/libavcodec/rkmppdec.c的526行报错: QQ截图20221215142634 我这边编译的各个组件版本如下: ffmpeg-rockchip: 4.1 librga: release mpp: release opencv: 3.4.5(系统指定要用此版本,不影响程序运行) 最后target/bin/ffmpeg_tutorial rtsp://admin:xxxxxxxxxxxxxx@192.168.20.5/Streaming/Channels/202运行时,opencv窗口为空,屏幕报此错误: QQ截图20221215143205

victorming666 commented 1 year ago

我重新安装了librga,然后使用ffmpeg-rockchip-4.1.3编译了ffmpeg,现在可以正常运行了,但还有个问题,就是那个OpenCV的窗口一直都是灰的,我调整了窗口的帧率也没有用,而且看起来那个SHOW需要17秒多,这个是怎么回事啊? QQ截图20221215154334

autoexpect commented 1 year ago

可以先保存成图片看下,排查是图片源的问题还是显示问题

victorming666 commented 1 year ago

现在遇到一个问题:chmod 666 /dev/dri/card0后,RK3588的drm设备没有权限:“failed to open DRM:权限不够.”,如果chmod 755 /dev/dri/card0,程序直接报段错误退出,输出如下图:

argc=2, argv[1]=rtsp://admin:zonesion123@192.168.20.5/Streaming/Channels/202 init_rga_drm start... rknn_drm_init start... rknn_drm_init end OK. rknn_rga_init start... rknn_rga_init end OK init_rga_drm end OK! Loading mode... sdk version: 1.4.0 (3b4520e4f@2022-09-05T20:48:50) driver version: 0.7.2 model input num: 1, output num: 3 index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=4915200, fmt=NHWC, type=FP32, qnt_type=AFFINE, zp=-128, scale=0.003922 index=0, name=output, n_dims=5, dims=[1, 3, 85, 80], n_elems=1632000, size=1632000, fmt=UNDEFINED, type=INT8, qnt_type=AFFINE, zp=77, scale=0.080445 index=1, name=371, n_dims=5, dims=[1, 3, 85, 40], n_elems=408000, size=408000, fmt=UNDEFINED, type=INT8, qnt_type=AFFINE, zp=56, scale=0.080794 index=2, name=390, n_dims=5, dims=[1, 3, 85, 20], n_elems=102000, size=102000, fmt=UNDEFINED, type=INT8, qnt_type=AFFINE, zp=69, scale=0.081305 model is NHWC input fmt model input height=640, width=640, channel=3 Input #0, rtsp, from 'rtsp://admin:zonesion123@192.168.20.5/Streaming/Channels/202': Metadata: title : HIK Media Server V3.4.90 comment : HIK Media Server Session Description : standard Duration: N/A, start: 0.240000, bitrate: N/A Stream #0:0: Video: h264 (Main), yuvj420p(yuvj420p) (pc, bt709, progressive), 704x576, 25 fps, 25 tbr, 90k tbn, 50 tbc -->: avcodec_get_hw_config: h264_rkmpp [h264_rkmpp @ 0x559f1cc630] Decoder noticed an info change (704x576), format=0 > failed to open DRM:权限不够. rgaapi version 1.3.0[1] (2.1.0 base: $PRODUCT_BASE) Try to use uninit rgaCtx=(nil) fd-vir-phy-hnd-format[24, (nil), (nil), (nil), 0] rect[0, 0, 704, 576, 704, 576, 2560, 0] f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1] fd-vir-phy-hnd-format[4, (nil), (nil), (nil), 0] rect[0, 0, 640, 640, 640, 640, 512, 0] f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 0] This output the user patamaters when rga call blit fail Try to use uninit rgaCtx=(nil) fd-vir-phy-hnd-format[24, (nil), (nil), (nil), 0] rect[0, 0, 704, 576, 704, 576, 2560, 0] f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1] fd-vir-phy-hnd-format[5, (nil), (nil), (nil), 0] rect[0, 0, 1280, 720, 1280, 720, 1792, 0] f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 0] This output the user patamaters when rga call blit fail DETECT OK---->[65.329000ms] loadLabelName ./model/coco_80_labels_list.txt POST PROCESS OK---->[17469.788000ms] ---->car @ (1280 462 1280 720) 0.996784 ---->car @ (1262 462 1262 720) 0.996784 ---->car @ (1230 462 1230 720) 0.996784 ---->car @ (1198 462 1198 720) 0.996784 ---->car @ (1166 462 1166 720) 0.996784 ---->car @ (1134 462 1134 720) 0.996784 ---->car @ (1102 462 1102 720) 0.996784 ---->car @ (1070 462 1070 720) 0.996784 ---->car @ (1038 462 1038 720) 0.996784 ---->car @ (1006 462 1006 720) 0.996784

段错误: init_rga_drm start... rknn_drm_init start... failed to open card device... 请问一下,这个问题是不是RK3588的drm驱动有问题,还是我们调用接口代码不正确?另外,是否可以不使用drm+rga,直接就用opencv呢?

victorming666 commented 1 year ago

我chmod 666 /dev/rga后,权限问题解决了,但是又报以下错误: QQ图片20230109165716

RgaBlit(1361) RGA_BLIT fail: 无效的参数 RgaBlit(1362) RGA_BLIT fail: 无效的参数