自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (38)
  • 收藏
  • 关注

原创 ffmpeg用到的命令

g++ -o a.out ffcode.cpp -I /home/share/ffmpeg/ffmpeg-3.3.1 -lavcodec -lavformat -lavdevice -lavutilffmpeg -i 123.mp4 out.flvgcc -g -o a.out ffmpeg.c cmdutils.c ffmpeg_cuvid.c ffmpeg_op

2017-05-30 19:03:14 492

原创 ubuntu下 ffmpeg视频编码和转换命令

ffmpeg -i Forrest_Gump_IMAX.mp4 hugefile.yuv  ffmpeg  -s 640x352 -i hugefile640\ x\ 352.yuv out.avi

2017-05-28 22:16:44 3158

原创 将ffmpeg编译

1. 下载源文件 make   2.make install3.  将ffmpeg命令  编译成a.out 文件,这样便于对源代码阅读,只要在源代码根目录下运行下面的编译就可以  gcc -g -o a.out ffmpeg.c cmdutils.c ffmpeg_cuvid.c ffmpeg_opt.c ffmpeg_vdpau.c ffmpeg_filter.c  ffmpeg_v

2017-05-28 21:23:16 353

转载 H.264编码系统几个比较重要的算法

H.264编码系统比较复杂,这里是它的几个比较重要的算法:1. Configure()函数,用于解析命令行参数,读取配置文件,其中,ac表示命令行参数数量,av表示命令行参数。void Configure(int ac, char *av[ ]){……}2. AllocNalPayloadBuffer()函数,用于初始化NAL模块,即分配NAL_Payload_buffer缓冲区。

2017-05-24 16:16:28 578

转载 libevent多线程

