zlmediakit 新增可以使用硬件加速的转码http api接口方法

这篇具有很好参考价值的文章主要介绍了zlmediakit 新增可以使用硬件加速的转码http api接口方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

根据项目需求,我们需要使用硬件解码的方式进行网络摄像头数据帧的解析,给到算法模块使用

1、通过ffmpeg命令实验,ffmpeg -i IPC_URL -f rtsp rtsp://*/live

该命令默认是使用cpu进行解码的,我们需要使用GPU进行解码。

2、ffmpeg硬件加速,这个需要安装相关的驱动,并且在编译ffmpeg的时候,增加cuda编译,这样通过

ffmpeg -hwaccel cuvid -i IPC_URL -f rtsp rtsp://*/live,就可以使用gpu进行解码了。

3、以上两种方法只是直接使用 ffmpeg进行转码了,但是无法我们无法破坏ffmpeg指令过程,获取到解码得到的帧数据

4、查看zlmediakit里面提供的接口,默认的推流、拉流都是不通过ffmpeg的,无法通过ffmpeg相关方法得到数据帧。

5、查看zlmediakit api接口,发现有个ffmpegSource接口,验证这个接口的作用。

      发现这个就是在zlmediakit里面调用了ffmpeg命令,进行拉流转码的。也无法满足我们的需求

6、决定对mk_transcode.cpp模拟ffmpegSource进行封装。并提供http api接口。

     发现player_opencv.c测试代码里面,有提取fame的方法。

 //todo 此处转换为opencv对象
    cv::Mat *mat = new cv::Mat();
    mat->create(h, w, CV_8UC3);
    mk_swscale_input_frame(ctx->swscale, frame,  (uint8_t *) mat->data);

 7、http api接口增加方法

     因为http api是通过postman来发起的,需要修改postman里面的json collect 数据集,增加两个接口,一个是转码开始,一个是转码结束的接口。

  zlmediakit 新增可以使用硬件加速的转码http api接口方法

这里需要注意的点,GET后面的api 参数一定要与webapi.cpp 里面api_regist注册的相同

