循环队列详解 前面分析顺序队的时候,我们知道,顺序队存在”假溢出”的问题,这个问题有时会造成很大的内存浪费,循环队列就是为了解决这个问题而提出地一个很巧妙的办法.循环队列和顺序队列的主要区别在于:循环队列将顺序队列臆造成一个环状空间.在操作上这种异同体现在:相同点:在顺序队列和循环队列中,进行出队、入队操作时,队首、队尾指针都要加 1 ,朝前移动。不同点:1. 在循环队列中当队首、队尾指针指向向...
RTMP协议详解 前期准备 了解RTMP定义 准备RTMPDump中的librtmp 使用openssl中的libssllibcrypto 推流工作 整体框架图 使用libtrmp提供的API 将streaming封装成为RTMP格式 进阶 RTMP client与RTMP server交互流程 RTMPDump源码分析 握手HandsShak...
RTP详解 写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1、RTP He...
详解FFMPEG API 认识FFmpeg FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统工程师一般。几个小知识: FFMPEG项目是由法国人Fabrice B...
linux 下fcntl()函数 功能描述:根据文件描述词来操作文件的特性。#include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcn...
uboot源码-MMC分析 一、uboot与linux驱动1、uboot是裸机程序狭义的驱动的概念:操作系统中用来具体操控硬件的那部分代码叫驱动。 裸机中没有驱动的概念,因为没有操作系统。 裸机程序是直接操控硬件的,而操作系统中则是通过驱动来操控硬件。两者的本质区别是分层。2、uboot的虚拟地址对硬件操作的影响(1)操作系统下,MMU是开启的,即linux驱动使用的都是虚拟地址。纯裸机程序不会开启MMU,...
linux下的exec命令 shell 中的 exec 两种用法:1.exec 命令 ;命令代替shell程序,命令退出,shell 退出;比如 exec ls2.exec 文件重定向,可以将文件的重定向就看为是shell程序的文件重定向 比如 exec 5</dev/null;exec 5<&-=============================shell的内建命令exec将并不启...
详解linux下的udev 如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但...
samba服务日志文件 1、Samba服务日志文件日志文件对于samba非常重要,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。在/etc/samba/smb.conf文件中,logfile为设置samba日志的字段。#=======================GlobalSettings==================...
ubuntu 更换更新源 1 备份原来的更新源cp /etc/apt/sources.list /etc/apt/sources.list.backup如果提示权限不够就输入下面两行,先进入到超级用户,再备份sudo -scp /etc/apt/sources.list /etc/apt/sources.list.backup2 修改更新源 打开sources.list (这就是存放更新源的文件...
RTP详解 写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1、RTP He...
MPEG2-TS介绍 一:基本概念1.ES--Elementary Streams(原始流)是直接从编码器出来的数据流,ES经过PES打包器之后,转换成PES包。ES仅是包含一种数据内容的数据流,如h.264视频或者aac音频数据。打包之后的PES也是只包含一种的ES,如只含视频ES的PES或者只含音频ES的PES。每个ES都由若干个存取单元(AU)组成,每个视频AU或者音频AU都由头部和编码数据两部分组成,一...
H264编码基础概念+格式分析 一、编码基础概念1、为什么要进行视频编码?视频是由一帧帧图像组成,就如常见的gif图片,如果打开一张gif图片,可以发现里面是由很多张图片组成。一般视频为了不让观众感觉到卡顿,一秒钟至少需要16帧画面(一般是30帧),假如该视频是一个1280x720分辨率的视频,那么不经过编码一秒钟的大小:结果:1280x720x60≈843.75M所以不经过编码的视频根本没法保存,更不用说传...
YUV数据格式 概要:与RGB编码方法类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它是指将亮度参量(Y:Luminance或Luma)和色度参量(UV:Chrominance或Chroma)分开进行表示的像素编码格式。而这样分开的好处就是不但可以避免相互干扰--没有UV信息一样可以显示完整的图像,因而解决了彩色电视与黑白电视的兼容问题;还可以降低色度的采样率而不会对图像质量影响太大,降...
linux下生成core dump文件方法 core dump的概念:A core dump is the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally (crashed). In practice, other key ...
ubuntu 编译安装ffmpeg 1.FFmpeg编译1.1.安装yasm这里我是直接通过ubuntu包安装的,当然也可以通过编译源码来安装。sudo apt-get install yasm1.2.下载FFmpeggit clone https://git.ffmpeg.org/ffmpeg.git1.3.配置、编译FFMPEG(1) apt-get install yasm //这儿需要先...
fopen出错问题 函数介绍:函数原型 FILE * fopen(const char * path,const char * mode); 函数功能 打开一个文件参数: path [in] 名称 mode[in] 打开方式返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。 注:这里只是简单介绍下函数功能和参数,具体参数意思此处不...
指针做形参时应该注意的地方 1. 指针作为形参时,不可以将指针的地址改变,比如调用malloc。2. 只可以对指针指向的值做改变。 首先看以下程序: #include <stdio.h>int *swap(int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; ret...
Linux下C语言计算文件的md5值(长度32) 找到了 md5.h 和 md5.c 的源文件,仿照别人的封装了个函数(他那个有问题,和 md5sum 计算出来的都不一样)。废话少说,直接贴 代码 : (再废一句话,如果只想计算字符串的md5值,把字符串传给 MD5Update 函数一次就好)#include "md5.h"#include <stdio.h>#include <stdlib.h>#inc...
linux sqlite3 基本命令操作 备注:本文所有操作均在root用户下进行。1、安装sqlite3ubuntu下安装sqlite3直接在终端运行命令:#apt-get install sqlite3查看版本信息:#sqlite3 -version2 、sqlite3常用命令当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:#sqlite3 test.db查看数据库文件信息命令...