- 博客(9)
- 收藏
- 关注
原创 D3D11视频渲染
我之前写的RTSP播放器D3D渲染部分使用的是D3D9的API,前面一篇文章已经提到渲染性能比较差,还不及OpenGL。我目前使用的电脑支持到D3D 11.0,所以就准备把D3D9渲染替换为D3D11。D3D 11.0不支持直接渲染YUV,看官方文档要11.1之后才支持,只能借助libyuv把YUV转换成RGB再渲染。经过一番摸索之后,终于渲染出视频了。立马测一下性能,结果把我惊到了,渲染1000...
2019-05-23 14:59:24
5249
原创 Windows平台OpenGL渲染视频
我之前写过一个简单的RTSP播放器(https://github.com/greenjim301/rtsp),当时的视频渲染是用D3D实现的。一直想尝试一下用OpenGL来渲染视频,但却不得空,最近有时间就决定在之前的RTSP播放器基础上实现OpenGL渲染。首先就是搜寻各种OpenGL渲染的例子,自己再做些整合与调试。最终的实现主要参考了WebRTC OpenGL渲染实现、微软官方样例、以及...
2019-05-21 12:28:22
2000
1
原创 简单的流媒体服务器
本文描述的代码位于https://github.com/greenjim301/pmedia一直以来都希望能把自己平时工作中积累的东西分享出来,这个简单的流媒体服务器算是一次重要的尝试。这个流媒体服务器支持RTSP发流,收流协议支持RTSP、GB28181和RTMP。下面对这个流媒体服务器的实现做一个简要的介绍。整个服务器的基座是一个多线程网络、消息通信框架。之前写的几个项目我也封装了一个...
2019-04-26 15:51:20
3629
原创 字符串匹配算法实现
按算法导论字符串匹配章节描述,用C++实现了其中2种算法:朴素字符串匹配算法和KMP匹配算法。 class my_string{public: my_string() : length(0){} my_string(const char* str) { length = strlen(str); memcpy(buf, str, length); buf[leng...
2018-07-24 13:37:04
280
原创 红黑树实现
按算法导论里的伪代码用C++实现了红黑树。实现过程中,参考了nginx的红黑树实现,特别是右旋的实现,算法导论里没有给出,就借鉴了nginx的实现。对比了nginx的红黑树实现和算法导论里的伪代码,插入基本上一样的,删除两者有点差别,但思路应该是一样的。实现过程中需要注意的是,空叶子结点一定要实现,不能用空指针替代,不然会出现空指针错误。class rb_tree_node{public: ...
2018-06-19 18:44:26
144
原创 基本排序算法
最近看算法导论,把书中基本排序算法的伪代码用C++实现了一下。插入排序void insert_sort(int a[], int length){ for (int i = 1; i < length; ++i) { int k = a[i]; int j = i - 1; while (j >= 0 && a[j] > k) { a...
2018-06-14 17:43:34
120
原创 简单的RTSP服务器和手机推流服务器
本文相关代码位于:点击打开链接整个服务器基于我自己封装的跨平台网络中间件k_util开发,包含手机推流服务器和RTSP服务器。实现的功能就是,手机采集音视频流推到服务器,再通过RTSP客户端向服务器请求观看手机采集流。推流服务器与我之前开发的Android采集音视频流客户端配合,它们之间交互用的是我定的私有协议。但信令部分还是用的Json格式,Json解析通过集成JsonCpp代码实现。音视频流都...
2018-06-04 10:52:36
9722
7
原创 Android采集音视频上传服务器
本文相关代码位于:点击打开链接虽然一直做音视频相关的开发,但一直没有接触过Android开发,因为一些机缘巧合的事,就决定做Android上的音视频采集。起初没有接触过Android开发,就找网上教程看看,然后在github上找了个音视频采集相关的Demo,在这个Demo上逐渐按照自己的理解去改。因为要用到Android硬编,所以定位在Android 5.0版本以上。...
2018-06-03 22:22:12
4402
2
原创 简单的RTSP播放器实现
本文相关代码位于:https://github.com/greenjim301/rtsp实现了一个简单的RTSP播放器。只实现了RTP Over TCP,因为这种方式简单,UDP方式连接数多,还要考虑丢包的情况,嫌麻烦就没有实现了。视频支持H264裸流,音频支持G711和AAC。AAC支持RFC3640的打包方式,当然实现得比较简单粗暴,RTP Payload直接偏4个字节,并没有去解析AU He...
2018-06-03 20:45:57
5772
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人