- 博客(13)
- 资源 (32)
- 收藏
- 关注
转载 I帧和IDR帧
DR(Instantaneous Decoding Refresh)--即时解码刷新。 I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是
2015-05-26 10:28:25 1908
原创 视音频pts计算
1、概述这段时间做转码,计算pts的时候都是转换一下时间基,我就在想这个pts如果没有原来的pts做参考如何计算其值?摸索一番总算明白了头绪记录于此。2、视频pts视频比较好理解,就是每帧递增,假如fps是25帧的,时间基为fps的倒数1/25,那么pts递增即可。如下:第一帧:pts=0第二帧:pts=1第三帧:pts=3...第n帧:pts = n
2015-05-25 18:27:34 10288 12
转载 h264 profile & level
转自:http://blog.csdn.net/sphone89/article/details/17492433H.264 ProfilesH.264有四种profile,每个profile支持一组特定的编码功能,并支持一类特定的应用,分别是BP、EP、MP、HP:1、BP-Baseline Profile: a、I/P slices
2015-05-25 10:54:35 763
原创 ffmpeg.exe移植到vs2010编译步奏
1、概述跟ffmpeg源码有很多方式,但是用eclipse的时候,顺序老是乱跳,很不方便,于是想到把ffmpeg.exe移植到vs下,只移植了exe,库文件这些还是用mingw编译的,相当于一个调用ffmpeg的api的一个转码程序,只是这代码是官方的。注:ffmpeg版本是2.6.2的。2、建立工程打开vs2010,建立一个空的控制台程序工程,并在工程目录下建立include、lib
2015-05-20 10:19:33 2244
原创 av_read_frame读出的视频流数据在AVPacket中的存储
1、先看看AVPacket的定义:typedef struct AVPacket { /** * A reference to the reference-counted buffer where the packet data is * stored. * May be NULL, then the packet data is not referenc
2015-05-15 11:59:06 8641
原创 ffmpeg实现视频合并
1、概述简单说下流程:打开输入---->打开输出---->根据输入来创建流---->拷贝流设置---->循环读帧---->判断第一个读完,改输入为第二个---->设置pts和dts---->写入---->善后2、代码/**最简单的视频合并*缪国凯 Mickel*[email protected]*本程序实现把2个视频合并为一个视频,不涉及编解码,但是对
2015-05-14 18:11:16 4245 2
原创 ffmpeg实现视频切割
1、概述本程序实现把一个视频切割为2个视频,不涉及编解码,最难理解的地方在于pts和dts的计算,要好好看看,不够完美的地方在于没有按照关键帧切割,所以会在切割点花屏,以后改善。*注:只处理一个视频流和一个音频流,若流多了,估计会crash。简单说下流程:打开输入---->打开输出---->根据输入来创建流---->拷贝流设置---->循环读帧---->判断时间点是否到达切割点
2015-05-14 14:06:44 5891 2
原创 AVFrame关于视音频数据存储
1、概述这几天用ffmpeg实现简单音频转码,在写程序的过程中发现音频在AVFrame中存储与视频很相似,音频要复杂一些,本人记性不好,所以在这里记录下来,以作备忘。2、2个数据成员在AVFrame中有2个很重要的数据成员,一个是data,一个是linesize。data中存储的是未编码的源始数据(不论视音频),linesize中存储的是每行data中数据大小。data的定义如下:
2015-05-11 11:56:49 7163
原创 ffmpeg音频转码,采用swr_convert重取样
1、概述:和上一篇音频转码流程一样,只是把filter重取样改为了swr_convert重取样,理解本例子对AVFrame中data如何存储音频数据有更好的理解。2、代码:/**最简单的音频转码器(只处理音频)*缪国凯 Mickel*[email protected]*本程序实现从一个视频格式转码到另一个视频格式,只处理音频,视频忽略,若有多个音频流,只处理第一个,采用swr_c
2015-05-11 11:24:23 14155 3
原创 ffmpeg音频转码(用filter重取样)
1、概述简单说下流程,其实流程和视频转码差不多,不过多了一个filter的处理,因为音频转码需要重采样,所以与视频转码不同的地方就是把解码出来的frame送入filter然后用经过filter的frame来encode。2、代码下面贴上代码:/**最简单的音频转码器(只处理音频)*缪国凯 Mickel*[email protected]*本程序实现从一个视频格式转码到另一个视
2015-05-08 11:36:08 5641 2
转载 时间戳问题汇总
A:RFC3984 规定采用 90000 Hz 的时钟,因此如果编码帧频是 30,那么时间戳间隔就该是 90000 / 30 = 3000,根据抓包来看,似乎时间戳间隔的确是 3000。时间戳的间隔不固定,比如有的时间戳间隔是 2990 有的是 3002,会导致解析出来的视频出现快播的效果么?Q:各位大侠好:我现在正在开发视频实时流播放,简单的过程如下:采集视频流 -> 视频流转换
2015-05-07 16:40:35 2383
原创 ffmpeg各个组件下载地址+编译方法+错误处理
1、介绍这是一个在win7+mingw下编译ffmpeg及其组件库的文件,文件中包含了组件的下载地址,编译方法,依赖库安装,错误处理。2、效果图贴一张截图,3、下载地址http://download.csdn.net/detail/dancing_night/8672729
2015-05-07 16:11:33 1150
原创 简单的ffmpeg视频转码,只处理视频
1、简单说下整体流程用avformat_open_input打开输入文件上下文,再用avformat_find_stream_info找到流信息,为输出分配AVFormatContext空间,然后根据流信息找到视频流,为输出创建流,并打开编解码器,写输出文件头,然后一个循环读帧---解码----压缩----写入,然后flush_encoder,最后写文件尾,释放资源----结束。2、贴上代
2015-05-07 12:11:48 5064
ffmpeg实现录屏+录音
2015-07-23
mpeg-ps文件分析器
2015-07-10
ffmpeg音频转码,采用swr_convert重取样
2015-05-11
faac-1.28.diff
2015-04-28
mingw-get-inst-20110802.exe
2014-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人