- 博客(195)
- 资源 (6)
- 收藏
- 关注
转载 使用VS2010编译live555
最近加入了公司的C++视频小组,利用中秋这个假期将研究了一些live555的源码,现在先将如何编译使用vs2010编译live555,整理出来,对以后分析代码有很大帮助。1.下载live555源码,下载地址:http://www.live555.com/liveMedia/public/live555-latest.tar.gz2.live55简介Live555 是一个为流
2014-05-09 10:20:23 1108
转载 ffmpeg 源代码简单分析 : avcodec_decode_video2()
此前写了好几篇ffmpeg源代码分析文章,列表如下:图解FFMPEG打开媒体的函数avformat_open_inputffmpeg 源代码简单分析 : av_register_all()ffmpeg 源代码简单分析 : avcodec_register_all()ffmpeg 源代码简单分析 : av_read_frame(
2014-04-30 09:58:34 1335
转载 ffmpeg 源代码简单分析 : av_read_frame()
此前写了好几篇ffmpeg源代码分析文章,列表如下:图解FFMPEG打开媒体的函数avformat_open_inputffmpeg 源代码简单分析 : av_register_all()ffmpeg 源代码简单分析 : avcodec_register_all()ffmpeg 源代码简单分析 : av_read_frame(
2014-04-30 09:57:28 1678
转载 ffmpeg 源代码简单分析 : avcodec_register_all()
此前写了好几篇ffmpeg源代码分析文章,列表如下:图解FFMPEG打开媒体的函数avformat_open_inputffmpeg 源代码简单分析 : av_register_all()ffmpeg 源代码简单分析 : avcodec_register_all()ffmpeg 源代码简单分析 : av_read_frame(
2014-04-30 09:44:16 2301
转载 ffmpeg 源代码简单分析 : av_register_all()
此前写了好几篇ffmpeg源代码分析文章,列表如下:图解FFMPEG打开媒体的函数avformat_open_inputffmpeg 源代码简单分析 : av_register_all()ffmpeg 源代码简单分析 : avcodec_register_all()ffmpeg 源代码简单分析 : av_read_frame(
2014-04-30 09:38:00 3777
转载 图解FFMPEG打开媒体的函数avformat_open_input
此前写了好几篇ffmpeg源代码分析文章,列表如下:图解FFMPEG打开媒体的函数avformat_open_inputffmpeg 源代码简单分析 : av_register_all()ffmpeg 源代码简单分析 : avcodec_register_all()ffmpeg 源代码简单分析 : av_read_frame(
2014-04-29 15:52:58 1271
转载 使用FFmpeg类库实现YUV视频序列编码为视频
上一篇已经写了如何配置好开发环境,这次就先小试牛刀,来个视频的编码。搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频。关于YUV视频序列,我就不多讲了,可以看书学习,通常的视频序列都是YUV420格式的。步骤也就那几步,添加视频流,打开编码器,开辟相应的内存空间,然后就可以打开YUV序列逐帧写入数据了,so eas
2014-04-29 15:47:26 682
转载 FFplay源代码分析:整体流程图
FFplay源代码的流程图如图所示,网上的,不记得从哪弄的了,但是流程很清晰。看完FFplay源代码之后再看这个图感觉整个代码结构一目了然。
2014-04-29 15:41:20 1274
转载 最简单的基于FFMPEG+SDL的音频播放器
FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。在此我把自己做项目过程中实现的一个非常简单的音频播放器(大约200行代码)源代码传上来,以作备忘,同时方便新手学习FFMPEG。该播放器虽然简单,但是几乎包含了使用FFMPEG播放一个音频所有必备的API,并且使用SDL输出解码出来的音频。并且支持流媒体等多种音频输入。程序使用
2014-04-28 14:29:20 1086
转载 使用FFMPEG类库分离出多媒体文件中的H.264码流
在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的视频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。经试验,在分离MPEG2码流的时候,直接存储AVPacket即可。在分离H.264码流的时候,直接存储AVPacket后的文件可能是不能播放的。如果视音频复用格式是TS(MPEG2 Transpo
2014-04-28 13:51:37 1671
转载 FFMPEG结构体分析:AVPacket
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体
2014-04-28 13:37:59 608
转载 FFMPEG结构体分析:AVStream
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体
2014-04-28 13:25:36 1058
转载 FFMPEG结构体分析:AVCodec
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体
2014-04-28 11:06:31 3355
转载 FFMPEG结构体分析:AVIOContext
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体分析:AVStreamF
2014-04-28 10:51:35 657
转载 FFMPEG结构体分析:AVCodecContext
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体
2014-04-28 10:13:24 1238
转载 FFMPEG结构体分析:AVFormatContext
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体
2014-04-28 09:26:58 972
转载 FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
FFMPEG中的swscale提供了视频原始数据(YUV420,YUV422,YUV444,RGB24...)之间的转换,分辨率变换等操作,使用起来十分方便,在这里记录一下它的用法。swscale主要用于在2个AVFrame之间进行转换。下面来看一个视频解码的简单例子,这个程序完成了对"北京移动开发者大会茶歇视频2.flv"(其实就是优酷上的一个普通视频)的解码工作,并将解码后的数
2014-04-25 21:16:19 3896
转载 FFMPEG结构体分析:AVFrame
注:写了一系列的结构体的分析的文章,在这里列一个列表:FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContextFFMPEG结构体分析:AVCodecFFMPEG结构体
2014-04-25 21:06:38 3243
转载 FFMPEG中最关键的结构体之间的关系
FFMPEG中结构体很多。最关键的结构体可以分成以下几类:a) 解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。(注意:FFMPEG中文件也被当做一种协议“file”)
2014-04-25 20:23:04 646
转载 SDL简介
SDL库的作用说白了就是封装了复杂的视音频底层操作,简化了视音频处理的难度。以下转自WiKi:SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前
2014-04-24 22:04:43 735
转载 100行代码实现最简单的基于FFMPEG+SDL的视频播放器
FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。我刚接触FFMPEG的时候也感觉不知从何学起。因此我把自己做项目过程中实现的一个非常简单的视频播放器(大约100行代码)源代码传上来,以作备忘,同时方便新手学习FFMPEG。该播放器虽然简单,但是几乎包含了使用FFMPEG播放一个视频所有必备的API,并且使用SDL显示解码出来的视频。
2014-04-24 21:59:01 907
转载 FFMPEG 库移植到 VC 需要的步骤
在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步。(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http://ffmpeg.zeranoe.com/builds/)。(1)像其他额外库一样,设置VC的Include路径为你c:\msys\local\include,设置VClib路径为次c:\ms
2014-04-24 21:41:46 681
转载 ffplay的快捷键以及选项
ffplay是ffmpeg工程中提供的播放器,功能相当的强大,凡是ffmpeg支持的视音频格式它基本上都支持。甚至连VLC不支持的一些流媒体都可以播放(比如说RTMP),但是它的缺点是其不是图形化界面的,必须通过键盘来操作。因此本文介绍一下它的快捷键以及选项。 快捷键 播放视音频文件的时候,可以通过下列按键控制视音频的播放按键作用
2014-04-24 21:22:02 1134
转载 ffmpeg参数中文详细解释
a) 通用选项-L license-h 帮助-fromats 显示可用的格式,编解码的,协议的...-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持-
2014-04-24 21:17:53 561
转载 C 运行时库的使用,使用第三方库的时候尤其重要
因为各种原因常加一些第三方库到工程中。使用这些库,最好能够自己编译,否则应该真的应该好好检查一下它对C运行时库的依赖情况,否则真的容易出现莫名其名的访存错误。总结一下,要检查以下几个方面:1. 要检查一下依赖的C runtime lib是debug或release版,不要混用二者。2. 检查C runtime lib是单线程版、静态多线程还是动态链版。 我们
2013-08-21 21:21:01 2466
转载 C++编译器符号表有哪些内容?
C++编译器符号表有哪些内容?转自:http://blog.csdn.net/abortexit/article/details/1583306 很早就想写一篇关于符号表的学习小结,可是迟迟不能下笔。其一是因为符号表在编译器的设计中占有举足轻重的地位【我们在学习编译原理的时候更多的是注重principles,而没有关心一个编译器的实现,所以符号表讲解的也比较少】,编译阶段的每“遍”都
2012-05-19 14:28:40 942
原创 求一堆数中三个数的和为特定值的解
我觉得比较好的方法:对原始数据排序。将第一个数依次选举。然后在其后面求两个数的和为特定值的问题。复杂度为O(n^2)参考代码:#include#includeusing namespace std;int Num[]={1,2,3,4,5,6,7,8,9,10};int Len=10;void find1(int *num,int result,int len){ i
2012-05-09 19:52:50 1862 1
原创 全组合—动态规划
#include#include#includeusing namespace std;vector result;int hashtable[26]={0};bool flag=false;int main(){ string a; cin>>a; int len=a.length(); int i; for(i=0;i<len;i++) { int coun
2012-05-04 14:33:16 1017
原创 利用中序+后序 恢复二叉树
要恢复一个二叉树,必须要有一个中序。利用后序得到根,再根据中序将树分成左右两份。然后递归地调用即可。参考代码:注意:此代码未对后序与中序的字符串有效性进行检查。#includeusing namespace std;struct Node{ char value; Node * left; Node * right;};Node * reconstruct(c
2012-04-25 20:35:34 1582
原创 KMP字符串查找算法
查找q是否在p中。先对q进行特征统计。。。比较挫的代码先贴上,以后有精力再改进改进。#includeusing namespace std;/**统计字串的特征比如字串为 const char *q="abcabcd"特征表为int table[]={-1,0,0,0,1,2,3};*/int * createTable(const char *q){ if(
2012-04-25 19:57:06 628
原创 只支持10以下的计算器
参考代码:#include#includeusing namespace std;/**return num2 opt num1*/int cal(int num1, int num2, char opt){ switch(opt) { case '+': return num2+num1; case '-': return num2-num1; case '*':
2012-04-23 23:23:34 596
原创 Dijkstra最短路径算法
基本思路是:选择出发点相邻的所有节点中,权最小的一个,将它的路径设置为确定。其他节点的路径需要保存起来。然后从刚刚确认的那个节点的相邻节点,算得那些节点的路径长。然后从所有未确定的节点中选择一个路径最短的设置为确定。重复上面步骤即可。参考代码如下:void Dijkstra(graph *g,string v){ int n = g->n; int *flag = new int[n];
2012-04-22 18:05:16 837
原创 无权图最短路径
参考代码: 复杂度为O(V+E)void Unweight(struct graph *g,string v){ int *mask= new int[g->n]; int i; int n; int num=0; for(i=0;in;i++) { mask[i]=0; if(VName[i]==v) n=i; } num++; queueq; q.p
2012-04-19 20:28:59 2029 1
原创 拓扑排序+入度检测
拓扑排序: 若有 a->b, 则要求a一定要在b之前打印出来。 思路: 找到一个入度为0的节点,打印出来,把与之相邻的节点入度-1; 重复上面工作。参考代码:void Topsort(graph *g){ int *Indegree = new int[g->n]; int i; /*统计入度*/ for(i=
2012-04-19 18:51:21 1952
转载 邻接表
邻接表 邻接矩阵用二维数组即可存取,比较简单,但除完全图外,一般的图不是任意两个顶点都相邻接,因此邻接矩阵也有很多零元素,特别是当n 较大而边数相对完全图的边(n-1)又少得多时,邻接矩阵仍是很稀疏,这样浪费存储空间。 邻接表(Adjacency List)是图的一种顺序存储与链式存储结合的存储方法,类似于树的孩子链表表示法。由于它只考虑非零元素,因而节省了零元素所占的存储空间
2012-04-19 16:35:09 4108
原创 hash表的代码
1、使用分离链接法避免collision参考代码:#include#include#includeusing namespace std;class node{public: string word; int count; node * next;};node * hashTable[700]={};void init(){ int i; for(i=0
2012-04-13 14:52:12 966
原创 在二元树中找出和为某一值的所有路径
从根到树叶, 找出所有路径中 和为给定的路径。 先序遍历,把访问到的节点放入vector中。当递归返回时从vector中删除节点。 参考代码:#include#includeusing namespace std;struct Tree{ Tree(int num):element(num),left(NULL),right(NULL){} int el
2012-04-12 20:05:36 557
转载 二叉查找树 转换成 排序的双向链表
http://www.cnblogs.com/XjChenny/archive/2011/10/01/2197783.html 自己写的代码:#include#includeusing namespace std;class Tree{public: Tree():element(0),left(NULL),right(NULL){} Tree(int nu
2012-04-12 18:38:16 434
原创 最长递增子序列
采用动态规划。使用LIS【】保存包含当前节点的子序列的长度。参考代码:#includeusing namespace std;int num[9]={ 1 ,2 ,4, 7, 4, 3, 1,8 ,1};int find(int *array, int len,int *Pre, int *index){ int i,j; int *LIS =
2012-04-12 00:44:55 673
原创 句柄类(引用计数)——采用中间类实现方式
参考代码:#include#includeusing namespace std;class B{public: B(){} B(const string &n):name(n){} B(const char *n):name(n){} string getname(void) const{ return name; } B(const B &b)
2012-03-28 23:33:30 707
h.264学习文档(5个文档)
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人