自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

0与1世界的黑板报!

继承前人的意志,向后人散播文明的种子

  • 博客(42)
  • 资源 (23)
  • 收藏
  • 关注

原创 【RTMP协议分析与抓包实测】

RTMP基本通讯RTMP基于TCP之上传输TCP三次握手,相关文章链接,TCP三次握手流程进行握手c:s 发送c0+c1c:s 发送c2s:c 发送s0+s1+s2建立RTMP连接c:s RTMP发送connect建立连接s:c 协商滑动窗口大小s:c 设置块大小s:c result创建RTMP流C:S 释放以前的流>>创建流...

2020-09-28 17:08:52 53

原创 【WebRTC---入门篇】(十二)WebRTC传输协议

浏览器协议栈(左图传统HTTP 右图WebRTC)RTP/SRTPRTP是未加密的数据,SRTP是加密后的数据。RTP协议对于同一帧进行分包/组包处理的时候,seq number是连续的,timestamp是同一时间戳,H264内部有起始位和结束位。RTCP/SRTCPRTCP用来控制RTP的传输,出现丢包,抖动,延迟等通过RTCP上报并且计算。RTP端口多为偶数在WebRTC需要进行NAT穿越,如果是多个窗口的话。RTP和RTCP可能...

2020-09-28 16:29:52 114

原创 【斐波拉切数列第N项】

#include<iostream>using namespace std;int main(){ int f[100]; f[0] = 0, f[1] = 1; int n; cin >> n; for (int i = 2; i <= n; i++) { f[i] = f[i - 1] + f[i - 2]; } cout <<f[n] << endl; return 0;}

2020-09-28 10:05:24 13

原创 【H264码流分析】 SPS/PPS/Slice Header

【H264码流分析】 SPS/PPS/Slice Header

2020-09-27 12:52:52 41

原创 【H.264/AVC视频编解码技术】第二章【H264码流分析】

H264码流分层NAL层,视频数据网络抽象层,作用是控制二进制数据的传输,主要用于网络传输。VCL层,视频数据编码层。VCL结构关系NALUNAL Header (1B)+ RBSPH264码流中NALU sps pps IDR帧的理解概念 什么是NALU? H264码流可以分为两层,VCL层和NAL层,NAL的全称是Network abstraction layer,叫网络抽象层,它保存了H264相关的参数信息和图像信息,NAL层由多个单元NALU组成...

2020-09-26 19:35:02 87

原创 【WebRTC---入门篇】(十一)STUN协议

STUN作用:用于NAT穿越;它是典型的CS模式RFC STUN规范STUN headerSTUN Header格式5389格式最低两位必须是00事务ID 是96位魔法树单独划分出32位STUN Message TypeSTUN消息类型Transaction IDSTUN Message BodyTLV3489定义的属性Attribute的使用...

2020-09-25 13:06:31 39

原创 【WebRTC---入门篇】(十)NAT

NAT主要用于内网穿透NAT产生原因NAT的种类NAT穿越原理完全锥型:内网主机先向外发送一个请求形成IP和port地址限制锥形形成映射表五元组地址限制锥形形成映射表六元组对称型,对于不同的主机对应不同的IP和PortNAT穿越原理NAT穿越组合NAT类型检测...

2020-09-25 12:41:23 69

原创 【WebRTC---入门篇】(九)WebRTC网络基础:P2P/STUN/TURN/ICE

NAT作用:内网地址转公网地址STUN作用:中介将公网信息彼此交换TURN作用:P2P不成功的话在云端架设服务器,双方进入同一房间。可以在一起进行数据交互ICE作用:打包以上取最优,先尝试P2P。如果P2P不通再选择TURN。ICE尝试所有可能性...

2020-09-25 12:16:46 59

原创 【WebRTC---入门篇】(八)WebRTC核心之RTP Medio 媒体控制与数据统计

Receiver通过 getReceivers 可以获取一组RTCRtpReceiver对象,用于接收数据Sender通过getSenders 可以获取一组RTCRtpSender对象,用于发送数据,每个对象对应一个媒体轨RTCRtpReceiver/RTCRtpSender属性RTCRtpReceiver方法RTCRtpSender方法RTCRtpTransceiver...

2020-09-25 11:43:21 84

原创 【WebRTC---入门篇】(七)MediaStream

