![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编解码
文章平均质量分 77
洛克希德马丁
当你凝视深渊的时候深渊也在凝视你!
展开
-
gstreamer+qt5实现简易视频播放器
最近在研究mpp,通过gstreamer实现了硬解码,但是我在想我可能需要一个播放器,我之前学过qt5所以就选择了qt5来结合gstreamer开发一个简单的播放器。今天的环境基于Windows,后续会把Linux的也补上的。注意:基于QT5,我觉得因为全平台特性,可能QT5比MFC还是有优势,代码只需要小改就可以轻松移植。1、不算太难,复杂的应用还需要继续琢磨。2、Windows上还是简单,我最终的目标是在开发板上实现gstreamer+qt5+硬解码播放,开发板上没有统一的接口。原创 2024-06-18 11:24:16 · 957 阅读 · 0 评论 -
dos格式文档转unix格式
有时候我们在windows上编译的文件(主要是文本文档)拿到Linux(类Unix系统)上会发现出了很多乱码,这是因为两个系统上默认的格式有差异,不要着急,简简单单改下就行了。1、很简单却很实用,建议在操作前进行转换省去很多麻烦。2、还有个工具叫unix2dos,默认安装了dos2unix就会伴生安装,其实就是转回来的意思。原创 2024-06-17 17:33:09 · 408 阅读 · 0 评论 -
Windows11安装并使用Gstreamer-1.0
Gstreamer这个工具的重要性就不用多说了吧,在一些视频播放和解码领域大放异彩。以前更多的是在Linux环境下使用它,今天介绍下在Windows环境使用。1、方法蛮简单的,用来当测试工具蛮好的,和主流播放器还有差距。原创 2024-06-16 20:52:10 · 442 阅读 · 0 评论 -
gstreamer+mpp调用硬解码播放视频
以前一直在MPP上开发硬解码推理,最近想弄一个盒子支持调用mpp硬解码播放视频的。我使用的盒子是firefly的rk3399,这个板子的cpu说强也不强,说弱也不算太弱。1、目前实现了视频播放,接下来研究chrome硬解码和播放器硬解码。原创 2024-06-06 21:05:07 · 286 阅读 · 0 评论 -
C++结合ffmpeg获取声音的分贝值
最近面对一个需求,就是需要传递声音文件到模型里推理完成语音转文字,问题是我们使用的是麦克风啊,由于这个特殊属性就需要有一个合理的方法来判断声音的开始,声音的结束和声音的长度。像科大讯飞这样的库已经有这个功能了,如果遇到没有这个功能的怎么办,还得靠自己。方法其实有很多,我们这里使用根据分贝来判断,首先就需要获取到分贝。1、代码完全基于单声道音频,没对多声道进行处理,理论上除了参考值不同对多声道音频也是能处理的。原创 2024-06-04 15:18:24 · 902 阅读 · 0 评论 -
香橙派 AiPro硬解码能力详细测试
拿到这块开发板的时候号称可以同时硬解码20路1080p@30fps,事实是否真的如此,让我们拭目以待。1、官方诚不欺我,事实如此。2、编码能力标称是20路1080p@30fps,有时间再测测。原创 2024-05-30 15:05:19 · 417 阅读 · 0 评论 -
Linux系统上C++使用alsa库播放声音文件
平常读麦克风的场景居多,有时候也需要播放一个声音文件,这里就介绍怎么处理。1、不算太难。原创 2024-04-23 18:48:47 · 484 阅读 · 0 评论 -
多系统使用ffmpeg读取麦克风数据
最近在搞一个项目需要用到麦克风读取数据并分析,我的开发环境是Ubuntu-22.04,这个操作系统的声音架构是基于alsa+pulseaudio构建的,18.04和20.04一样。这里我会稍微向你展示下alsa和pulseaudio的些许差别,当然这只是这个系统的冰山一角,感兴趣的可以继续研究下去。1、方法不止这些,还需要继续研究。原创 2024-03-26 21:49:35 · 1051 阅读 · 0 评论 -
Ubuntu开启麦克风降噪功能
最近有个项目需要使用到麦克风,研究起来才发现其中的门道那是相当多。平常我们使用麦克风都是基于Windows系统居多,Ubuntu上以我目前的研究阶段基本上觉得有声音的程度吧。今天基于这个跨度的系统都能用,其它的请自测。1、真实的麦克风比上面说的要复杂,感兴趣的可以深入研究下2、仅仅借助现有的软件和配置总是比Windows差点意思,好多软件Linux上也不支持3、如果要实现更好的效果可能要自己动手开发降噪算法,要不然就只能在Windows上鼓捣了,也能节省很多时间成本。原创 2024-03-21 22:09:44 · 1074 阅读 · 0 评论 -
记录一个Ubuntu-18.04上ffmpeg遇到的一个奇葩bug
要不是亲眼所见,打死我都不相信。安装的ffmpeg无缘无故突然访问不了了。原创 2024-03-15 16:27:44 · 399 阅读 · 0 评论 -
ffmpeg命令行实现音频通道分离
有时候开发上可能会面对一个场景,就是对于一个双声道的音频怎么样将所有的通道分离出来存到单独的文件里面,今天就给你答案。最常用的应该就是立体声了,同时拥有左右声道。最常用的还是立体声,所以,今天就基于立体声来操作。1、总体不难,这里只分离了音频通道,没有进行复杂的操作。原创 2024-02-27 18:01:25 · 960 阅读 · 0 评论 -
ffmpeg使用命令实现音视频分离
有时候由于特殊需要可能需要将一个视频(带音频)的视频流和音频流分离,今天就简单说下这个问题。本次经历的过程主要是读取文件->解复用->编码->封包->写入文件。其中如果没有改变流的编码方式,就不需要重新编码。1、很实用,但ffmpeg的强大功能只是冰山一角。原创 2024-02-27 17:24:09 · 1348 阅读 · 0 评论 -
Ubuntu-22.04上使用硬解码播放视频
现在Ubuntu做的越来越好了,很多人拿它来当主力机用,有时候总会有些看电影的需求。如果视频软件不支持硬解码那真是糟心了,大量占用CPU资源,增加功耗,也会导致卡顿。接下来我就推荐几个支持硬解码的视频播放软件,并详细阐述下设置。由于我的电脑搭载了很垃圾的Radeon 530M独显,这个独显据我所知是不支持硬解的,所以这篇基于Intel的HD系列核显。我的配置:GPU:UHD6201、没什么特别难的2、Chrome支持硬解还要麻烦些,以后再说。原创 2024-01-31 14:50:08 · 2271 阅读 · 3 评论 -
Ubuntu录屏方法带声音
有时候需要在Ubuntu录制下屏幕,在Windows下面录制比较简单使用Nvidia自带的效果就蛮好,如果不是N卡就使用系统自带的录制功能,可以说没有几千种也有几百种了。1、Gnome桌面自带一个录制功能和Windows11的比较类似,但是我的有bug用不了2、这个是比较好用的软件,功能也多,能满足绝大多数人的需求了。原创 2023-12-20 14:26:37 · 887 阅读 · 0 评论 -
ffmpeg+intel核显实现硬解码
之前写了一篇关于ffmpeg+nvcuvid实现硬解码的文章,最近得到一个只有intel集显的笔记本电脑,cpu是比较垃圾的5200U,核显是HD5500,也是个有年头的老爷机了吧。因为intel解码没有nvidia那么热门,以目前只研究出来解码,暂时没研究出来编码。还是由于nvidia在AI领域的地位,导致目前生态很好,使用起来也几乎没有什么障碍,可以说是最简单的了。相比来讲amd和intel在这些领域就冷门了,好多东西搞起来不是那么容易。原创 2023-08-10 15:23:46 · 4218 阅读 · 0 评论 -
WSL2安装CentOS7和CentOS8
Windows11官方WSL2已经支持UbuntuOpen SUSEDebian和Oracle等等发行版,由于CentOS也是非常经典的一个发行版,由于官方尚未提供安装方式,所以我整理了下安装方式给有需要的人,方法很简单。1、有CentOS需求的福音2、只支持CentOS8和CentOS7两个发行版。原创 2023-08-03 10:11:23 · 4503 阅读 · 0 评论 -
ffmpeg最简单方式支持nvidia硬编解码
因为工作内容的需要,之前写过一篇文章关于ffmpeg支持英伟达的硬编解码,那个方法比较适合定制化的ffmpeg编译,如果你仅仅使用ffmpeg进行硬件编解码的话,其实不需要这么麻烦。ffmpeg定制化编译支持cuda编解码1、同时需要ffmpeg和nvidia的支持,不同的版本可能效果不一样。2、也有可能ffmpeg早期版本就已经支持nvidia了,只不过我用的最低Ubuntu版本是18.04,所以没法确认。原创 2023-07-25 11:11:48 · 3233 阅读 · 0 评论 -
【在 WSL2 GUI 中使用 pulseaudio 播放声音】
最近在搞一个Linux项目,由于WSL2中需要用到声音外放,无奈只能潜心研究。后来就使用了一种折中的方式替代,那就是pulseaudio。目前来讲WSL2对硬件外设的支持还是不太友好,关于USB的支持我之前在其他文章中已经论述过了,这里不讨论。1、Windows11别忘记打开声音2、可能有一定延迟,因为是通过网络传输的。3、效果的话只能见仁见智了,如果不能满足要求就安装一个实实在在的Ubuntu吧!原创 2023-07-12 15:00:50 · 2484 阅读 · 4 评论 -
RK3399实际编码能力
最近在做一个项目,需要用到RK3399的硬解码和硬编码,硬解码的之前的文章已经论述过了,这里就不再赘述了,今天讨论下硬编码。RK3399实际解码能力测试提示:以下是本篇文章正文内容,下面案例可供参考RK3399是国内厂商瑞芯微基于ARM架构研发的一款芯片,采用28nm HPM制程,拥有4A53+2A72的大小核架构,其中A53是能效核,A72是性能核。集成了硬件编解码器,支持H264/H265/VP8/VP9等解码,支持H264/VP8/MVC编码,图片支持JPEG编码和解码。原创 2023-03-16 14:07:22 · 1579 阅读 · 2 评论 -
OpenCV+V4L实现MJPG格式拉取USB摄像头
最近在做一个项目,由于条件限制不能使用RTSP摄像头,所以采用了USB摄像头。由于USB摄像头本身的限制使得它的YUV编码帧率受限,在1920X1080的分辨率下只有可怜的5帧,不能满足要求。我继而转向MJPG,虽然图像质量损失了一些,帧率可以达到30FPS,能够满足要求。系统:Ubuntu18.04CPU:aarch64或x86_641、方法还是比较简单的,如果使用USB摄像头一定要把V4L加上,不然可能导致一些功能失效。如果是rtsp摄像头V4L就不是必须的了。...原创 2022-08-04 18:08:20 · 3171 阅读 · 0 评论 -
Xavier NX 使用OpenCV+GStreamer实现硬解码
最近在NX上做一个项目,需要把rtsp流出来的图片送入AI推理,结果发现OpenCV的VideoCapture使用的是软解码大量消耗了cpu的资源影响了实际效果。我只能把解码这部分送到硬件解码器去处理,分摊掉cpu的压力,接下来我就具体说说怎么处理。由于我手上用的是NX,所以本教程是基于XavierNX的,不排除其他Jetson产品也能用,这个需要大家自行测试。我用的是Jetpack4.4.2版本,OpenCV预装4.5.4不带GStreamer的,需要删除重新编译。httpshttps。...原创 2022-07-22 13:47:19 · 7493 阅读 · 10 评论 -
Xavier NX实现硬解码H264&H265
最近在做一个项目,使用opencv的VideoCapture拉流并把帧送进模型推理,结果发现VideoCapture本身使用的是cpu的软解码,占用了大量的资源,后来就去研究使用设备本身的硬解码资源去分摊cpu的压力。总体来讲是比较简单的,H264和H265两兄弟也基本上能满足日常绝大多数场景的需求了。httpshttpshttps。...原创 2022-07-22 11:00:36 · 3237 阅读 · 5 评论 -
[h264_nvenc @ 0x55c801c17980] OpenEncodeSessionEx failed: out of memory (10): (no details)
最近在使用NVIDIA的硬件编解码的时候遇到问题,说是打开会话失败,经过多方面找资料终于搞懂了问题的所在。我使用的是RTX2080TI,这个显卡同时支持打开的会话数量是3,而Tesla P40和Tesla T4都没有遇到这种问题,后来去官网查资料才知道这两款无限制。我大致浏览了下,发现大多数数据中心级的显卡哪怕性能再拉也是无限制的,除了NVIDIA A100这款,session数居然是0,可能这个是专用推理显卡,不需要这个东西。由于手上没有这款卡,没法去测试。这里的方法我知道的有两个,一是自己反编译,找到限原创 2022-07-02 22:24:22 · 2358 阅读 · 0 评论 -
【ffmpeg+cuda实现硬编解码】
最近在搞一个项目,我需要向AI提供视频帧数,本来一开始摄像头是H.264的编码,我直接复制流推到AI层去推理,然后需要将事件回溯成30秒的视频截取。结果摄像头换成了HEVC编码,截取的视频不能在网页直接播放(需要JS实现调用硬解码)。一开始的方案是ffmpeg直接将HEVC转成H.264结果因为事务巨多CPU占用量过大,导致影响到了推理,因为本身选用的模型+杂七杂八的业务逻辑也要占用大量的CPU资源,所以经过研究把ffmpeg和nvcodec结合起来来平衡设备性能,算是解决了这个问题吧。这两个是前提条件,我原创 2022-07-02 21:50:14 · 6088 阅读 · 0 评论 -
Jpeg编码4-6倍性能提升
最近在做一个项目,用到了里面的编解码,当你使用的或者命令的时候,实际上已经完成了jpeg的编码或解码,这个方法调用的是CPU来计算的,速度不理想。有条件的话可以使用硬编解码资源,如果没有硬编解码资源的话就需要借用库了。实际测试使用了之后速度最大可以提升4-6倍,提升还是很明显的。在ARM和上都是有效的,其中需要以后的CPU且要支持单元,需要支持指令集。接下来就分别演示怎么分别在和上让支持。SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它原创 2022-06-17 17:30:43 · 2693 阅读 · 2 评论