8、http请求方法好了,需要提供对应的处理代码

    需要在webapi.cpp installWebApi里面增加相关处理代码。

 api_regist("/index/api/addTranscodeFFmpeg",[](API_ARGS_MAP_ASYNC)

这里需要增加自己封装的类FFmpegTranscode

通过在postman里面增加的ffmpeg转码接口,发起请求,处理的地方就会到webapi.cpp里面的api_regist("/index/api/addTranscodeFFmpeg" ,也就是HTTP Get/post方法 

代码到这里,我觉得完成了。进行测试,发现http只有 方法请求,但是一直没有response。

9、查看ffmpegsource方法

 //推流给自己成功
                cb(SockException());里面有这个回调,加上一切ok。

 

     文章来源地址https://www.toymoban.com/news/detail-442788.html

到了这里,关于zlmediakit 新增可以使用硬件加速的转码http api接口方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 加速FFmpeg转码

    加速FFmpeg转码

    FFmpeg是多媒体处理的出色工具,默认情况下,它使用具有多线程的CPU来执行任务,这会给您的服务器带来很高的负载,并且在大多数情况下会很慢,例如使用FFmpeg将RTSP流转码成HLS流或FLV流输出时,服务器同时开启50路转码任务时,服务器资源会耗尽,输出的视频流会花屏、卡

    2023年04月09日
    浏览(9)
  • RuoYi若依框架的使用(新增侧边栏菜单并可以打开)

    RuoYi若依框架的使用(新增侧边栏菜单并可以打开)

    2022.12.06今天我学习了如何使用若依框架做一个侧边栏的菜单,并且可以打开对应的页面。 一、菜单管理页面 首先在菜单管理页面新增主目录。 如:   自己设置一个路由地址。 二、新增子菜单 然后在创建好的主菜单中再新增子菜单。 如:   组件路径和权限字符的路径一样

    2024年02月12日
    浏览(15)
  • 安防监控视频云存储EasyCVR平台H.265转码功能更新:新增分辨率配置

    安防监控视频云存储EasyCVR平台H.265转码功能更新:新增分辨率配置

    安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、

    2024年02月12日
    浏览(8)
  • Jellyfin使用Intel QuickSync(QSV)硬件加速 on Docker

    Jellyfin使用Intel QuickSync(QSV)硬件加速 on Docker

    环境及说明 设备:威联通451D(CPU为J4025,核显支持intel qsv) jellyfin版本:10.7.7 部署:docker (linuxserver/jellyfin) docker环境下jellyfin开启硬解请转至: 威联通NAS搭建jellyfin影音库:docker环境一行脚本部署(支持硬件解码、海报刮削) 上文中硬解采用了Video Acceleration API(VAAPI),

    2024年02月06日
    浏览(11)
  • 安防视频汇聚平台EasyCVR视频监控综合管理平台H.265转码功能更新,新增分辨率配置的具体步骤

    安防视频汇聚平台EasyCVR视频监控综合管理平台H.265转码功能更新,新增分辨率配置的具体步骤

    安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、

    2024年02月12日
    浏览(11)
  • 国庆加速度!新增功能点锁定功能,敏捷开发新增估算功能,助力项目快速突破!

    国庆加速度!新增功能点锁定功能,敏捷开发新增估算功能,助力项目快速突破!

            大家好,CoCode开发云旗下Co-Project V3.6智能项目管理平台正式发布,平台新增功能点锁定功能、敏捷开发模式新增估算板块和两种估算方式。         功能点锁定功能进一步提高了项目估算的灵活性和准确性,有利于提高项目估算效率;而敏捷开发模式全新升级

    2024年02月07日
    浏览(11)
  • EasyDarwin计划新增将各种流协议(RTSP、RTMP、HTTP、TCP、UDP)、文件转推RTMP到其他视频直播平台,支持转码H.264、文件直播推送

    EasyDarwin计划新增将各种流协议(RTSP、RTMP、HTTP、TCP、UDP)、文件转推RTMP到其他视频直播平台,支持转码H.264、文件直播推送

    之前我们尝试做过EasyRTSPLive(将RTSP流转推RTMP)和EasyRTMPLive(将各种RTSP/RTMP/HTTP/UDP流转推RTMP,这两个服务在市场上都得到了比较多的好评,其中: 1、EasyRTSPLive用的是EasyRTSPClient取流,EasyRTSPClient只支持RTSP取流,所以,EasyRTSPLive就只能做RTSP流的转推功能; 2、EasyRTMPLive用的是

    2024年01月19日
    浏览(9)
  • ffmpeg 硬件加速介绍

    ffmpeg 硬件加速介绍

    参考[2],基于windows的硬件加速都是基于DirectX API,我们可以用ffmpeg -hwaccels查看当前环境支持的硬件加速接口,如下为windows上的执行ffmpeg --hwaccels的结果。 在linux上执行ffmpeg -hwaccels的结果如下: 可以看到windows上支持的硬件加速接口比较多,其中dxva2,d3d11va都为DirectX的硬件加

    2024年02月21日
    浏览(10)
  • Jetson硬件平台状态查看工具jtop安装,服务器平台上可以通过nvtop工具来查看资源使用情况

    首先安装支持环境包(maybe…need) sudo apt-get install git cmake sudo apt-get install python3-dev sudo apt-get install libhdf5-serial-dev hdf5-tools sudo apt-get install libatlas-base-dev gfortran 安装 pip3 因为最终需要用 pip3 安装,所以这一步是不可缺少的。 sudo apt install python3-pip 安装 jtop sudo -H pip3 install -U jetso

    2023年04月23日
    浏览(12)
  • N5105 软路由安装 ESXi 7 直通核显给 Debian / Ubuntu 虚拟机通过 Docker 实现 jellyfin 硬件转码视频文件(硬解/编码)

    N5105 软路由安装 ESXi 7 直通核显给 Debian / Ubuntu 虚拟机通过 Docker 实现 jellyfin 硬件转码视频文件(硬解/编码)

    在ESXi 7.0u3e里直通N5105的核显给虚拟机Debian 11/Ubuntu 22.04(更新到5.18内核),再套用Docker镜像nyanmisaka/jellyfin (10.8.1) 启用硬件转码。 测试片源 America.Wild.National.Parks.Adventure.2016.BluRay.2160p.x265.10bit.HDR.2Audio.mUHD-FRDS.mkv ,关硬件转码1080p 10Mbits CPU 100%+卡顿,开硬件转码不报错CPU 50%左右流

    2023年04月14日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包