自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (9)
  • 收藏
  • 关注

原创 链接与装载---函数调用过程栈帧变化分析

目录概述函数调用过程中栈帧变化分析准备知识汇编代码语法风格x86寄存器介绍函数调用约定函数栈帧分析总结参考附录cdecl概述学过c语言的同学都知道,函数调用过程是通过栈结构来实现的, 在内存空间中, 栈可用于保存函数的参数,局部变量, 返回值,返回地址等。为什么要用栈来表示呢?简单来说,栈是一种LIFO形式的数据结构,所有的数...

2019-10-15 09:59:41 941

原创 linux账户密码介绍

目录passwd shadow文件介绍shadow文件格式生成密码方式1. openssl生成2. chpasswd3. crypt函数4. passwd5. python crypt库passwd shadow文件介绍在unix早些时候是没有/etc/shadow这个文件的。用户的所有信息都只是保存在/etc/passwd文件中,加密后的用户密码保...

2019-12-06 20:06:59 2141

原创 linux服务器配置

目录添加删除用户自动化修改密码踢掉登录的用户修改主机名查看linux系统版本查看磁盘空间scp远程拷贝禁止用户登录linux定时任务crontab添加删除用户购买ecs服务器之后,就可以直接采用root用户远程登陆了, 接下来,我们创建一个普通用户,首先通过root登录服务器:ssh root@ip使用root用户登录Ubuntu系统以...

2019-12-06 20:04:29 336

原创 nginx配置-多服务部署、负载均衡

目录nginx代理多个服务器多站点多location负载均衡配置nginx代理socket.io服务web前端配置nginx.confsocket.io服务器nginx代理多个服务器主要有两种方式多站点常用于在一台机器上部署多个不同站点, 各自有不同的域名,配置如下:// nginx.conf# nginx 80端口配置 (二级域名)...

2019-11-29 20:07:28 2297

原创 RT-thread finsh移植到linux平台

目录FinSH介绍传统命令行模式C 语言解释器模式FinSH移植移植要点效果验证代码下载参考在一次项目中, 需要进行嵌入式操作系统选型, 需求就是选择一款OS,既能满足当下项目的需要,又要考虑公司未来对物联网应用的扩展能力,对比了目前市面上流行的开源操作系统,诸如FreeRTOS,RTX,UCOS,RT-Thread,contiki等, 最终确定了一款Io...

2019-11-20 15:30:52 1610

原创 RT-Thread内核源码分析-信号量实现原理

目录概念信号量基本操作信号量初始化获取信号量释放信号量总结概念信号量机概念是由荷兰科学家Dijkstr(就是解决了最短路径问题的那哥们)引入,它是用来协调不同进程间的数据对象的,信号量本质上而言是一个计数器, 记录了某个资源的存取情况, 用来为多个进程共享的数据结构提供受控访问。 在不同的操作系统平台,都有信号量的实现, 虽然各个平台在实现上和概念上有些区别, 却始...

2019-11-20 15:27:16 1065

原创 RT-Thread内核源码分析-消息队列实现原理

目录概念消息队列消息队列初始化消息队列-发送消息消息队列-读取消息总结概念消息队列本质上是存放消息的链接表,存放在内核中,内核通过维护这个链表来维护消息队列。 消息队列的初始化就相当于创建一个空闲的链表, 能够存放一定数量的消息;向消息队列发送消息,就是向这个链表中插入一个新节点;从消息队列中都数据,实际就是从链表中删除一个节点。消息队列消息队列结构体如下...

2019-11-20 15:27:01 1125

转载 函数调用约定---关于(cdecl、fastcall、stdcall、thiscall) 的一点知识

当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在堆栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或者...

2019-10-09 10:16:26 3150

原创 提车

