0与1世界的黑板报!

继承前人的意志,向后人散播文明的种子
私信 关注
༄yi笑奈何
码龄3年

指掀涛澜天下惊,抚筝百载,清绝吾命。挑弦一曲与谁听,昂首万里,江山无人

  • 30,848
    被访问量
  • 237
    原创文章
  • 42,317
    作者排名
  • 22
    粉丝数量
  • 于 2017-09-10 加入CSDN
获得成就
  • 获得21次点赞
  • 内容获得12次评论
  • 获得24次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #深度学习#算法#Python#自然语言处理#机器学习#语音识别#NLP#神经网络#TensorFlow
TA的专栏
  • H.264/AVC视频编解码技术
    付费
    5篇
  • Android开发
    7篇
  • 安卓流媒体音视频
    7篇
  • 数据结构与算法
    53篇
  • OpenGL_ES
    6篇
  • 开源项目与技术解决方案
    24篇
  • QT or C++ Development
  • WebRTC
    30篇
  • 流媒体【协议音&&音视频格式】
    9篇
  • 设计模式
  • OpenGL从入门到精通
    7篇
  • FFmpeg从入门到入土
    10篇
  • IOS流媒体音视频
  • Web流媒体音视频
  • NLP
  • C/C++相关开发
    12篇
  • 人工智能
    1篇
  • 计算机视觉与计算机图形
    8篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

【安卓开发 】Android初级开发(四)ListView

ListView的实现步骤1.单独一行的布局可以如下<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_hei.
原创
0评论
0点赞
发布博客于 8 天前

【安卓开发 】Android初级开发(三)动画

逐帧动画方法一,在xml中设置1.先将图片加入drawable2.在drawable中新建xml,设置每一帧的图片和时间<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/frame_1"
原创
0评论
0点赞
发布博客于 9 天前

【安卓开发】Android初级开发(okhttp3发送带header与带参数的GET请求)

1.首先需要先加入相应依赖dependencies{implementation 'com.squareup.okhttp3:okhttp:3.13.1'implementation 'com.squareup.okio:okio:2.2.2'}2.加入互联网权限 <!-- 互联网 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 查看网络状态 --&g
原创
0评论
0点赞
发布博客于 20 天前

数据结构之美

(一)二叉树的三种遍历方式:本质是在递归序的基础上打印时机的不同。前序遍历: 1 2 4 5 3 6 7 ; 中序遍历 : 4 2 5 1 6 3 7 ; 后序遍历 : 4 5 2 6 7 3 1 ;(二)各种遍历的非递归实现struct Node { int value; Node *left; Node *right;};前序遍历:1.先定义一个栈,把跟压入栈 ; 2. 弹出栈顶元素,并且打印出来;3.如果弹出的栈顶元素有右节点,先将...
原创
0评论
0点赞
发布博客于 20 天前

【H.264/AVC视频编解码技术】第三章【SPS序列参数集】

1.H264码流中重要的组成部分,保存针对整个视频序列的参数,丢失SPS的码流通常无法正常解码。2.SPS信息的保存位置: 封装格式: FLV======会保存在 Tag中的Video Tag Data 部分,会有AVC VIDEO PACKET结构。SPS就包含在其中。 MP4===== H264裸码流: 保存在NAL Unit中,Type为7。3. H264码流中的SPS包...
原创
0评论
0点赞
发布博客于 20 天前

【Android OpenGL ES 开发 (五)】

纹理放大和缩小的过滤参数1.使用线性插值效果最佳2.通过修改 float maxscale = 4.0f //放大 float minscale = 0.5f //缩小vertices[0].mPosition[0]=0.5f * maxscale; //xvertices[0].mPosition[1]=0.5f * maxscale; //y实现模糊效果1.利用显卡的并行计算的强大功能对图像进行处理2.FS中的代码实现#ifdef GL_ESprecti...
原创
1评论
0点赞
发布博客于 20 天前

【安卓开发 】Android初级开发(二)Activity启动模式

Activity页面跳转在业务逻辑页面添加以下代码 //跳转到下一个activity Intent intent = new Intent(this,MainActivity2.class); startActivity(intent);Activity四种启动模式具体链接
原创
0评论
0点赞
发布博客于 20 天前

【安卓开发 】Android初级开发(HTTP)

package com.imooc.demo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;import org.
原创
1评论
1点赞
发布博客于 22 天前

【安卓开发 】Android初级开发(零)各种布局

线性布局的重要属性 (LinearLayout)相关属性链接<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_heig
原创
0评论
0点赞
发布博客于 24 天前

安卓初级控件开发(一)

安卓初级控件开发(一)!!!!!!!!!!
rar
发布资源于 24 天前

【安卓开发 】Android初级开发(一)控件通用属性

