• <tr id='TNHT9Z'><strong id='TNHT9Z'></strong><small id='TNHT9Z'></small><button id='TNHT9Z'></button><li id='TNHT9Z'><noscript id='TNHT9Z'><big id='TNHT9Z'></big><dt id='TNHT9Z'></dt></noscript></li></tr><ol id='TNHT9Z'><option id='TNHT9Z'><table id='TNHT9Z'><blockquote id='TNHT9Z'><tbody id='TNHT9Z'></tbody></blockquote></table></option></ol><u id='TNHT9Z'></u><kbd id='TNHT9Z'><kbd id='TNHT9Z'></kbd></kbd>

    <code id='TNHT9Z'><strong id='TNHT9Z'></strong></code>

    <fieldset id='TNHT9Z'></fieldset>
          <span id='TNHT9Z'></span>

              <ins id='TNHT9Z'></ins>
              <acronym id='TNHT9Z'><em id='TNHT9Z'></em><td id='TNHT9Z'><div id='TNHT9Z'></div></td></acronym><address id='TNHT9Z'><big id='TNHT9Z'><big id='TNHT9Z'></big><legend id='TNHT9Z'></legend></big></address>

              <i id='TNHT9Z'><div id='TNHT9Z'><ins id='TNHT9Z'></ins></div></i>
              <i id='TNHT9Z'></i>
            1. <dl id='TNHT9Z'></dl>
              1. <blockquote id='TNHT9Z'><q id='TNHT9Z'><noscript id='TNHT9Z'></noscript><dt id='TNHT9Z'></dt></q></blockquote><noframes id='TNHT9Z'><i id='TNHT9Z'></i>

                多路RTSP流解码

                2019-12-24 16:20

                ????????RK3399/RK3328具有强大的视频编解码能∑ 力,Soc集成的硬件视频→编解码器VPU,能同时处理多路视频的编解码,Soc集成的图形加速引擎RGA, 可以高效地处理图形缩放、旋转、颜色空间转换等操作。结合VPU和RGA,可以高效地实现视频流的解码和▼后处理,作为第三方应用处理的数据源。


                调用API


                ????????Rockchip开发的mpp库,提供了非常易于使用API,通过各种不同的控制项,可以适应多种不同场〖景的视频编解码应用。



                硬件准备

                ?

                ????????RK3399平台:AIO-3399C主板 + 12路摄像头


                1577175760285749.jpg


                ????????RK3328平台:RK3328行业主板 + 6路摄像头


                1577175800403548.jpg


                运行Demo

                ?

                ????????Firefly在RK3399和RK3328 Ubuntu平台上, 针对目前最常见的场景,提供了一个←多路RTSP流解码的Demo,Demo支持在RK3399平台上, 同时解12路H264/H265 RTSP,测试流帧率为●25fps,无丢帧,低延时,CPU占用率较低(基本只用于RTSP流接※收和封包)。在RK3328平台上,同时能解6路H264/H265 RTSP。


                1577175922346646.jpg


                运行过程

                ?

                ????????Demo中,MPP解码->图像后处理->显示︾整个流程中,VPU和RGA都是直接访问内存物理地址,整个过程零内存拷贝,效率很高。处理后的数据,通过libdrm接口,直接送往显示接口输∏出。

                ????????Demo对解码后的图像输出数据,只做了显示处理,如果在实际应用中需要对图像做处理,可能会导致帧率下降。


                演示效果

                ?

                运行时效果图如下:


                1577176165662008.png


                实时帧率


                实时帧率计算结果如下:

                帧率.jpg

                安装方法


                Demo运行在RK3399 或 RK3328 Ubuntu 18.04平台上。

                ?

                1. 确认系统中存在 /dev/rga 设备节点。 如果没有此节◤点, 请参考wiki更新最新的固件。

                2.?安装:


                ????$?sudo?apt?update????
                ????$?sudo?apt?install?firefly-multi-rtsp


                3.根据实际↓环境,修改配置文件。 参照下一节配置参数。

                4. 运行:


                ????$?sudo?test_ff_rtsp_dec


                5. 退出:


                运行过程中,按Enter键,退出Demo, 由于退出时需要关闭多路rtsp流,所以退※出时需要稍作等待。


                配置参数

                ?

                Demo中提供了一个配置文件config.json,用于配置demo的运行环境。

                ?

                配置文〗件位于/etc/ff_rtsp_dec/config.json ,json格式。(注意不要在config.json中【添加注释,否则可能会导致json解析出错)


                主要配置项如下


                基础参数:


                ????"basepara"?:?{
                ????????"dri_path"?:?"/dev/dri/card0",??//不要修改
                ????????
                ????????"prefer_monitor_w"?:?1920,?
                ????????"prefer_monitor_h"?:?1080,
                ????????
                ????????"code_type"?:?"H265",?//rtsp流编码类型,H264/H265
                ?????????"line_count"?:?12,??//rtsp流数量
                ?????????
                ?????????"output_w"?:?480,??//每一路解码后的◇输出size.
                ?????????"output_h"?:?360,
                ?????????
                ?????????"rotate"?:?0?//旋转???未使用
                ?????????
                ?????????},


                其中prefer_monitor_w 和 prefer_monitor_h是配置外接显示设备的分辨率。

                ?

                1. 配置外接显示设备的分辨率,仅在显示设备支持多种分辨率(如HDMI、DP等显示器)时有效,如果显示设备支持该分辨率,则将显示设备设置为◤该分辨率。

                ?

                2. LVDS, MIPI屏该配置无〖效(但仍需保留该配置项,只是配置值无效),因为LCD支持一种分辨率。

                ?

                3. 配置此参数后,Demo将显示设备设□置为对应的分辨率,然后计算该分辨率是否能够完整显示所有路RTSP解码后的输出。如果不能显示,应该减小rtsp流数量,或者减小输出尺寸。


                ????line_h?=?prefer_monitor_w?/?output_w;?
                ????line_v?=?prefer_monitor_h?/?output_h;?
                ????line_h?*?line_v?<=?line_count


                RTSP 参数


                ????"rtsp"?:?[
                ????????{
                ????????????"id"?:?0,?//id
                ????????????"url"?:?"rtsp://168.168.3.100:554/av_stream",???//url
                ????????????"usr"?:?"admin",?//username
                ????????????"pwd"?:?"firefly123",?//password
                ????????????"tcp"?:?false?//?Is?tcp?
                ?????????},
                ??????...
                ??????]


                RTSP参数为一个数组,配置每一路rtsp流的参数。









                热门案例