DevoutPrayer / streamer

This project is based on rk3399 mpp librarys and aims at publishing camera data into RTMP server.
GNU General Public License v3.0
56 stars 24 forks source link

编译通过,但在rk3399上运行时报错mpp_rt: NOT found ion allocator #1

Closed wangluolaowu closed 3 years ago

wangluolaowu commented 3 years ago

hello, 您好, 根据您的例程,我已经编译通过,但在firefly_rk3399上运行的时候,报如下错误,请问您遇到过吗?请提供下思路,谢谢;

在rk3399上运行报错如下: root@robot:/home/robot/project# ./stream_mpp 0: Motion-JPEG 1: YUYV 4:2:2 fmt.w=640,fmt.h=480 fmt.pixfmt=0x56595559 mpp[18780]: mpp_rt: NOT found ion allocator mpp[18780]: mpp_rt: found drm allocator mpp[18780]: mpp_info: mpp version: a86f586 author: Herman Chen 2021-02-07 [mpp_enc]: Fix crash on low frame rate case mpp[18780]: h264e_api_v2: MPP_ENC_SET_PREP_CFG w:h [640:480] stride [640:480] mpp[18780]: mpp_enc: send header for codec/prep cfg change mpp[18780]: mpp_enc: mode cbr bps [1500000:2000000:2500000] fps fix [30/1] -> fix [30/1] gop i [60] v [0] mpp[18780]: mpp_enc: MPP_ENC_SET_RC_CFG bps 2304000 [2160000 : 2448000] fps [30:30] gop 60 mpp[18780]: mpp_enc: send header for rc cfg change rc_mode/fps/gop mpp[18780]: mpp_enc: mode vbr bps [2160000:2304000:2448000] fps fix [30/1] -> fix [30/1] gop i [60] v [0] mpp[18780]: mpp_enc: send header for codec/prep cfg change mpp[18780]: mpp_enc: Please use MPP_ENC_GET_HDR_SYNC instead of unsafe MPP_ENC_GET_EXTRA_INFO mpp[18780]: mpp_enc: NOTE: MPP_ENC_GET_HDR_SYNC needs MppPacket input mpp[18780]: vepu_common: warning: stride by bytes 640 is smarller than width 640 mutiple by pixel size 2 mpp[18780]: vepu_common: multiple stride 640 by pixel size 2 and set new byte stride to 1280 encoded frame 0 size 164848 encoded frame 1 size 158414 encoded frame 2 size 157345 encoded frame 3 size 155799 encoded frame 4 size 145675 encoded frame 5 size 146224 encoded frame 6 size 145864 encoded frame 7 size 146738 encoded frame 8 size 146220 encoded frame 9 size 147040 encoded frame 10 size 147334 encoded frame 11 size 146437 encoded frame 12 size 147446 encoded frame 13 size 147590 encoded frame 14 size 147479 encoded frame 15 size 147683 encoded frame 16 size 148668 encoded frame 17 size 148411 encoded frame 18 size 147903 encoded frame 19 size 147755 encoded frame 20 size 147672 encoded frame 21 size 147892 encoded frame 22 size 147065 encoded frame 23 size 146996 encoded frame 24 size 146700 encoded frame 25 size 146274 encoded frame 26 size 146068 encoded frame 27 size 146551 encoded frame 28 size 146647 encoded frame 29 size 146710 Input #0, h264, from '/tmp/output.h264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 640x480, 30 fps, 30 tbr, 1200k tbn, 60 tbc Output #0, flv, to '(null)': Stream #0:0: Video: h264, yuv420p, 640x480, q=2-31, 60 tbc Segmentation fault (core dumped)

DevoutPrayer commented 3 years ago