控件通用属性 Android TextView属性详解该控件相关属性Android EditText属性大全相关属性查看地址事件监听处理package com.example.uidemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import andro...
原创
0评论
0点赞
发布博客于 24 天前

Windows摄像头采集渲染

在Windows环境下采集摄像头图像,并且转换为YUV420P的图像格式进行渲染显示到屏幕上。
rar
发布资源于 28 天前

【技术解决方案】GitHub本地仓库管理与远程仓库管理

本地仓库管理设置用户名git config --global user.name 'CnYiXiaoNaiHe'设置邮箱git config --global user.email '1969118063@qq.com'该设置在Github仓库主页显示谁提交了该文件创建新文件夹,打开,然后执行git init把文件从工作区提交到暂存区域git add <filename>git add *把暂存区的内容提交到仓库git commit -m
原创
0评论
0点赞
发布博客于 1 月前

rtspserver-master.zip

RTSP和RTP发送数据的通信
zip
发布资源于 1 月前

【技术解决方案】开发工具源码安装包大全

各版本QT下载地址
原创
0评论
0点赞
发布博客于 1 月前

【技术解决方案】Windows平台下摄像头采集方案

在Windows下对摄像头数据进行采集,有两种方法。一种使用DrectShow,另一种方法是使用WMF。我们可以通过将以上两种方法与FFmpeg中的avdevice来关联。使得他们成为一个整体。对于本机摄像头设备的枚举我推荐使用QT的多媒体库。 QCameraInfo curCameraInfo = QCameraInfo::defaultCamera(); //获取缺省摄像头 QString photoname = curCameraInfo.description();//摄像头描述
原创
0评论
1点赞
发布博客于 1 月前

Windows摄像头采集/本地文件/网络流解封装到转码

Windows摄像头采集/本地文件/网络流解封装到转码
rar
发布资源于 1 月前

【技术解决方案】音视频同步策略分析并计算出当前音频播放的pts

音视频同步策略1.参考时钟同步:音视频约定好经过周期音视频各自会seek到约定位置。2.音频同步视频:视频是不能保证每秒是25帧的,存在精确度问题。3.视频同步音频:音频使用正常速度播放,视频以音频为基准。音频需要把时间PTS传递出来,视频根据传递出来的实际确认播放方式,视频会等待音频部分播放并把PTS传递出来赋值给视频部分。...
原创
0评论
0点赞
发布博客于 1 月前

【WebRTC---源码篇】(二)Windows/Linux音视频采集封装模块

//Window/Linux 对WebRTC视频采集类接口做的封装,实现了Source接口class CapturerTrackSource : public webrtc::VideoTrackSource { public: static rtc::scoped_refptr<CapturerTrackSource> Create() { const size_t kWidth = 640; const size_t kHeight = 480; const.
原创
0评论
0点赞
发布博客于 1 月前

【H.264/AVC视频编解码技术】序章

视频格式关于视频格式的内容,在这里不进行赘述,详细学习可以参考视频格式视频数据冗余数据冗余的类型分为哪几种?图像与视频在数字化过程,即模电转数电过程中会产生数据冗余。从数字信号的统计特征方面,一般将这些数据冗余分为空间冗余,时间冗余,信息熵冗余三大类。空间冗余:是静态图像存在的最主要的数据冗余,例如一幅图像中有较大的背景区域,在此区域中所有点的光强和色彩以及饱和度都是非常相近的,这种空间连贯性就称为空间相关或空间冗余。时间冗余:是视频序列中经常包含的冗余,序列图像中的相邻帧往往包含相
原创
0评论
0点赞
发布博客于 1 月前

【开源项目】超级播放器1.0

【开源项目】超级播放器1.0! 超级棒!
rar
发布资源于 1 月前

【技术解决方案】RTP_UDP传输过程中数据丢失的解决方案

1. 从发送端解决(推荐)适用条件: ①发送端是可以控制的.②微秒数量级的延迟可以接受解决方法:发送时使用usleep(1)延迟1微秒发送,即发送频率不要过快,延迟1微妙发送,可以很好的解决这个问题.。2.从接收端解决方法一适用条件:①无法控制发送端发送数据的频率解决方法: 用recvfrom函数收到数据之后尽快返回,进行下一次recvfrom,可以通过多线程+队列来解决.收到数据之后将数据放入队列中,另起一个线程去处理收到的数据;可以总结为服务器程序启动之出,接收端开辟两个线程,一个线
原创
0评论
0点赞
发布博客于 1 月前

【技术解决方案】优化FFmpeg编码器参数设置

FFmpegx264编码参数对照表 x264 ffmpeg 说明 命令行 字段 命令行 字段 qp qp_constant cqp cqp ...
原创
0评论
1点赞
发布博客于 1 月前