MediaStream方法MediaStream.addTrack( )功能:向流媒体中加入不同的轨MediaStream.removeTrack( )功能:从流媒体中移除不同的轨MediaStream.getVideoTracks( )功能:从流媒体中取出所有的视频轨MediaStream.getAudioTracks( )功能:从流媒体中取出所有的音频轨MediaStream事件MediaStream.onaddtrack功能:添加媒体轨到媒体流...

2020-09-25 11:12:49 42

原创 【开源项目----Android OPenGLES渲染YUV视频文件】

【开源项目----Android OPenGLES渲染YUV视频文件】

2020-09-24 15:14:31 31

原创 【WebRTC---入门篇】(六)JavaScript基础

变量与类型

2020-09-23 19:58:52 30

原创 【WebRTC---入门篇】(五)Web服务器原理与Nodejs搭建

Nodejs安装方式二进制安装apt/brew/yum install nodejsnodejs开发依赖库apt/brew/yum install npmWeb服务器工作原理常见服务器选型Nodejs Nginx ApacheHTTPS服务为什么要调用HTTPS服务?调用摄像头等设备,涉及到个人隐私及安全HTTPS=HTTP + TLS/SSL...

2020-09-23 19:46:22 66

原创 【音视频安卓开发 (八)】OpenSLES播放音频步骤和接口讲解

OpenSLES是安卓内部的音频播放和录音初始化引擎创建输出设备配置PCM格式信息初始化播放器播放和缓冲队列

2020-09-23 10:06:11 55

原创 【音视频安卓开发 (七)】安卓视频播放窗口去掉标题栏、全屏、横屏

java中的MainActivity初始化部分设置这些操作 //去掉标题栏 supportRequestWindowFeature( Window.FEATURE_NO_TITLE); //全屏,隐藏状态 getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCR.

2020-09-23 09:26:04 29

原创 【音视频安卓开发 (六)】Android GLSurfaceView播放视频

GLSurfaceView渲染RGB的数据,利用双缓冲空间机制。取出缓冲地址,将要渲染的数据copy到缓冲地址.获取SurfaceJava要做的事情SurfaceView控件设置到界面中显示SurfaceView定义一个类来实现...

2020-09-23 00:09:34 69

原创 【WebRTC---入门篇】(四)WebRTC设备管理

enumerateDevices API用来获取音视频设备

2020-09-22 21:01:49 22

原创 【WebRTC---入门篇】(三)WebRTC运行机制

轨和流Track轨:音频轨和视频轨是不相交的MediaStream媒体流中包含多个音视频轨WebRTC重要类MediaStream负责添加N个轨,加入到RTCPeerConnectionRTCPeerConnection核心RTCDataChannel非音视频数据,通过RTCPeerConnection取到的RTCPeerConnection调用过程RTCPeerConnection调用时序...

2020-09-22 20:16:57 54

原创 【WebRTC---入门篇】(二)WebRTC的目录结构

2020-09-22 20:04:21 36

原创 【WebRTC---入门篇】(一)WebRTC整体架构

1.绿色部分是WebRTC核心部分(核心库)2.紫色部分是JS提供的API(应用层)整体是应用层调用核心层。核心层,第一层C++ API提供给外面的接口。最主要的是(PeerConnedtion 对等连接)。核心层,第二层 Session上下文管理层(音视频)。核心层,第三层[最重要的部分]音视频引擎 :编解码;音频缓冲BUFFER防止音频网络抖动NetEQ;回音消除;降噪;静音检测;视频引擎 :编解码;jitter buffer防止视频...

2020-09-22 19:39:52 88

原创 【音视频安卓开发 (五)】Android中获取音视频原始数据的方法

一般取得原始数据的方法使用的camera setPreviewCallback

2020-09-22 11:28:12 71

原创 【TCP丢包重传】

TCP丢包重传机制如果在网络状况最糟糕的情况下就会造成极大的延迟。或者超过2min断开连接。如果这种场景下可以采用UDP。UDP需要解决包的重新排序,丢包等问题。

2020-09-21 21:16:54 31

原创 【音视频安卓开发 (一)】AndroidStudio项目配置权限、jni库路径、ABI、Cmake

# For more information about using CMake with Android Studio, read the# documentation: https://d.android.com/studio/projects/add-native-code.html# Sets the minimum version of CMake required to build the native library.cmake_minimum_required(VERSION 3.

