- 博客(16)
- 资源 (20)
- 收藏
- 关注
原创 avcodec_decode_video2()
ffmpeg中的avcodec_decode_video2()的作用是解码一帧视频数据。输入一个压缩编码的结构体AVPacket,输出一个解码后的结构体AVFrame。
2016-06-23 17:45:08
792
原创 av_read_frame()
ffmpeg中的av_read_frame()的作用是读取码流中的音频若干帧或者视频一帧。例如,解码视频的时候,每解码一个视频帧,需要先调用 av_read_frame()获得一帧视频的压缩数据,然后才能对该数据进行解码(例如H.264中一帧压缩数据通常对应一个NAL)。 通过av_read_packet(***),读取一个包,需要说明的是此函数必须是包含整数帧的,不存在半帧的情况,以ts流为
2016-06-23 17:43:49
1512
原创 avcodec_register_all()
ffmpeg注册复用器,编码器等的函数av_register_all()。该函数在所有基于ffmpeg的应用程序中几乎都是第一个被调用的。只有调用了该函数,才能使用复用器,编码器等。 可见解复用器注册都是用 REGISTER_DEMUXER (X,x) 例如: REGISTER_DEMUXER (AAC, aac) 可见复用器注册都是用 REGISTER_MUXER
2016-06-23 17:41:41
1100
原创 avformat_open_input
FFMPEG打开媒体的的过程开始于avformat_open_input,因此该函数的重要性不可忽视。 在该函数中,FFMPEG完成了: 输入输出结构体AVIOContext的初始化; 输入数据的协议(例如RTMP,或者file)的识别(通过一套评分机制):1判断文件名的后缀 2读取文件头的数据进行比对; 使用获得最高分的文件协议对应的URLProtocol,通过函数指针的方式,与FFM
2016-06-23 17:32:47
681
原创 AVFrame结构体
typedef struct AVFrame { #define AV_NUM_DATA_POINTERS 8 uint8_t *data[AV_NUM_DATA_POINTERS]; int linesize[AV_NUM_DATA_POINTERS]; uint8_t **extended_data; /**宽高 */ int width, heig
2016-06-23 14:39:11
693
原创 AVPacket 结构体
typedef struct AVPacket { //显示时间戳 int64_t pts; //解码时间戳 int64_t dts; //记录在文件或网络中的流中的字节的位置 int64_t pos; //实际数据指针 uint8_t *data; //实际的数据的大小 int size; //该packet所属的流的索引,一般为0或者1 int stream_i
2016-06-23 14:35:54
747
原创 MOVStreamContext 结构体
typedef struct MOVStreamContext { //流的索引,0或者1 int ffindex; //临时变量,保存下一个chunk块的编号 int next_chunk; //chunk的个数(在mp4的文件格式中,从stco中取值肯定为chunk的总数) unsigned int chunk_count; //chunk在文
2016-06-23 14:33:20
756
原创 AVStream结构体
typedef struct AVStream { //指向解码器context,用于关联解码器 AVCodecContext *actx; //codec解析器,每一种编码器在进行压缩时都会对实际负载数据进行封装,加//入头信息,如h264,需要解析nal单元,关联通过avav_find_stream_info() struct AVCodecParserContext *par
2016-06-23 14:08:56
922
原创 AVIOContext结构体
typedef struct ByteIOContext { //数据缓冲区 unsigned char *buffer; //数据缓冲size int buffer_size; //数据读取标记指针 unsigned char *buf_ptr, *buf_end; //该指针指向相应的URLContext,关联URLContext void *opaque;
2016-06-23 13:36:08
361
原创 URLContext结构体
typedef struct URLContext { //指向相应的协议(协议为从初始化链表中注册的),如ff_file_protocol struct URLProtocol *prot; int flags; int max_packet_size; //相应通信方式的句柄,对于文件为fd句柄,对于网络为socket句柄等 void *priv_data; //文件
2016-06-23 13:34:58
1411
原创 URLProtocol结构体
typedef struct URLProtocol { const char *name; //用的统一的模板函数 int(*url_open)(URLContext *h, const char *filename, int flags); int(*url_read)(URLContext *h, unsigned char *buf, int size); int(*url_
2016-06-23 13:27:21
887
原创 MovContext结构体
typedef struct MovContext { //临时持有AVFormatContext 的指针 AVFormatContext *fc; //时间缩放因子 int time_scale; //视频的时长 int64_t duration; //拆包时是否发现”moov“头 int found_moov; //
2016-06-23 11:53:43
480
原创 AVFormatContext结构体
typedef struct AVFormatContext { //指向AVInputFormat,如对于mp4或mov为ff_mov_demuxer struct AVInputFormat *iformat; // 指向具体的格式对应的Context,如:MovContext。 void *priv_data; //指向数据读取统一接口context ByteIOConte
2016-06-23 11:49:21
591
原创 AVInputFormat结构体
typedef struct AVInputFormat { // 标示format的名字, 比如,“mov” “mp4” 等。 const char *name; // 标示具体的format对应的Context 的size,如:MovContext。 int priv_data_size; //具体的操作函数 int(*read_probe)(AVProbeData*);
2016-06-23 11:46:53
1011
原创 AVCodecContext结构体
typedef struct AVCodecContext { int bit_rate; int frame_number; //扩展数据,如mov格式中audio trak中aac格式中esds的附加解码信息。 unsigned char *extradata; //扩展数据的size int extradata_size; //视频的原始的宽度与高度 int width
2016-06-23 11:39:53
1722
原创 AVCodec结构体
typedef struct AVCodec { // 标示Codec 的名字, 比如,"h264" "h263" 等。 const char *name; // 标示Codec 的类型,有video ,audio等类型。 enum CodecType type; // 标示Codec 的ID,有CODEC_ID_H264等。 enum CodecID id; //
2016-06-23 11:37:03
585
jquery.validate 版本大全
2022-03-04
hibernate连接池配置及SQLJDBC.jar JNDA.JAR
2009-12-01
log4j源码实例及jar 包下载
2011-02-17
CompiereERP&CRM3.3.0版本
2015-01-09
ffmpeg-lib-dll 64位
2016-05-31
NODE.JS最新版本下载
2020-12-03
单点客户资源管理系统SunshineCRM安装包
2015-02-07
SugarCRM-SugarCE-6.5.10
2015-01-09
SunshineCRM空间虚拟主机版
2015-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