【技术解决方案】优化FFmpeg探测网络流时间过长的问题

场景要求 项目要求点播速度是300到500毫秒之间,现在最长的点播延时是1300毫秒(有的时候甚至无法播放视频),生产环境是RTSP传输H264裸流数据,研究在接收到I帧的时候,开始出来图像,简化FFmpeg的调用逻辑(SPS/PPS已经预先知道,并且分辨率也是固定为1920*1080)。...
原创
0评论
0点赞
发布博客于 1 月前

各类算法排序详解

归并排序 自带时间复杂度测试//时间复杂度 O(N*log2N) //稳定程度: 稳定/*确定分界点,中间位置两端排序归并,合二为一*/ #include<iostream>#include<time.h>using namespace std;int tmp[250001];void Sort(int List[], int l, int r); int main(){ int a[250000]; int k, j; // 设置种子
原创
0评论
0点赞
发布博客于 2 月前

常见算法核心思想

双指针算法1.双指针算法主要是为了提高朴素算法的复杂度,即O(n^2)的算法,优化为O(n)的算法。2.常见模板for (int i = 0, j = 0; i < n; i ++ ){ while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑}常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作相关题目...
原创
0评论
0点赞
发布博客于 2 月前

剑指 Offer 01-----20

剑指 Offer 03. 数组中重复的数字解题思路,使用STL中的set,逐个读入vector中的每一个元素,使用set进行对比,如果set中存在会返回1,这时直接返回该元素即可;如果set中没有可以insert这个元素到set,进行下一次遍历。class Solution {public: int findRepeatNumber(vector<int>& nums) { set<int> ret; for(auto i:
原创
0评论
0点赞
发布博客于 2 月前

剑指 Offer 51-----59

剑指 Offer 55 - I. 二叉树的深度解题思路:class Solution {public: int maxDepth(TreeNode* root) { if(root==NULL)return 0; int l=maxDepth(root->left); int r=maxDepth(root->right); return (l>r?l:r)+1; }};...
原创
0评论
0点赞
发布博客于 2 月前

剑指 Offer 40-----50

原题链接class Solution {public: char firstUniqChar(string s) { char res = ' '; if(!s.size()) return res; unordered_map<char, int> mmp; for(int i = 0; i < s.size(); i++) { mmp[s[i]] += 1; }
原创
0评论
0点赞
发布博客于 2 月前

Leetcode 146. LRU 缓存机制

原题链接题解:class LRUCache {public: struct Node { int key, val; Node *left, *right; Node(int _key, int _val): key(_key), val(_val), left(NULL), right(NULL) {} }*L, *R; unordered_map<int, Node*> hash; int n;
原创
0评论
0点赞
发布博客于 2 月前

【H.264/AVC视频编解码技术】第三章【熵编码算法】

熵编码的概念熵:化学与热力学概念,用于度量能量退化的指标。熵越高,物体/系统做工能力越低。信息学中的熵:用于度量消息的平均信息量,和信息的不确定性。越是随机的,前后不相关的信息,其熵越高。信源编码定理:说明了香浓熵与信源符号概率之间的关系。信息的熵为信源无损编码后平均码长的下限。基本思想使前后的码字之间尽量更加随机,减少前后相关性,更加接近其信源的香浓熵。常用熵编码算法1.变长编码:运算复杂度和编码效率都比较低,常用方法:哈夫曼编码,香农-费诺编码等。2.算数编码:运算较为复
原创
0评论
0点赞
发布博客于 2 月前

Leetcode 28. 实现 strStr()

原题链接解:KMP算法class Solution {public: int strStr(string s, string p) { if (p.empty()) return 0; int n = s.size(), m = p.size(); s = ' ' + s, p = ' ' + p; vector<int> next(m + 1); for (int i = 2, j = 0;
原创
0评论
0点赞
发布博客于 2 月前

Leetcode 24. 两两交换链表中的节点

原题链接题解:class Solution {public: ListNode* swapPairs(ListNode* head) { auto dummy = new ListNode(-1); dummy->next = head; for (auto p = dummy; p->next && p->next->next;) { auto a = p->next,
原创
0评论
0点赞
发布博客于 2 月前

Leetcode 61. 旋转链表

原题链接题解:class Solution {public: ListNode* rotateRight(ListNode* head, int k) { if (!head) return head; int n = 0; ListNode* tail; for (auto p = head; p; p = p->next) { tail = p; n ++ ;
原创
0评论
0点赞
发布博客于 2 月前

C++ 11 深度学习(六)智能指针综述

以下三种智能指针均为类模板1.shared_ptr 共享指针 ,多个指针指向同一个对象,最后一个指针被销毁时,这个对象会被释放。2.week_ptr 是辅助shared_ptr工作的3.unique_ptr 是独占式指针,同一时间只要一个指针能指向该对象,该对象所有权还是可以转移出去的。shared_ptr基础1.共享所有权,不是被一个shaerd_ptr使用,而是被多个shared_ptr之间相互协作,shared_ptr有额外开销。2.工作原理:采用引用计数机制,每个sha...
原创
0评论
0点赞
发布博客于 2 月前

C++ 11 深度学习(五)类型转换:static_cast dynamic_cast const_cast reinterpret_cast

四种cast通用形式:强制类型转换名<type>(express) @强制类型转换名,以上四种 ;@type:想要转成成的目标类型 ; @express,需要转换的目标static_cast内置数据类型转换,具有继承关系的指针和引用,不进行安全检查dynamic_cast动态类型转换,转换具有继承关系的 严格遵循对象类型安全检查 由下向上的转换是安全的,由上向下的转换是不安全不被允许的const_ca...
原创
0评论
0点赞
发布博客于 2 月前

C++ 11 深度学习(四)结构、权限修饰符

1.structstruct MyStruct{ int a; char b;};struct默认权限为public,其中最重要的是涉及到结构体数据对齐。数据对齐,1.数据对齐是指存在处理结构体成员时,成员在内存中的起始地址编码必须是成员类型字节的整倍数。2.要以结构体中最深层的基本数据类型为准。2.权限修饰符public(公有的),接口可以被外部访问 ;private(私有的),类中成员只有被内部定义的成员函数使用;protected(保护的)...
原创
0评论
0点赞
发布博客于 2 月前

Leetcode 151. 翻转字符串里的单词

原题链接class Solution {public: string reverseWords(string s) { int k = 0; for (int i = 0; i < s.size(); i ++ ) { if (s[i] == ' ') continue; int j = i, t = k; while (j < s.size() && s[j]
原创
0评论
0点赞
发布博客于 2 月前

WebRTC Google的 BBR拥塞控制算法解析

正文之前,给出本文的图例:BBR的组成bbr算法实际上非常简单,在实现上它由5部分组成:1.即时速率的计算计算一个即时的带宽bw,该带宽是bbr一切计算的基准,bbr将会根据当前的即时带宽以及其所处的pipe状态来计算pacing rate以及cwnd(见下文),后面我们会看到,这个即时带宽计算方法的突破式改进是bbr之所以简单且高效的根源。计算方案按照标量计算,不再关注数据的含义。在bbr运行过程中,系统会跟踪当前为止最大的即时带宽。2.RTT的跟踪bbr之所以可以获取非常
原创
0评论
0点赞
发布博客于 2 月前

LeetCode题集大全

LeetCode 01. 两数之和LeetCode 02.两数相加LeetCode 03. 无重复字符的最长子串LeetCode 07. 整数反转Leetcode 08. 字符串转换整数 (atoi)LeetCode 09. 回文数LeetCode 13. 罗马数字转整数LeetCode 15 二进制中1的个数Leetcode 19. 删除链表的倒数第N个节点LeetCode 20.有效括号LeetCode 21 合并两个有序链表...
原创
0评论
0点赞
发布博客于 2 月前

LeetCode 13. 罗马数字转整数

原题链接class Solution {public: int romanToInt(string s) { int tagVal[128]; tagVal['I'] = 1; tagVal['V'] = 5; tagVal['X'] = 10; tagVal['L'] = 50; tagVal['C'] = 100; tagVal['D'] = 500; tagV
原创
0评论
0点赞
发布博客于 2 月前

LeetCode 09. 回文数

原题链接class Solution {public: bool isPalindrome(int x) { if(x<0) return false; if(x>=0 && x<10) return true; long long temp = 0; int xx = x; while(x!=0){
原创
0评论
0点赞
发布博客于 2 月前

Leecode 136. 只出现一次的数字

原题链接解法:异或运算 A^A=0 A^0=Aclass Solution {public: int singleNumber(vector<int>& nums) { int ret = 0; for(auto p : nums) ret^=p; return ret; }};
原创
0评论
0点赞
发布博客于 2 月前

Leetcode 19. 删除链表的倒数第N个节点

原题链接解法一:双指针算法class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { auto dummy = new ListNode(-1); dummy->next = head; auto first = dummy,second = dummy; while(n--)first=first->next; while(
原创
0评论
0点赞
发布博客于 2 月前

双指针算法核心

1.双指针算法主要是为了提高朴素算法的复杂度,即O(n^2)的算法,优化为O(n)的算法。2.常见模板for (int i = 0, j = 0; i < n; i ++ ){ while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑}常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作相关题目链接http
原创
0评论
0点赞
发布博客于 2 月前

LeetCode 03. 无重复字符的最长子串

原题链接解题思路:class Solution {public: int lengthOfLongestSubstring(string s) { unordered_map<char, int> hash; int res = 0; for (int i = 0, j = 0; j < s.size(); j ++ ) { hash[s[j]] ++ ; w
原创
0评论
0点赞
发布博客于 2 月前

LeetCode 203. 移除链表元素

原题链接class Solution {public: ListNode* removeElements(ListNode* head, int val) { auto dummy = new ListNode(-1); dummy->next = head; for (auto p = dummy; p; p = p->next) { auto q = p->next; while
原创
0评论
0点赞
发布博客于 2 月前

【OpenGL从入门到精通(六)】纹理对象与纹理坐标

1.当进行纹理贴图时候,纹理的坐标。2.
原创
0评论
0点赞
发布博客于 2 月前

【OpenGL从入门到精通】Shader专题

详解GPU的工作流程1.shader通常称为着色器,作用是把CPU上的点渲染出来。2.shader是并行的。3.流程:数据data (顶点数据) ----->VS(输入:data的顶点数据,输出:gl_Position的 vec4 顶点数据)----->光栅化处理(显卡自动负责,把点连成生成面,其中包括一定像素)------>FS(输入:光栅器的输出的像素,输出画面);注意VS和FS点会同时被并行执行,多个点可以同时处理。最简单的Shader代码1.Vertext
原创
0评论
0点赞
发布博客于 2 月前

【FFMPEG中PTS与DTS统一转换为毫秒】

对于PTS和DTS 是两个非常重要的参数,在音视频同步时是必要的,为了方便使用,将二者统一为毫秒级别static double r2d(AVRational r){ return r.den == 0 ? 0 : (double)r.num / (double)r.den;}//转换为毫秒,方便做同步AVPacket->pts * (r2d(ic->streams[pkt->stream_index]->time_base) * 1000) ...
原创
0评论
0点赞
发布博客于 2 月前

【UDP协议头解析】

原创
0评论
0点赞
发布博客于 2 月前

【Android OpenGL ES 开发 (四)】

纹理贴图的原理1.作用:可以用来渲染视频。生成OpenGL中的纹理对象1.像素数据想要绘制出来需要先变成纹理2.创建纹理放在GPU上GLuint CreateTexture2D(unsigned char *pixelData,int width,int height,GLenum type) { GLuint texture; glGenTextures(1,&texture);//创建一个纹理对象 glBindTexture(GL_TEXTURE_2
原创
0评论
0点赞
发布博客于 2 月前

【Android OpenGL ES 开发 (三)】

编译Shader代码1.封装一个编译shader的接口GLuint CompileShader(GLenum shaderType,const char *shaderCode){ GLuint shader=glCreateShader(shaderType); glShaderSource(shader,1,&shaderCode,NULL); glCompileShader(shader); GLint compileResult=GL_TRUE;
原创
0评论
0点赞
发布博客于 2 月前

【Android OpenGL ES 开发 (二)】

计算出每一帧耗费的时间1.在头文件中加入time.h,cpp中实现如下计算时间接口float GetFrameTime(){ static unsigned long long lastTime=0,currentTime=0; timeval current; gettimeofday(&current, nullptr);//取当前时间 currentTime = current.tv_sec * 1000 + current.tv_usec/100
原创
0评论
0点赞
发布博客于 2 月前

【Android OpenGL ES 开发 (一)】

创建OpenGLES视口1.App窗口改成OpenGL窗口,是通过java调用C++,在以下位置修改如下内容package com.example.learnogles;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.opengl.GLSurfaceView;import android.os.Bundle;import android.ut
原创
0评论
0点赞
发布博客于 2 月前

【Android OpenGL ES 开发 (零)】

创建符合要求的AndroidApp使用Android Studio开发,Android Studio下载地址1.先创建Native C++2.项目相关添加3.使用C++11标准学习使用JNI为Java提供API1.在cpp中定义相关接口,格式如下2.外部调用这个API把so改成自己想要的名字1.需要在cmake文件里面进行配置添加更多的cpp源文件参与编译1.首先创建一个.h文件,把所有需要的头文件都加入到此头文件2.在..
原创
0评论
0点赞
发布博客于 2 月前

【音视频安卓开发 (零)】用 Android NDK 编译 FFmpeg

下载相关构建和工具链1.先下载NDKGoogle Android2.在Windows端下载使用msys2,msys2支持Linuxmsys2安装相关源,等待更新要很久.....慢慢等pacman -S mingw-w64-x86_64-toolchain然后执行以下命令安装pacman -S base-devel如果下载过慢或者不成功可以修改软件源更新源清华源中科大源修改mirrorlist.msys利用UltraEdit或者类似工具打开这mirr
原创
0评论
0点赞
发布博客于 2 月前

【视频码率==文件传输大小等通用计算】

1字节(Byte)= 8位(bit),我们通常称比特为小b1千字节(KB,Kilobyte)=1024字节(2的10次方字节)(1KB=1024B),我们经常称字节为大B视频文件大小码率计算方法
原创
0评论
0点赞
发布博客于 2 月前

C++ 11 深度学习(三)范围for、new内存动态分配、nullptr

1.范围for作用:用于遍历一个序列,例: int v[]{ 1,2,3,4,5,6 }; for (auto x : v)//数组v中每个元素,依次放入x中; cout << x << endl;2.new和deletenew和delete是C++中的两个关键字,其中new 先执行malloc操作,然后调用构造函数;delete 先执行析构函数,然后执行free操作。...
原创
0评论
0点赞
发布博客于 2 月前

LeetCode 02.两数相加

原题链接解题思路:本题可以使用模拟法,从链表的结点中提取出value逐个相加进位。从而得到最后的结果链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {}
原创
0评论
0点赞
发布博客于 2 月前

【WebRTC---源码篇】(二)PeerConnectionFactory

在初始化之后,使用PC之前需要先创建和初始化PeerConnectionFactory对象,因为PC的创建使用了工厂模式。实现在InitializePeerConnection()中实现,其中还调用了 PC的创建以及添加相关轨//创建PC Factory,这个函数会在用户呼叫对方,或者收到对方呼叫信息时调用bool Conductor::InitializePeerConnection() { RTC_DCHECK(!peer_connection_factory_); RTC_DCHECK
原创
0评论
0点赞
发布博客于 2 月前

【WebRTC---源码篇】(一)全局初始化

一,任何平台的客户端在使用WebRTC的API之前都需要进行一些初始化操作,主要是设置实验性功能开关,初始化SSL,当然也可以启用trace,设置日志输出等。Windows和Linux端的初始化 rtc::WinsockInitializer winsock_init; rtc::Win32SocketServer w32_ss; rtc::Win32Thread w32_thread(&w32_ss); rtc::ThreadManager::Instance()->
原创
0评论
0点赞
发布博客于 2 月前

【开源项目】基于QT录制PCM音频实例详细

#include "QtAudio_input.h"#include <QtWidgets/QApplication>#include<QAudioInput>#include<iostream>using namespace std;int main(int argc, char *argv[]){ QAudioFormat fmt; fmt.setSampleRate(44100);//样本率 fmt.setSampleSize(16);//样本大.
原创
0评论
0点赞
发布博客于 2 月前

【开源项目】基于Directx屏幕录制

#include<d3d9.h>#include<iostream>#pragma comment(lib,"d3d9.lib")using namespace std;//截取全屏void CaptureScreen(void *data){ //1 创建directx3d对象 static IDirect3D9 *d3d = nullptr; if (!d3d) { d3d = Direct3DCreate9(D3D_SDK_VERSION);...
原创
0评论
0点赞
发布博客于 2 月前

RGB_PCM数据封装.rar

基于FFmpeg将RGB与PCM经过H264压缩后封装为一体 详细细节可以查看我的相关文章!!!!!!!!!!
rar
发布资源于 2 月前

【开源项目】基于FFmpeg的PCM和RGB数据统一封装

项目采用工程模式进行构造。技术解决难点:1.编码后的PTS时间一定要赋值。2.音视频封装同步问题,其中涉及到PTS同步问题,例如视频25PTS/s 音频43PTS/s(44100采样率/1024每帧),音频要慢于视频所以这种情况下要进行PTS同步计算处理.主要代码如下XVideoWriter.h#pragma once#include<string>class AVPacket;enum XSAMPLEFMT{ X_S16 = 1, X_FLATP = 8}.
原创
0评论
0点赞
发布博客于 2 月前

【开源项目】基于FFmpeg的PCM数据编码为AAC

/** 一笑奈何* cn-yixiaonaihe.blog.csdn.net*/#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using.
原创
0评论
0点赞
发布博客于 2 月前

【开源项目】基于FFmpeg的RGB格式封装MOV文件

/** 一笑奈何* cn-yixiaonaihe.blog.csdn.net*/#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using.
原创
0评论
0点赞
发布博客于 2 月前

基于FFmpeg的格式转封装.rar

基于FFmpeg的格式转封装,详细可以参考我的博客相关文章 cn-yixiaonaihe.blog.csdn.net
rar
发布资源于 3 月前

【开源项目】基于FFmpeg的封装格式转换

/** 一笑奈何* cn-yixiaonaihe.blog.csdn.net*/#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using.
原创
0评论
0点赞
发布博客于 3 月前

【OpenGL从入门到精通(五)】三角形的绘制

123
原创
0评论
0点赞
发布博客于 3 月前

【OpenGL从入门到精通(四)】绘制一条线

//draw scene glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINE_STRIP);//start to draw something glColor4ub(255, 0, 0, 255); glVertex3f(0.0f, 0.0f, -10.0f); glColor4ub(0, 255, 0, 255); glVertex3f(-5.0f, 0.0f, -10.0f); glColor4ub(0, 0, 255, 255...
原创
0评论
0点赞
发布博客于 3 月前

【OpenGL从入门到精通(三)】第一个点的理论

OpenGL状态机一,OpenGL是一个状态机matrix中包括:modelview (模型矩阵) worldpos(视觉坐标)通过mv(模型矩阵)转到cameru摄像机下projection (投影矩阵)将摄像机下的三维信息转换投影到二维屏幕上二 -, color 当前颜色,绘制会从这里取当前颜色,而且只有一个 clear color 当前擦除颜色 point size 点大小OpenGL流程1.首先create Wind...
原创
0评论
0点赞
发布博客于 3 月前

【OpenGL从入门到精通(二)】绘制一个点

1.想要绘制一个点,首先要在OpenGL初始化中先设置矩阵2.然后在绘制场景中进行点的绘制。其中包括 当前颜色设置;点的位置,点的大小等等#include <windows.h>#include<gl/GL.h>#include<gl/GLU.h>#pragma comment(lib,"opengl32.lib")#pragma comment(lib,"glu32.lib")LRESULT CALLBACK GLWindowProc(HWND
原创
0评论
0点赞
发布博客于 3 月前

【OpenGL从入门到精通(一)】搭建OpenGL的渲染环境,并初始化一个OPenGL窗口

#include <windows.h>#include<gl/GL.h>#include<gl/GLU.h>#pragma comment(lib,"opengl32.lib")#pragma comment(lib,"glu32.lib")LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch (msg) { case WM.
原创
0评论
0点赞
发布博客于 3 月前

【开源项目】Socket服务端与客户端传输视频文件

Server端#define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>#include<WinSock2.h>#include<stdio.h>#include <malloc.h>#pragma comment(lib,"ws2_32.lib")int main(){ //启动Windows socket 2.x环境
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---进阶篇】(六)SELECT网络模型

select函数原型intWSAAPIselect( _In_ int nfds, _Inout_opt_ fd_set FAR * readfds, _Inout_opt_ fd_set FAR * writefds, _Inout_opt_ fd_set FAR * exceptfds, _In_opt_ const struct timeval FAR * timeout );函数功能:监视多个文件描述符的状态变化,在IO中负责IO的第一步
原创
0评论
1点赞
发布博客于 3 月前

【WebRTC---进阶篇】(五)mediasoup的信令系统

mediasoup demo分析app 客户端部分broadcasters 推拉流部分server 服务端部分config.js相当于一个配置文件,获取一些基本配置信息。获取的信息来交给server.js。server.js先从config.js获取信息,然后启动HTTPS webSocket服务等,可以接受信令。lib room.js 信令相关处理在此处,也描述房间相关信息interactiveClient.js 作为交互的客户端intera...
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---进阶篇】(四)mediasoup服务器的布署与使用

1.Nodejs安装Nodejs安装2.下载mediasoup Demogit clone https://github.com/versatica/mediasoup-demo.gitcd mediasoup-demogit checkout v3
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---进阶篇】(三)各流媒体服务器的比较

多人音视频架构Mesh方案
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---进阶篇】(二)libevent实现高性能网络服务器

libevent编译与安装libevent官网wget -c addr --no-check-certificate./configure --prefix=/usr/local/libeventmake -j 8make install#include <event2/listener.h>#include <event2/bufferevent.h>#include <event2/buffer.h>#include <event2/
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---进阶篇】(一)服务器基础编程

一个最简单的服务器程序server.h/** * Server Class * * @author lichao * @date 2019-08-07 * @copyleft GPL 2.0 */#ifndef __SERVER_H__#define __SERVER_H__namespace avdance {class Server { public: Server(); //consrtuct ~Server(); //destruct
原创
0评论
0点赞
发布博客于 3 月前

【C++11线程相关】

线程创建方式一:调用函数#include<thread>void CreateThread(){ int a=100; cout<<"This is Thread: "<<a<<endl;}int main(){ thread Threadone(CreateThread); Threadone.join(); //or Threadone.detach(); }方式二:使用类对象,需
原创
0评论
0点赞
发布博客于 3 月前

LeetCode 225. 用队列实现栈

算法(队列,栈) O(n)我们用一个队列来存储栈中元素。对于栈中的四种操作:push(x) – 直接入队;pop() – 即需要弹出队尾元素。我们先将队首元素弹出并插入队尾,循环 n−1次,n是队列长度。此时队尾元素已经在队首了,直接将其弹出即可;top() – 即返回队尾元素。同理,我们先将队首元素弹出并插入队尾,循环 n−1次,n是队列长度。此时队尾元素已经在队首了,直接将其返回。不要忘记将其弹出并插入队尾,恢复队列原状;empty() – 返回队列是否为空;时间复杂度分析:p
原创
0评论
0点赞
发布博客于 3 月前

【开源项目】基于QT5的原生屏幕录制程序

开源项目
原创
0评论
0点赞
发布博客于 3 月前

【开源项目】向Nginx-RTMP服务器推流

Nginx-RTMP服务器搭建Nginx下载Nginx-RTMP模块先使用root用户,首先安装GCC ; G++ ;make; libssl ;libpcre3-dev ;zlib1g-dev再解压Nginx和RTMP模块,configure传入RTMP模块的文件夹./configure --add-moudle=路径 安装成功后调用下面语句查看服务是否运行ps -ef|grep nginxnginx.conf配置rtmp{ server { lis..
原创
2评论
0点赞
发布博客于 3 月前

基于QT5的原生屏幕录制程序

基于QT5的原生屏幕录制程序!!!!!!!!!!!!!!!! 可应用于视频编码!!!!!!!!!!!!!!!!!!!!
rar
发布资源于 3 月前

【WebRTC---入门篇】(二十)WebRTC核心之SDP详解

SDK规范会话层媒体层SDP规范相关参考WebRTC中的SDP
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---入门篇】(十九)TURN协议

TURN简介TURN发送机制方式一 :Send data方式二:ChannelTURN的使用
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---入门篇】(十八)WebRTC非音视频数据传输

WebRTC传输非音视频重要APIcreateDataChanneloptionsordered在传输非音视频的时候是否是按序到达的。maxPacketLifeTime/maxRetransmits最大包存活时间;最大传输次数。两者二选一negotiatedID唯一标识DataChannel事件非音视频数据传输方式相关开源项目...
原创
0评论
0点赞
发布博客于 3 月前

WebRTC非音视频数据传输

WebRTC非音视频数据传输!!!!!!!!!!!!!!!!!! 非常有价值的东西!!!!!!!!!!!!!!!!!!!
rar
发布资源于 3 月前

WebRTC传输速率控制

基于WebRTC的传输速率控制 相关文章https://blog.csdn.net/qq_40179458/article/details/108792757
rar
发布资源于 3 月前

1V1音视频实时互动直播系统.rar

基于WebRTC的一对一实时音视频互动 相关参考 https://cn-yixiaonaihe.blog.csdn.net/article/details/108938355
rar
发布资源于 3 月前

【WebRTC---入门篇】(十七)实现1V1音视频实时互动直播系统

STUN/TURN服务器搭建详细搭建过程
原创
6评论
1点赞
发布博客于 3 月前

简单聊天室webserver.rar

基于WebRTC的聊天室 相关文章https://blog.csdn.net/qq_40179458/article/details/108929906
rar
发布资源于 3 月前

端对端1V1传输webserver.rar

webrtc 1V1端对端视频传输 参考文章 https://cn-yixiaonaihe.blog.csdn.net/article/details/108931564
rar
发布资源于 3 月前

【WebRTC---入门篇】(十六)端对端1V1传输基本流程

RTCPeerConnection媒体协商setLocalDescription方法 ,收集所有候选者。setRemoteDescription方法, 放到远端的描述槽中。协商状态变化媒体协商方法createOffercreateAnswersetLocalDescriptionsetRemoteDescriptionTrack方法addTrackremoveTrack重要事件协商事件;候选者事件.
原创
0评论
1点赞
发布博客于 3 月前

【WebRTC---入门篇】(十五)WebRTC信令服务器实现

如何使用socket.io发送消息信令服务器的作用需要通过信令服务器交换 SDP媒体 和 网络信息 和 具体业务(房间管理等等)为什么要使用socket.iosocket.io工作原理改造Nodejs服务端安装基于Nodejs的socket.ionpm install socket.io log4js...
原创
0评论
0点赞
发布博客于 3 月前

【WebRTC---入门篇】(十四)WebRTC音视频录制

WebRTC采集屏面数据谷歌浏览器打开屏幕录制 chrome://flags/#enable-experimental-web-platform-features
原创
0评论
0点赞
发布博客于 3 月前

WebRTC音视频数据采集webserver.rar

WebRTC音视频数据采集 参考文章https://cn-yixiaonaihe.blog.csdn.net/article/details/108926316
rar
发布资源于 3 月前