在正式开始解码练习前先了解下关于FFmpeg中比较重要的函数以及数据结构。1.数据结构:(1)AVFormatContext AVFormatContext是一个贯穿始终的数据结构,很多函数都要用到它作为参数。FFmpeg代码中对这个数据结构的注释是:formatI/Ocontext此结构包含了一....
分类:
其他好文 时间:
2014-07-30 23:15:25
阅读次数:
344
写在文章前面:ffmpeg是一个开源的编解码框架,拥有很强大的功能。但是对于如果使用其来做开发呈现着严重两极分化,大神们讨论着高深的问题,大多数像我这样的小白连门都进不去。最近无意间领会了如何入门,现在写下这个系列文章《零基础学习视频解码》用来帮大家提供入门基础。博主的开发机器是基于Ubuntu.....
分类:
其他好文 时间:
2014-07-30 20:30:24
阅读次数:
221
已测试环境:CentOS 6.3 32bitCentOS 6.5 64bit曾经在CentOS 6.3 32bit安装过OpenCV,参见CentOS 6.3中安装OpenCV2.3.1,如今换了64bit系统,大刀阔斧,重新来一遍。检查并安装相关程序,确保gtk安装成功,否则无法显示图片yum install gcc-c++ # g++编译
yum install gt...
分类:
其他好文 时间:
2014-07-30 14:55:44
阅读次数:
213
解复用是多媒体开发中核心的功能。
解复用功能是从音视频信号源中分流出不同的音频和视频流;另外解复用一般属于一种主动操作,即从音视频信号源中取出。
数据流结构为Source->Demux->Stream
主要实现模式有:
1)直接模式:直接从信号源获取相应的音频或者视频数据。这种方式适合顺序读取和拥有帧位置元数据等信号源。
使用这种模式,实际是从Demux中直接获取数据,当然也可以从Str...
分类:
其他好文 时间:
2014-07-29 15:05:38
阅读次数:
204
时间戳由时间基准和时间戳值组成。
时间基准:对时间单位(s)划分的标准。
例如,1/25表示每秒分为25个单位,每个单位时间间隔包含1个单位。
3001/90000表示每秒分为90000单位,每个单位时间间隔包含3001个单位。
时间戳值:基于时间基准的时间表示,也即多少个单位时间间隔。
1)时间戳的作用是用于精确标记音视频流的相对位置和持续时间。
2)基于时间基准使用时间戳,...
分类:
其他好文 时间:
2014-07-29 14:48:38
阅读次数:
199
1:音视频数据都有一个list,用于存放解码后的数据; List mFilledBuffers;2:解码后的音视频数据不断的往list中存放,不做音视频同步方面的时间上控制 mFilledBuffers.push_back(i);3:音视频同步主要表现在从list中取数据进行视频的显示和音频的输出;...
分类:
其他好文 时间:
2014-07-28 11:27:10
阅读次数:
275
ffmpeg部分机器上有花屏的问题
原代码如下:
while(av_read_frame(formatCtx, &packet)>=0 && !_stop && NULL!=window && bInit) {
// Is this a packet from the video stream?
if(packet.stream_index==videoStream) {
...
分类:
移动开发 时间:
2014-07-28 00:01:10
阅读次数:
847
Android的MediaProvider提供了一系列的Audio,Video,image等表格,用于APP检索相关的音视频图片信息。首先来看看Audio相关的表格:×图中颜色同样的部分表示来自于同一张表格或者视图×红色表的名字表示视图为了查询Audio相关的信息,Android提供了丰富的Uri。...
分类:
数据库 时间:
2014-07-27 21:30:25
阅读次数:
208
一、编译FFmpeg静态库
方法一:
1、要安装xcode命令行工具
1).xcode5安装命令行工具方法:
在终端执行命令Using xcode-select --install
2).xcode5之前安装命令行工具方法:
2、xcode5以前都是gcc编译的,在xcode5以后都是clang编译,在脚本中有所体现
3、xcode5以...
分类:
其他好文 时间:
2014-07-26 02:21:26
阅读次数:
639