程序执行是否加入了输出rtmp流的地址呢------------------ 原始邮件 ------------------ 发件人: "wangluolaowu"<notifications@github.com> 发送时间: 2021年2月26日(星期五) 中午11:14 收件人: "DevoutPrayer/streamer"<streamer@noreply.github.com>; 抄送: "Subscribed"<subscribed@noreply.github.com>; 主题: [DevoutPrayer/streamer] 编译通过,但在rk3399上运行时报错mpp_rt: NOT found ion allocator (#1)

DevoutPrayer commented 3 years ago

刚才做了一个简短的回复,不知道是否已经解决了你的问题,现在我再详细说明一下。 根据打印的调试信息可以看出v4l2的视频流是可以正常读出的。这一点可以通过使用yuv播放器打开/tmp/output.h264得到印证。 根据Output #0, flv, to '(null)':可以看出rtmp流输出地址为null,意味着没有输出流地址参数的传入。(程序不完善,没有对输入进行检查) 输出流地址可以由 main函数中init_rtmp_streamer(argv[1]);传入,也可以再编译程序之后由命令行参数传入。 还有一点,该程序目前只能获取摄像头yuv裸流数据进行编码,程序还未实现获取高清晰度视频数据并编码为rtmp流,未来我们也会加入新的功能,也希望你能加入。

wangluolaowu commented 3 years ago

您好,根据你的提示;我在命令后面加入rtsp地址,其中192.168.1.12是rk3399地址,请问rtmp流地址是这样配置的吗? 另:我把存储的h264文件通过vlc播放器可以正常播放;我rk3399上连接的是一个usb摄像头;

在rk3399上运行命令如下: root@robot:/home/robot/project# ./stream_mpp rtmp://192.168.1.12:1935/live/room1 0: Motion-JPEG 1: YUYV 4:2:2 fmt.w=640,fmt.h=480 fmt.pixfmt=0x56595559 mpp[2519]: mpp_rt: NOT found ion allocator mpp[2519]: mpp_rt: found drm allocator mpp[2519]: mpp_info: mpp version: a86f586 author: Herman Chen 2021-02-07 [mpp_enc]: Fix crash on low frame rate case mpp[2519]: h264e_api_v2: MPP_ENC_SET_PREP_CFG w:h [640:480] stride [640:480] mpp[2519]: mpp_enc: send header for codec/prep cfg change mpp[2519]: mpp_enc: mode cbr bps [1500000:2000000:2500000] fps fix [30/1] -> fix [30/1] gop i [60] v [0] mpp[2519]: mpp_enc: MPP_ENC_SET_RC_CFG bps 2304000 [2160000 : 2448000] fps [30:30] gop 60 mpp[2519]: mpp_enc: send header for rc cfg change rc_mode/fps/gop mpp[2519]: mpp_enc: mode vbr bps [2160000:2304000:2448000] fps fix [30/1] -> fix [30/1] gop i [60] v [0] mpp[2519]: mpp_enc: send header for codec/prep cfg change mpp[2519]: mpp_enc: Please use MPP_ENC_GET_HDR_SYNC instead of unsafe MPP_ENC_GET_EXTRA_INFO mpp[2519]: mpp_enc: NOTE: MPP_ENC_GET_HDR_SYNC needs MppPacket input mpp[2519]: vepu_common: warning: stride by bytes 640 is smarller than width 640 mutiple by pixel size 2 mpp[2519]: vepu_common: multiple stride 640 by pixel size 2 and set new byte stride to 1280 encoded frame 0 size 205648 encoded frame 1 size 186380 encoded frame 2 size 182878 encoded frame 3 size 181734 encoded frame 4 size 185204 encoded frame 5 size 181633 encoded frame 6 size 182427 encoded frame 7 size 182099 encoded frame 8 size 181454 encoded frame 9 size 182442 encoded frame 10 size 183748 encoded frame 11 size 182845 encoded frame 12 size 181860 encoded frame 13 size 181924 encoded frame 14 size 182934 encoded frame 15 size 181678 encoded frame 16 size 183626 encoded frame 17 size 181932 encoded frame 18 size 181612 encoded frame 19 size 183311 encoded frame 20 size 184529 encoded frame 21 size 181725 encoded frame 22 size 182145 encoded frame 23 size 185333 encoded frame 24 size 184049 encoded frame 25 size 182988 encoded frame 26 size 182302 encoded frame 27 size 183005 encoded frame 28 size 183524 encoded frame 29 size 184953 [h264 @ 0x24e9aa00] Stream #0: not enough frames to estimate rate; consider increasing probesize Input #0, h264, from '/home/robot/project/output.h264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 640x480, 30 fps, 30 tbr, 1200k tbn, 60 tbc Output #0, flv, to 'rtmp://192.168.1.12:1935/live/room1': Stream #0:0: Video: h264, yuv420p, 640x480, q=2-31, 60 tbc RTMP_Connect0, failed to connect socket. 111 (Connection refused) encode max 30 framesCould not open output URL 'rtmp://192.168.1.12:1935/live/room1'Error occurred. Segmentation fault (core dumped)