目录提车流程外观:发动机舱驾驶室后备箱:底盘:汽车玻璃篇轮胎篇上牌上牌资料:缴税需要资料:缴纳购置税:上牌流程:其他提车流程外观:里程数, 看车辆名牌,生成日期,与合格证一致; 车内装饰,座椅等塑料膜是否完整 注意车漆和车身缝隙; 重点观察前后保险杠和车身缝隙,车门缝隙; 在强光下观察车漆是否无色差。 ...

2019-09-30 18:23:01 181

原创 ONVIF开发---ONVIF框架代码生成

目录下载wsdl源文件编译wsdl源文件、生成c/c++代码准备编译环境编译整理文件下载wsdl源文件wsdl文件官网:https://www.onvif.org/profiles/specifications/可以选择将各个wsdl文件下载下来,也可以不下载, 本文采用不下载方式。编译wsdl源文件、生成c/c++代码准备编译环境新建目录...

2019-09-30 18:20:55 589

原创 ONVIF开发---gSOAP编译安装

下载源码https://sourceforge.net/projects/gsoap2/https://www.genivia.com/downloads.html#unix:官网下载,需要登录安装依赖库sudo apt-get install openssl libssl-devsudo apt-get install bisonsudo apt-get i...

2019-09-30 18:20:48 138

原创 链接与装载---链接过程控制之链接脚本

目录为什么需要链接脚本链接脚本语法指定链接脚本编译参考为什么需要链接脚本通常我们在编译链接代码文件时,只需要使用$ gcc a.c这个过程中,我们并没有指定链接脚本,是不是就真的不需要链接脚本呢?其实ld 在用户没有指定链接脚本的时候会使用默认链接脚本。 我们可以使用下面的命令行来查看ld默认的链接脚本:# ld -verboseGNU ld (GNU B...

2019-09-30 18:15:44 609

原创 链接与装载---elf文件示例

制作elf文件: 使用demo.c编译得到。 代码demo.c: 一个非常简单的程序#include <stdio.h>int func1(){ printf("func1\n"); return 0;}int func2(){ printf("func2\n"); return 0;}int main(){ func1(); func2(...

2019-09-30 18:15:36 299

原创 链接与装载---Linux下c语言main函数调用原理

目录main函数调用过程说明其他说明main函数调用过程说明在学习完链接过程控制之链接脚本这一节之后,我们知道,linux环境下可执行文件并不是从main开始执行的, 入口是在默认链接脚本中使用ENTRY()指定的, 通过执行命令'ld -verbose'可以看出,在linux下编译的应用程序,可执行文件入口为_start,它其实是定义在glibc库中的一个函数。当我们在...

2019-09-30 18:15:00 606

原创 链接与装载---链接原理详解

目录前言静态连接第一步:地址和空间分配第二步:符号解析和重定位动态链接为什么要动态链接动态链接原理动态链接器信息动态链接步骤启动动态链接器装载共享对象重定位和初始化前言为了更好地理解计算机程序的编译和链接的过程, 我们先简单回顾下计算机程序开发的历史一定会非常有益。计算机的程序开发并非从一开始就有着这么复杂的自动化编译、 链接过程。...

2019-09-30 18:14:50 2173

原创 链接与装载---理解ELF文件

目录elf文件整体透视elf核心数据结构分析1. ELF_Header2. Program Header3. Section Header Tableelf实例总结细节说明1. elf可执行文件的执行入口地址是怎么确定的?2. 字符串表3. ELF Header中e_shstrndx的理解4. 符号表5. elf常见section的含义6. 重定...

2019-09-30 18:12:35 875

原创 链接与装载---编译过程分析

目录预处理编译汇编链接在Linux下, 当我们使用GCC来编译程序时, 只须使用最简单的命令$ gcc hello.c事实上, 上述过程可以分解为4个步骤, 分别是预处理(Prepressing,又称为预编译) 、 编译(Compilation) 、 汇编(Assembly) 和链接(Linking) , 如图所示:预处理首先是源代码文件he...

2019-09-30 18:11:44 164

