Easyx图形库应用(视频编解码和网络传输)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

本身easyx只是一个图形库,我们可以在上面做各种各样图形的开发。不管是仿真,还是教学、游戏等场景,都有很多的应用。还有一部分同学,可能会用它做多媒体开发,特别是视频的开发。既然是视频开发,那么就会涉及到视频编码、解码、采集、网络传输、硬件加速等内容。下面我们就来分别说一说怎么用库+easyx做视频开发。

1、libx264

**libx264是一个编码库。主要是把yuv文件编码成h264文件。**当然,这种编码的方式,是纯cpu的软件编码。ffmpeg没有自带的h264编码器,所以通常大家还是习惯用libx264做编码。如果是嵌入式平台,一般会用硬件加速来实现h264编码。除了h264之外,还有h265,也是类似的道理。

不过有一点需要注意下,libx264编码之前,需要先把文件转成yuv420才能开始压缩编码,而不是大家认为的RGB彩色文件。yuv只有rgb文件一半大小。目前已经有很多编译好的libx264库可以使用,下面的地址就是其中之一,

复制代码
https://github.com/ShiftMediaProject/x264/releases

2、ffmpeg

ffmpeg是经典的视频处理库。它可以处理视频,也可以处理音频,还是处理不同格式文件之间的转换。实际使用的时候,大家还是比较习惯用它来做解码动作,特别是各种已经生成的h264、h265文件,用ffmpeg解码还是很方便的。官方也提供了不同平台编译好的库,有兴趣的同学可以下载下来看一看,

复制代码
https://www.ffmpeg.org/download.html

3、opencv

opencv的作用,我们也说过,一方面它可以提供各种图象处理的算法。另外一方面,我们可以用它来采集图象,比如说usb camera的采集等等。当然,如果是具体的平台,比如windows,可以用direct show采集,linux平台则用v4l2采集。只是用opencv采集,会比较简单方便一点。

另外一方面,前面说过,h264的编码需要rgb转成yuv。这一点用cv::cvtColor很容易实现。

复制代码
https://opencv.org/releases/

4、rtsp

rtsp是一种网络协议。大家可以理解成,等音视频编码好之后,怎么用协议把这些音视频送出去。那么rtsp&rtp就是负责帮助我们来实现这些事情。这类协议的学习,一方面可以通过阅读相关协议资料来实现;另外一方面可以通过查看开源代码和抓包的形式来处理,这样效果更好一些。比如,github上就有一些开源代码,讲解如何通过rtsp传递固定h264文件。大家如果稍微结合一下libx264库和opencv库,很容易可以用来做rtsp推流处理。

复制代码
https://github.com/PHZ76/RtspServer/tree/master

5、soc mpp/mdp

上面说的都是软件编解码。但如果是嵌入式设备,很多时候是需要硬件编解码的帮助。比如说,usb camera拿到数据之后,先mjpeg decode成yuv文件,然后encode成h264文件,最终通过rtsp送出去。**这里面decode和encode很多时候,都是硬件ip实现的,ffmpeg也只是提供一个框架。**不少ipcam都是通过类似mpp、mdp的平台来实现的。比如,海思就是mpp。这是大家都比较喜欢海思的原因,用起来比较简单,大部分都是硬件加速的内容,cpu只负责配置就行。事实上,不少ipcam soc的cpu都是arm a7,自身也确实做不了什么复杂的音视频运算。

复制代码
https://wiki.t-firefly.com/zh_CN/Core-3559AV100-JD4/mpp.html
相关推荐
weixin_Todd_Wong201021 小时前
基于海思AI ISP视频编解码IPC平台的算法承载方案
接口隔离原则·视频编解码
EasyCVR2 天前
浅述视频汇聚平台EasyCVR视频编解码与转码技术如何成就视频体验
音视频·视频编解码
♛小小小让让6 天前
H264 H265 编码器 解码器原理
opencv·视频编解码
mo477610 天前
使用Nvidia Video Codec(三) NvDecoder
视频编解码
骄傲的心别枯萎16 天前
项目1:FFMPEG推流器讲解(五):FFMPEG时间戳、时间基、时间转换的讲解
ffmpeg·音视频·视频编解码·时间戳·rv1126
派阿喵搞电子16 天前
基于ffmpeg库,在AGX上编译jetsonFFmpeg库带有硬件加速的h264_nvmpi视频编解码器
ffmpeg·视频编解码
AI视觉网奇17 天前
ffmpeg 播放视频 暂停
视频编解码
骄傲的心别枯萎23 天前
项目1:FFMPEG推流器讲解(一):FFMPEG重要结构体讲解
linux·ffmpeg·音视频·视频编解码·rv1126