利用libevent和多线程 实现多并发的服务器的设计。主进程监听连接的到来使用一个base,进行事件循环。每当 一个连接进来时,创建一个新的线程实现与客户端之间的通信,子线程建立一个base,进行事件循环客户端(多线程): 主线程->连接描述符(socket_fd = connectServer(ip, port);) -》创建子进程(init_read_event_th

2017-05-22 15:42:04 778 1

转载 利用libevent 和线程池实现高并发服务器的设计

主进程添加监听套接字的事件并进行事件循环,将连接描述符放入定义的数据结构中,并在主进程中进行写管道,触发子线程的读管道事件,然后从连接结构中获取连接描述符进行和客户端进行通信。其中主进程和子线程都有不同的基事件base.  #include <stdio.h>#include <stdlib.h>#include <unistd.h>#inc...

2017-05-22 15:08:12 5020 3

转载 libevent多线程使用bufferevent的那些事

void do_accept(struct evconnlistener *listener, evutil_socket_t fd, struct sockaddr *sa, int socklen, void *ctx){ //不使用Nagle算法,选择立即发送数据而不是等待产生更多的数据然后再一次发送 int optval = 1; setsockopt(fd, S

2017-05-22 12:18:36 1221

转载 图文详解YUV420数据格式

YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chro

2017-05-21 20:12:53 221

原创 一 视频播原理

1.音视频涉及技术有:(1) 压缩编码技术 (2)封装技术  (3)流媒体协议技术 2.音视频封装格式有avi   rmvb   mp4   flv   mkv(把音视频打包成一个文件的规范)3.视频播放器的原理解协议(http rmtp)-->解封装(mp4 mkv ts flv)-->音频/视频解码(PCM)解码(YUV420P  RGB)

2017-05-21 15:30:21 380

原创 好的视频编解码网址和博文地址

http://blog.csdn.net/yangzhongxuan/article/category/1242740

2017-05-18 08:39:48 1035

转载 十四、H.264的变换编码(一)——矩阵运算与正交变换基本概念

GitHub代码地址:点击这里1. 矩阵的定义矩阵,英文称为”Matrix”,是数学中一个非常重要的概念。从形式上看,矩阵可以用一个m行n列的数组成的表格表示。如下图可表示一个4行4列的方形矩阵:在实际应用中,矩阵可以在多个技术领域发挥重要作用,如音视频压缩编码、机器学习、人工智能等领域。2. 矩阵的运算矩阵必须在计算中才能与其他

2017-05-17 22:29:08 1269

转载 十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

GitHub代码地址:点击这里1. H.264的CAVLC解析宏块残差数据的流程在H.264的解码器在解析宏块的残差数据时,其流程类似于上文提到的CAVLC编码的逆过程。在解析一个宏块残差的时候,首先解析的是残差矩阵的非零系数以及拖尾系数的个数numCoeff和trailingOnes。随后是每一个拖尾系数的符号trailingSigns。而后是每一个非拖尾非零系数level的

2017-05-17 22:27:35 749

转载 十三、熵编码算法(3):CAVLC原理

GitHub代码地址:点击这里上下文自适应的变长编码(Context-based Adaptive Variable Length Coding, CAVLC)1. 引言在前述的几章节的博文/视频中,我们已经了解到熵编码是利用信息的统计冗余进行数据压缩的无损编码方法,并且已经讨论过了熵编码的基本原理、H.264中使用的语法元素解析算法“指数哥伦布编码”的算法与实践:

2017-05-17 22:24:49 2715

转载 十二、解析H.264码流的宏块结构(上)

GitHub代码地址:点击这里H.264中Slice Body——宏块结构(Macroblock)的解析1.Slice Data结构的定义在已经实现了一个slice的header部分之后,下面的工作将是研究如何解析一个slice的主体,即Slice Body部分。一个Slice的body部分主要是一个个的宏块结构Macroblock组成,此外还存在一些辅助的信息。标准文档中

2017-05-17 22:23:14 2183

转载 十一、H.264的Slice Header解析

GitHub代码地址:点击这里H.264中的条带(Slice)1. Slice的概念我们已经知道,整个H.264的码流结构可以分为两层:网络抽象层NAL和视频编码层VCL。在NAL层,H.264的码流表示为一系列的NAL Units,不同的NAL Units中包含不同类型的语法元素。前面两篇中所解析的序列参数集SPS和图像参数集PPS就是其中重要的两个部分,其中包含了控制解

2017-05-17 22:22:21 6003 1

转载 十、图像参数集Picture Paramater Set(PPS)解析

GitHub代码地址:点击这里除了序列参数集SPS之外,H.264中另一重要的参数集合为图像参数集Picture Paramater Set(PPS)。通常情况下,PPS类似于SPS,在H.264的裸码流中单独保存在一个NAL Unit中,只是PPS NAL Unit的nal_unit_type值为8;而在封装格式中,PPS通常与SPS一起,保存在视频文件的文件头中。1. 图像参数

2017-05-17 22:18:58 1029

转载 九、序列参数集Sequence Paramater Set(SPS)解析

在H.264标准协议中规定了多种不同的NAL Unit类型,其中类型7表示该NAL Unit内保存的数据为Sequence Paramater Set。在H.264的各种语法元素中,SPS中的信息至关重要。如果其中的数据丢失或出现错误,那么解码过程很可能会失败。SPS及后续将要讲述的图像参数集PPS在某些平台的视频处理框架(比如iOS的VideoToolBox等)还通常作为解码器实例的初始化信息使

2017-05-17 22:17:52 1741

转载 八、H.264中的熵编码基本方法、指数哥伦布编码

1. H.264中的熵编码基本方法在成功从NAL Unit中获取到语法元素的码流之后,接下来就是对语法元素的码流进行解析。根据我们在前面的博文中所讲述的H.264编码框架图,经过预测、变换量化等步骤后得到的H.264语法元素将通过熵编码器压缩为符合标准的H.264码流。因此,为了还原各个语法元素,必须对码流使用熵编码的解码器进行解码。在H.264的标准协议中,不同的语法元素指定了不

2017-05-17 22:17:15 1754

转载 七、 熵编码算法(1)——基础知识

1. 熵编码概念“熵”这一概念原本来自于化学和热力学,用于度量能量退化的指标,即熵越高,物体或系统的做功能力越低。后来香农将这一概念引入到信息论中,用于表示消息的平均信息量。信源的熵通常可以表示信源所发出信息的不确定性,即越是随机的、前后不相关的信息,其熵越高。在信息论中,香农提出了信源编码定理。该定理说明了香农熵与信源符号概率之间的关系,说明信息的熵为信源无损编码后的平均码字长度

2017-05-17 22:16:36 2657

转载 六. NAL Unit格式解析

GitHub代码地址:点击这里在有序字节流格式的H.264码流中,我们可以根据前缀起始码0x 00 00 01或0x 00 00 01获取到一个完整的NAL Unit所包含的的字节数据。H.264码流中的每一个NAL Unit的作用并不是相同的,而是根据不同的类型起不同的作用。因此将H.264的码流解析为NAL Unit之后,下一步将是对NAL Unit中的数据进行解析。1. NA

2017-05-17 22:15:29 2946

转载 五. H.264的码流封装格式

H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流。对于不同的应用场景,NAL规定了一种通用的格式适应不同的传输封装类型。通常NAL Unit的传输格式分两大类:字节流格式和RTP包格式;字节流格式:字节流格式在H.264标准的协议文档中在Annex B中规定,是大多数编码器实现的默认输出格式。字节流格式

2017-05-17 22:14:24 1338

转载 四. 常见H.264视频编解码器(X264和JM)及参考软件JM的下载与编解码

常见H.264视频编解码器(X264和JM)及参考软件JM的下载与编解码我们已经知道,H.264是一种视频压缩标准,其只规定了符合标准的码流的格式,以及码流中各个语法元素的解析方法。H.264标准并未规定编码器的实现或流程,这给了不同的厂商或组织在编码实现方面极大的自由度,并产生了一些比较著名的开源H.264编解码器工程。其中H.264编码器中最著名的两个当属JM和X264,这二者都属于H

2017-05-17 22:13:38 9774

转载 三. H.264简介

一. H.264视频编码标准H.264视频编码标准是ITU-T与MPEG合作产生的又一巨大成果,自颁布之日起就在业界产生了巨大影响。严格地讲,H.264标准是属于MPEG-4家族的一部分,即MPEG-4系列文档ISO-14496的第10部分,因此又称作MPEG-4/AVC。同MPEG-4重点考虑的灵活性和交互性不同,H.264着重强调更高的编码压缩率和传输可靠性,在数字电视广播、实时视频通

2017-05-17 22:12:43 456

转载 二. 主流视频编码标准的发展

http://www.voidcn.com/blog/shaqoneal/article/p-6123909.html一. 主流视频编码标准的发展长期以来,视频编码标准主要由两个国际组织负责制定:国际电信联盟ITU-T和国际标准化组织ISO。目前影响力最强的视频编码标准基本均出自这两个组织:除了上述两个组织之外,其他比较有影响力的标准还有:

2017-05-17 22:11:38 3179

转载 一. 视频信息与压缩编码

一、人与世界的交互从远古时代人类文明诞生之日起,人类就在人类就在不断为适应环境、改造环境而艰苦斗争。其中最为基础的前提就是利用感官对外界信息的获取。利用各种感官,人类可以与世界环境进行多种不同的信息交互,例如:嗅觉:识别各种气味,辨别环境变化和食物、饮水的质量等;听觉:识别同类的联络信息和天敌等危险信号等味觉:挑选最适宜的食物触觉:制作与使用工具时非常重要另

2017-05-17 22:09:21 847

转载 openssh无法登录:server responded "algorithm negotiation failed”

修改ssh的配置文件 /etc/ssh/sshd_config在配置文件中添加:Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbcMACs hmac-m

2017-05-17 14:38:14 525

转载 深度解析KGDB调试Linux模块和内核

http://blog.csdn.net/swingwang/article/details/72331196转载文章请注明作者和二维码及全文信息。不会编程的程序员,不是好的架构师,编程和内核调试也是出色架构师的必修课。谈起编程人员的数量,基于Linux平台的软件工程师肯定是最多的,没有之一。那今天我们就以Linux为例,深入讲一下内核模块和内核的调试技术和调试工具KG

2017-05-16 23:05:12 3984

转载 Ubuntu14.04安装编译ffmpeg

因为要用到improved dense trajectory特征,用源码需要编译ffmpeg和OpenCV,网址给出的源码需要的OpenCV-2.4.2 和ffmpeg-0.11.1都比较老,我用的是比较新的opencv2.4.12和ffmpeg-snapshot.tar.bz2 (2016-05-22)。本文主要基于此官方指导编译1. 安装依赖sudo apt-get u

2017-05-16 23:03:21 472

转载 RGB与YUV转换

1 前言        自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确的满足各自的需求,就出现了各种各样的色彩空间模型来量化的描述颜色。我们比较常接触到的就包括 RGB / CMYK / YIQ / YUV / HSI等等。       

2017-05-16 16:24:34 577

转载 雷霄骅博文地址

http://blog.csdn.net/leixiaohua1020/article/details/15811977/

2017-05-15 10:20:57 1542

转载 Linux tcpdump命令详解

简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tcpdump普通...

2017-05-10 19:59:43 322

转载 setsockopt

#include int setsockopt( int socket, int level, int option_name,const void *option_value, size_t option_len);第一个参数socket是套接字描述符。第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。opt

2017-05-10 10:22:26 267

转载 mmap详解

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域

2017-05-10 00:11:41 242

转载 mmap

简单的目录mmap基础概念mmap内存映射原理mmap和常规文件操作的区别mmap优点总结mmap相关函数mmap实例mmap基础概念1.mmap内存映射原理mmap是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系;实现这样的映射关系后,

2017-05-10 00:01:03 614

转载 Ubuntu 安装mysql和简单操作

ubuntu上安装mysql非常简单只需要几条命令就可以完成。  1. sudo apt-get install mysql-server   2. apt-get isntall mysql-client   3.  sudo apt-get install libmysqlclient-dev   安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成

2017-05-09 22:50:44 542

转载 gdb调试多进程和多线程命令 .

1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。      follow-fork-mode  detach-on-fork   说明parent           

2017-05-09 16:47:52 355

转载 iovec结构体定义及使用

[cpp] view plain copy print?#include     struct iovec {      ptr_t iov_base; /* Starting address */      size_t iov_len; /* Length in bytes */  };  struct iovec定义了一个向量元

2017-05-08 15:48:34 643

转载 libevent+多线程的服务器模型

最近在看memcached的源码,觉得它那种libevent+多线程的服务器模型真的很不错,我将这个模型封装成一个C++类,根据我的简单测试,这个模型的效率真的很不错,欢迎大家试用。这个类的使用方法很简单(缺点是不太灵活),只要派生一个类,根据需要重写以下这几个虚函数就行了://新建连接成功后,会调用该函数virtual void ConnectionEvent(Conn *conn

2017-05-07 15:37:57 1496

转载 Linux如何查看端口状态

在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询netstat命令各个参数说明如下:  -t : 指明显示TCP端口  -u : 指明显示UDP端口  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

2017-05-07 11:22:05 89504

转载 网络编程学习笔记--1.socket可读可写条件

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45788591socket可读可写条件,经常做为面试题被问,因为它考察被面试者对网络编程的基础了解的是不是够深入。要了解socket可读可写条件,我们先了解几个概念:1.接收缓存区低水位标记(用于读)和发送缓存区低水位标记(用于写):

2017-05-07 10:43:47 389

Linux设备驱动程序扫描版

Linux 设备 驱动 程序 扫描版

2017-01-10

ncurses-5.5源代码

ubuntu0504 make menuconfig时出现缺少该库,手动下载源码安装

2017-01-06

usb 3g驱动代码

usb 驱动 3g

2016-11-15

web socket

web socket

2016-10-28

gtest有对类成员函数的例子

有对类成员函数的例子

2016-10-24

Source Insight 3.* utf8支持插件

utf8 支持 插件

2016-10-23

libevent多线程提取代码

libevent

2016-10-20

libevent 注释

libevent 注释

2016-10-18

视频直播技术基础资料

自己网上备份用的 以免以后再找

2016-10-14

libevent注释版

对libevent加了些注释,以后会更详细

2016-09-05

cgi + http + 重定向

cgi + http + 重定向

2016-05-18

cgi http实例代码

cgi http的一个实例c实现

2016-05-18

framebuffer例子

framebuffer 的好多个收集的 实例,非常实用,空间还有对代码的注释

2015-11-13

FishFui的运行文件

测试X11在ubuntu中的运行情况,这只是个运行文件

2015-09-16

国际大学生程序设计竞赛例题解 4 .pdf

国际大学生程序设计竞赛例题解,总共8本金典书,快快下载来,好好学

2014-12-14

国际大学生程序设计竞赛例题解 2.pdf

国际大学生程序设计竞赛例题解 1.pdf ,金典的书,我会把8本都上传的

2014-12-14

国际大学生程序设计竞赛例题解 1.pdf

国际大学生程序设计竞赛例题解 1.pdf ,金典的书,我会把8本都上传的

2014-12-14

深入理解linux内核第三版

深入理解linux内核第三版,清晰度还可以,有标签,方便

2018-11-27

深入剖析NGINGX

深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX深入剖析NGINGX

2018-01-31

fcgi-2.4.0

nginx fcgi 源代码 fcgi-2.4.0 在网上免费下载的,好难找啊

2018-01-02

数据模型资源手册 卷1

数据模型资源手册 卷1数据模型资源手册 卷1数据模型资源手册 卷1

2017-12-23

ubuntu自己搭建服务器代码

服务器代码

2017-09-26

nginx hello 例子

自己看书的时候,在网上查找的例子,看深入理解nginx模块开发与架构解析的一边实践的例子,能运行的,很简单

2017-09-02

直播流生成工具

在网上下载的,自己还没测试,代码还是有用的

2017-06-13

视频流合并

两个flv文件合并,在其他网上下载的

2017-06-13

浏览器直播

用cgi来发送flv数据流

2017-06-13

http调试工具

调试 http 协议

2017-06-07

libevent网络库

libevent 网络库

2017-05-22

YUVPlayer1.3.rar

YUVPlayer1.3 对比YUV工具

2017-05-19

source insight

2017-04-22

typetool工具

字体 编辑 工具

2017-02-16

s3c6410中文开发文档

s3c6410中文开发文档

2017-01-21

两个并口调试工具

并口 调试 工具

2017-01-13

空空如也

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

TA关注的人

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