alexw914/RK_VideoPipe

环境搭建能详细说明么?

Opened this issue · 6 comments

感谢辛苦付出,我在尝试运行时,遇到一些环境问题,gstreamer和ffmpeg方面能详细说明么?

我在运行时出现如下错误:

[2024-05-24 16:49:09] [Info] [rtsp_src_0] [filesrc location=assets/videos/person.mp4 ! qtdemux ! h264parse ! mppvideodec ! videoconvert ! appsink]
[2024-05-24 16:49:09] [Warn] [rk_yolo_0] cv::dnn::readNet load network failed!
terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_2::detail::parse_error'
  what():  [json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON

运行test_model.py,显示时rknn版本问题,请问,能提供onnx文件么?

(rknn) orangepi@orangepi5plus:~/develop/RK_VideoPipe/python$ python test_model.py 
I RKNN: [16:42:58.083] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22)
I RKNN: [16:42:58.083] RKNN Driver Information: version: 0.8.2
W RKNN: [16:42:58.083] Current driver version: 0.8.2, recommend to upgrade the driver to the new version: >= 0.8.8
I RKNN: [16:42:58.084] RKNN Model Information: version: 6, toolkit version: 1.6.0+81f21f4d(compiler version: 1.6.0 (585b3edcf@2023-12-11T07:42:56)), target: RKNPU v2, target platform: rk3588, framework name: ONNX, framework layout: NCHW, model inference type: static_shape
W RKNN: [16:42:58.084] RKNN Model version: 1.6.0 not match with rknn runtime version: 1.5.2
I RKNN: [16:42:58.174] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22)
I RKNN: [16:42:58.174] RKNN Driver Information: version: 0.8.2

先安装gstreamer和ffmpeg, 需要支持rk的插件, 这个一般厂家提供的系统会自带安装好的。gstreamer可以先装好再装那个gstreamer-rockchip插件、ffmpeg需要带插件编译,可以再github搜索,ubuntu系统可以用ppa仓库安装: ppa:liujianfeng1994/rockchip-multimedia

第一个问题json读错了,可能是执行插件的位置不对,我用的相对路径,如果远程编译,可以用filesystem改一下运行的文件夹目录或者改绝对目录。都在assets目录

第二个问题我驱动是1.6.0版本,但是你这没报错不需要管,onnx我可能找不到了。你可以按照配置文件放自己的模型。

感谢答复,升级rknn_toolkits2到1.6.0后,测试用的python代码都正常运行,虽然还是有提示:

W RKNN: [16:42:58.083] Current driver version: 0.8.2, recommend to upgrade the driver to the new version: >= 0.8.8

尝试运行main.cc时,遇到了,如下错误:

(rk_videopipe:14352): GLib-CRITICAL **: 11:11:53.358: Failed to set scheduler settings: Operation not permitted
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1063) open OpenCV | GStreamer warning: unable to query duration of stream

(rk_videopipe:14352): GStreamer-CRITICAL **: 11:11:53.583: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed

(rk_videopipe:14352): GStreamer-CRITICAL **: 11:11:53.583: gst_structure_get_int: assertion 'structure != NULL' failed
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1079) open OpenCV | GStreamer warning: cannot query video width/height

(rk_videopipe:14352): GStreamer-CRITICAL **: 11:11:53.583: gst_structure_get_fraction: assertion 'structure != NULL' failed
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1085) open OpenCV | GStreamer warning: cannot query video fps
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1100) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
[2024-05-26 11:11:53] [Info] [rtsp_src_0] reading frame complete, total frame==>-1
[2024-05-26 11:11:53] [Info] [rtsp_src_0] cycle flag is true, continue!
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (2075) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module qtdemux0 reported: Internal data stream error.
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (651) startPipeline OpenCV | GStreamer warning: unable to start pipeline
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1063) open OpenCV | GStreamer warning: unable to query duration of stream

跟踪代码发现,初始化管道都没有问题,在src_0->start();后出现问题,
执行, gst-launch-1.0 -v filesrc location=assets/videos/person.mp4 ! qtdemux ! h264parse ! mppvideodec ! videoconvert ! autovideosink,也正常能显示。我现在的opencv版本是4.5.5,和这个有关么?

感谢答复,升级rknn_toolkits2到1.6.0后,测试用的python代码都正常运行,虽然还是有提示:

W RKNN: [16:42:58.083] Current driver version: 0.8.2, recommend to upgrade the driver to the new version: >= 0.8.8

尝试运行main.cc时,遇到了,如下错误:

(rk_videopipe:14352): GLib-CRITICAL **: 11:11:53.358: Failed to set scheduler settings: Operation not permitted
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1063) open OpenCV | GStreamer warning: unable to query duration of stream

(rk_videopipe:14352): GStreamer-CRITICAL **: 11:11:53.583: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed

(rk_videopipe:14352): GStreamer-CRITICAL **: 11:11:53.583: gst_structure_get_int: assertion 'structure != NULL' failed
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1079) open OpenCV | GStreamer warning: cannot query video width/height

(rk_videopipe:14352): GStreamer-CRITICAL **: 11:11:53.583: gst_structure_get_fraction: assertion 'structure != NULL' failed
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1085) open OpenCV | GStreamer warning: cannot query video fps
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1100) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
[2024-05-26 11:11:53] [Info] [rtsp_src_0] reading frame complete, total frame==>-1
[2024-05-26 11:11:53] [Info] [rtsp_src_0] cycle flag is true, continue!
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (2075) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module qtdemux0 reported: Internal data stream error.
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (651) startPipeline OpenCV | GStreamer warning: unable to start pipeline
[ WARN:1] global ./modules/videoio/src/cap_gstreamer.cpp (1063) open OpenCV | GStreamer warning: unable to query duration of stream

跟踪代码发现,初始化管道都没有问题,在src_0->start();后出现问题, 执行, gst-launch-1.0 -v filesrc location=assets/videos/person.mp4 ! qtdemux ! h264parse ! mppvideodec ! videoconvert ! autovideosink,也正常能显示。我现在的opencv版本是4.5.5,和这个有关么?

请问你的问题解决了吗?怎么解决的?我也遇到了同样的问题。