原创 linux环境tcp/ip错误码

基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno)。完整的错误列表可以在文件 /usr/include/sys/errno.h 中找到 Errno。针对每一种操作系统给出了errno 号码。Errno AIX HP-UX Solaris UnixWare Linux 说明 EINTR 4 4 ...

2019-08-27 16:21:46 1033

原创 音视频开发---搭建RTSP服务器

目录1下载live555开源库2 编译3 启动rtsp服务4 验证测试搭建RTSP服务器有多种方式,可以通过VLC,ffserver,live555 media server来搭建RTSP服务,本节重点介绍借助live555来搭建rtsp服务器。live555 media server是开源库live555自带的一款工具,基于库源码实现的一个轻量级的rtsp服务(VLC也...

2019-08-26 10:11:38 2075

原创 音视频开发---快速理解ONVIF规范

目录ONVIF规范介绍WebServiceWeb service介绍WSDLSOAPRTSPRTSP消息格式rtsp交互过程ONVIF项目开发流程致谢 这篇文章是对ONVIF规范的一些重要知识点进行总结,便于快速的对ONVIF规范有一个整体的理解, 文中参考、引用了许多专业的博客,在此特别感谢。ONVIF规范介绍 ...

2019-08-22 15:17:55 703

转载 HTTPS原理和CA证书申请(满满的干货)

转载自paoge2815的一篇文章,将https原理和CA证书讲解的非常透彻。众所周知,WEB服务存在http和https两种通信方式,http默认采用80作为通讯端口,对于传输采用不加密的方式,https默认采用443,对于传输的数据进行加密传输目前主流的网站基本上开始默认采用HTTPS作为通信方式,一切的考虑都基于对安全的要求,那么如何对自己的网站配置HTTPS通信,是本文着重介...

2019-08-15 14:25:19 474

原创 音视频开发---ffmpeg rtsp拉流

使用rtsp拉取rtsp服务器的视频,为了方便测试,在本地linux虚拟机中搭建了一个rtsp服务器(参考搭建rtsp服务器),rtsp拉流端通过ffmpeg实现(rtsp拉流和rtmp拉流类似).代码/** laliu1: 将rtsp流保存到本地视频文件 usage: ./a.out rtsp://localhost/rango.ts xx.ts ...

2019-08-14 14:59:31 2983

原创 音视频开发---ffmpeg rtmp拉流

目录代码编译验证参考 写了ffmpeg推流器之后,为了方便测试验证,于是就写了一个简单地拉流器,拉取rtmp流,将拉取数据保存为本地视频文件。与推流器的日志进行对比,可以验证推流端的每一帧和拉流端是一一对应的。 由于FFmpeg本身支持很多的封装格式和流媒体协议,本代码也支持多种不同的封装格式,也可以基于播放器代码,将本代码修改为拉取流媒体直接播放...

2019-08-14 14:51:55 8618 4

转载 彻底的理解:WebService到底是什么?

最近老是有人跟我提web service接口,怎么,怎么滴,我觉得很扎耳朵,web service是一种将服务器的服务封装起来的技术,表现为对外提供接口,所以,web service不是一种接口 !!!!!!一、序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。...

2019-08-05 09:29:53 239

原创 音视频开发---音视频同步算法

目录ffplay简介为什么要做音视频同步音视频同步算法参考 本文是对音视频同步算法的总结,以阅读ffplay.c源码为基础,结合各位博主的分析,逐渐深入理解同步算法原理, 并根据自身理解, 编写一套简易的视频播放器,用于验证音视频同步算法。ffplay简介 ffplay是FFmpeg提供的开源播放器,基于FFmpeg和SDL进行视频播放, 是研究...

2019-07-31 19:29:08 6224 1

原创 音视频开发---ffmpeg rtmp推流

目录推流介绍FFmpeg推流推流器函数流程图代码遗留问题参考推流介绍推流是将输入视频数据推送至流媒体服务器, 输入视频数据可以是本地视频文件(avi,mp4,flv......),也可以是内存视频数据,或者摄像头等系统设备,也可以是网络流URL。本篇介绍将本地视频文件通过FFmpeg编程以RTMP直播流的形式推送至RTMP流媒体服务器的方法。推流的网络拓扑...

2019-07-31 18:01:48 18087 2

原创 RTMP协议规范1.0

RTMP协议规范1.0 中文版 英文版 雷神 RTMP协议简析

2019-07-31 17:30:33 170

转载 Red5与Nginx Rtmp性能对比

前期也是采用 red5,但是随着用户数的不断增长,red5 完全不能支撑整个业务。问题集中爆发在几个方面:对于单主播,听者超过400人时,CPU超过90%(主机为4核,32G)人数越多,音质,画面卡顿很多,不稳定,用户体验很差。于是我们决定对red5 进行替换,对各种选型进行了调研,并在 red5 相同环境下做了测试,发现 nginx-rtmp 的性能非常突出,最终选用 nginx-...

2019-07-31 17:16:41 1030

转载 音视频开发---音视频打时间戳的方法

没有封装格式的裸流(eg:H.264裸流)是不包含PTS、DTS这些参数的。在发送这种数据的时候,就需要自己计算并写入AVPacket的PTS,DTS,duration等参数。1. 视频时间戳pts = inc++ *(1000/fps);其中inc是一个静态的,初始值为0,每次打完时间戳inc加1.在ffmpeg,中的代码为pkt.pts= ...

2019-07-26 10:43:31 825

原创 音视频开发---音频基础知识总结

目录音频基础知识声道采样率样本格式分片(plane)和打包(packed)声道分布(channel_layout)音频帧的数据量计算音频播放时间计算音频重采样AAC资料AAC规格简述AAC特点AAC音频文件格式ADTS头术语说明参考对学习过程中的知识点进行归纳总结。音频基础知识不仅限于ffmpeg,音频采样所得的PCM都含...

2019-07-24 11:29:28 2783

原创 音视频开发---FFmpeg+SDL本地摄像头直播

继上一篇ffmpeg录像并保存为mp4之后, 这一篇介绍摄像头本地直播,基于FFmpeg+SDL2实现, 代码中关键部分都有注释,这里不再叙述,详细代码如下:/** 摄像头SDL直播*/#include <stdio.h>#include <string.h>#include <stdlib.h>#include <un...

2019-07-17 16:48:52 591

原创 音视频开发---深入理解sdl渲染、纹理

1. 概念渲染在电脑绘图中是指用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。早期计算机生成的三维图像看起来往往像是发亮的塑料,虽然这在当时也是比较先进的,但是它们缺乏各种纹路——如磨损、裂痕、指纹和污渍等,而这些纹路会增加三维物体的真实感。近年来,纹理已经在开发人员中得到普及并作为增强计算机生成的三维图像的真实...

2019-07-10 16:14:44 1594

原创 音视频开发---ffmpeg录像并保存为mp4

使用ffmpeg录像,并保存为mp4文件,涉及到的数据结构和函数接口如下:代码关键部分都有注释,这里不再过多叙述。/** 用摄像头录像,并保存为mp4文件*/#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>...

2019-06-28 17:15:20 2279

原创 音视频开发---FFmpeg开发流程总结

目录1. FFmpeg简介1.1 FFmpeg的封装模块AVFormat1.2 FFmpeg的编解码板块AVCodec1.3 FFmpeg的滤镜模块AVFilter1.4 FFmpeg的视频图像转换计算模块swscale1.5 FFmpeg的音频转换计算模块swresample2. ffmpeg处理媒体文件思路2.1先要明白媒体中包含有什么信息2.2 为什么要...

2019-06-14 08:40:00 1056

转载 音视频开发---JPEG格式分析

本文转载自:https://www.cnblogs.com/sddai/p/5666924.html,并在文章末尾增加了例子说明。JPEG文件的存储格式有很多种,但最常用的是JFIF格式,即JPEGFileInterchangeFormat。JPEG文件大体可以分为两个部分:(1)标记码;由两个字节构成,其中,前一个字节是固定值0XFF代表了一个标记码的开始,后一个字节不同的值代表着...

2019-06-10 14:00:38 325

转载 从需求的角度去理解Linux系列:总线、设备和驱动

转载:https://blog.csdn.net/yueqian_scut/article/details/48687127

2019-06-05 14:19:28 165

原创 音视频开发---编译安装SDL_image库

SDL2库内部提供了加载BMP图片的接口,而我们常见的诸如jpg,png等格式的图片,需要借助第三方库来完成,这里我们介绍SDL2的扩展库SDL_image的编译安装方法。SDL_image简介这里引用Readme.txt中的一段话来说明库的功能:1. 编译安装 下载:http://www.libsdl.org/projects/SDL_imag...

2019-06-05 14:17:19 911 1

原创 音视频开发---基于SDL2显示JPG图片

有了使用SDL2 &SDL2_image显示bmp,png的经验,我们这次来显示JPG图片,修改代码如下(完整代码参考https://blog.csdn.net/u011734326/article/details/90635059):SDL_RWops *dst = SDL_RWFromFile("1.JPG", "rb"); if(dst == NULL){ pri...

2019-06-05 14:14:50 742

原创 音视频开发---基于SDL2显示图片

SDL的介绍可以参考雷神的博客:https://blog.csdn.net/leixiaohua1020/article/details/11954039SDL内部包含了加载BMP图片的接口,但是对于BMP之外的图片,则需要借助扩展库SDL_image来实现。SDL_image—支持时下流行的图像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGA。SDL加载PN...

2019-05-28 10:51:50 556

原创 音视频开发---linux环境基于ffmpeg实现拍照功能

本机摄像头可直接输出mjpeg格式, 将摄像头采集的数据保存为jpg图片即可。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include "avformat.h"#include "avcodec.h"#include "av...

2019-05-27 15:30:55 1249

learn elf .rar

这个资源是文章https://mp.csdn.net/postedit/101016704用到的资源,需要配合文章一起使用

2019-09-20

执行和链接规范ELF三.pdf

执行和链接规范之elf规范,非常适合那些希望了解elf的同学们

2019-09-19

制作操作系统&CDN;技术分享.rar

包含《30天制作操作系统》 和 《CDN技术分享》两个文档

2019-08-26

onvif标准.pdf

ONVIF2.0规范高清中文版, pdf格式,是学习ONVIF的不错的资料

2019-08-22

ffmpeg rtmp推流源码

一份可以直接将本地视频推送到服务器的推流源代码, 是学习推流的很好的资料, 代码基于ffmpeg rtmp推流, 采用nginx+rtmp module搭建本地流媒体服务器

2019-08-07

rtmp_specification_1.0.rar

Adobe官方的RTMP协议规范, 英文版, 中文翻译参考:https://blog.csdn.net/u011734326/article/details/97938041

2019-07-31

ffmpeg视频播放器.c

视频播放器 基于ffplay编写的一个简易的音视频播放器, 借鉴ffplay的音视频同步算法,运行环境: linux。 代码是我在学习ffmpeg过程中编写的,旨在于研究音视频同步算法, 部分细节可能缺乏严谨的判断, 但是整体上涵盖了视频播放的各个过程,并带有详细的注释和调试信息, 可供参考。

2019-07-29

capture_by_ffmpeg.rar

在linux平台,使用ffmpeg库实现拍照功能, 可编译通过。

2019-05-27

linux V4L2编程拍照

linux环境下基于V4L2实现的拍照程序,包括代码和说明文档,可编译通过

2019-05-21

空空如也

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

TA关注的人

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