2020-09-20 20:07:09 37

原创 【Makefile】

编译流程预处理gcc -E test.c -o test.i test.c源码进行预处理,预处理后停止编译,预处理后文件体积会变大,且为文本格式编译gcc -S test.i -o test.s 编译预处理的文件汇编gcc -c test.s -o test.o .s转成二进制文件链接gcc test.o -o test 将多个目标文件以及所需要的库文件链接生成可执行文件的过程./test生成静态库...

2020-09-19 22:45:56 13

原创 【音视频安卓开发 (四)】AndroidStudio项目配置权限、jni库路径、ABI

创建支持ffmpeg的项目权限(版本) jni库路径 cmake参数 cmake项目配置

2020-09-13 12:43:56 30

原创 【FFMPEG源码终极解析】int av_read_frame(AVFormatContext *s, AVPacket *pkt)

int av_read_frame(AVFormatContext *s, AVPacket *pkt){ const int genpts = s->flags & AVFMT_FLAG_GENPTS; int eof = 0; int ret; AVStream *st; if (!genpts) { ret = s->internal->packet_buffer ? ff_packet.

2020-09-13 11:06:37 148

原创 【FFMPEG源码终极解析】void av_packet_unref(AVPacket *pkt)

av_packet_unref该接口使用了如下调用,该接口主要作用是清理AVPacket中的所有空间数据,清理完毕后进行初始化操作,并且将 data 与 size 置为0,方便下次调用。void av_packet_unref(AVPacket *pkt){ av_packet_free_side_data(pkt); av_buffer_unref(&pkt->buf); av_init_packet(pkt); pkt->data = NU

2020-09-13 10:24:54 59

原创 【FFMPEG源码终极解析】 av_packet_alloc 与 av_packet_free

关于void *av_malloc(size_t size)可以参考av_mallocav_packet_alloc实际是分配AVPacket以后,调用av_init_packet对AVPacket的成员变量进行初始化赋值。AVPacket *av_packet_alloc(void){ AVPacket *pkt = av_mallocz(sizeof(AVPacket)); if (!pkt) return pkt; av_init_packet

2020-09-13 10:06:57 577

原创 【FFMPEG源码终极解析】 av_malloc 与 av_free

void *av_malloc(size_t size){ void *ptr = NULL; //max_aloc_size Ϊ 2147483647 if (size > max_alloc_size) return NULL;#if HAVE_POSIX_MEMALIGN if (size) //OS X on SDK 10.6 has a broken posix_memalign implementation if (posix_.

2020-09-13 10:03:47 333

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

#pragma once#include <mutex>struct AVFormatContext;struct AVPacket;struct AVCodecParameters;class XDemux{public: //打开媒体文件,或者流媒体 rtmp http rstp virtual bool Open(const char *url); //空间需要调用者释放 ,释放AVPacket对象空间,和数据空间 av_packet_free virtual .

2020-09-13 09:43:26 50

原创 【超级播放器】播放器整体架构(一)

2020-09-13 09:41:28 22

原创 面向对象开发的五大基本原则

单一职责开闭原则替换原则接口隔离依赖倒置

2020-09-13 09:15:28 26

原创 FFmpeg NDK跨平台交叉编译

1.首先选择Windows平台安装好环境windows搭建gcc开发环境(msys2)2.创建一个通用脚本

2020-09-11 12:44:03 52

原创 ffmpeg源码下载和安卓库编译编译指令

apt-get install -y makeapt-get install -y unzipcd /rootwget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zipwget http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2unzip android-ndk-r14b-linux-x86_64.ziptar -xvf ffmpeg-3.4.tar.bz.

2020-09-10 15:16:06 28

原创 【流媒体FLV封装协议】

FLV Header

2020-09-07 21:28:08 63

原创 【音视频安卓开发 (三)】OpenGL ES 直接绘制YUV

EGLOpenGL与窗口对应的的适配层,针对安卓平台的适配器。surface 交互到窗口显示

2020-09-03 22:41:42 37

原创 【音视频安卓开发 (二)】

2020-09-03 22:33:22 33

原创 【音视频安卓开发 (一)】

#include <jni.h>#include <string>#include <android/log.h>extern "C" JNIEXPORT jstring JNICALLJava_com_example_first_MainActivity_stringFromJNI( JNIEnv* env, jobject /* this */) { std::string hello = "I am BaoHangY.

2020-09-03 22:14:36 35

原创 【H.264/AVC视频编解码技术】第一章【H264视频编码详细解析】

H264压缩比YUV格式为 YUV420 分辨率 640 x 480 帧率 15 ,比特率为 640 x480 x 1.5 x 15 x 8 =55M ,建议码流 500kpbs 。 压缩率 1 / 100声网权威推荐码流GOP所谓GOP,意思是画面组,MPEG格中的帧序列,分为I、P、B三种,如排成IBBPBBPBBPBBPBBP...样式,这种连续的帧图片组合即为GOP(画面群,GROUP OF PICTURE),是MPEG将来存取的最本基本的单位,它的排列顺序将会一直重...

2020-09-02 21:21:18 237

原创 【TCP三次握手与四次挥手最强解析】

看不懂的结合我上一篇文章TCP协议

2020-09-01 21:28:40 52

WebRTC音视频数据采集webserver.rar

WebRTC音视频数据采集 参考文章https://cn-yixiaonaihe.blog.csdn.net/article/details/108926316

2020-10-05

WebRTC传输速率控制

基于WebRTC的传输速率控制 相关文章https://blog.csdn.net/qq_40179458/article/details/108792757

2020-10-07

安卓初级控件开发(一)

安卓初级控件开发(一)!!!!!!!!!!

2021-01-03

Windows摄像头采集渲染

在Windows环境下采集摄像头图像,并且转换为YUV420P的图像格式进行渲染显示到屏幕上。

2020-12-30

rtspserver-master.zip

RTSP和RTP发送数据的通信

2020-12-26

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

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

2020-12-24

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

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

2020-12-05

RGB_PCM数据封装.rar

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

2020-11-02

基于FFmpeg的格式转封装.rar

基于FFmpeg的格式转封装,详细可以参考我的博客相关文章 cn-yixiaonaihe.blog.csdn.net

2020-10-29

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

基于QT5的原生屏幕录制程序!!!!!!!!!!!!!!!! 可应用于视频编码!!!!!!!!!!!!!!!!!!!!

2020-10-08

WebRTC非音视频数据传输

WebRTC非音视频数据传输!!!!!!!!!!!!!!!!!! 非常有价值的东西!!!!!!!!!!!!!!!!!!!

2020-10-07

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

基于WebRTC的一对一实时音视频互动 相关参考 https://cn-yixiaonaihe.blog.csdn.net/article/details/108938355

2020-10-07

端对端1V1传输webserver.rar

webrtc 1V1端对端视频传输 参考文章 https://cn-yixiaonaihe.blog.csdn.net/article/details/108931564

2020-10-05

简单聊天室webserver.rar

基于WebRTC的聊天室 相关文章https://blog.csdn.net/qq_40179458/article/details/108929906

2020-10-06

获取音视频设备信息webserver.rar

基于WebRTC获取音视频设备。包括技术nodejs js 相关文章https://blog.csdn.net/qq_40179458/article/details/108740650

2020-10-05

Day923.rar

基于android studio 开发 使用OpenGLES库的shader变成 使用了C++ NDK

2020-09-24

QTopengl视频播放编程.rar

基础QT的OpenGL渲染YUV数据 相关技术请配合文章学习 https://blog.csdn.net/qq_40179458/article/details/106804426

2020-09-23

ImageEncodec.rar

基于FFmpeg实现将各种格式的图片编码成为H264图片编码 其中包括保存为YUV格式文件 保存为H264格式文件

2020-09-23

Qt播放音频.rar

基于QT开发的PCM音频播放器。 可以配合相关文章学习 https://blog.csdn.net/qq_40179458/article/details/106804336

2020-09-23

TestOpenSL.rar

安卓端原生OPenSLES对音频进行播放处理。 可以关注文章一起梳理流程 https://blog.csdn.net/qq_40179458/article/details/108746264

2020-09-23

librtmp.module

基于librtmp库开发的 主要包括 发送H264 发送FLV 和 接收RTMP流保存为FLV文件

2020-09-22

FFMPEG_NDK.rar

Windows下FFmpeg4.3.1 NDK编译通用脚本 支持跨平台编译

2020-09-11

身份证信息快捷读取A.rar

神思通用100型身份证读卡器 快捷键读取相关信息并输入到焦点输入位置

2019-09-26

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除