x264-h264编码库的使用demo

上一篇写了x264库的编译安装、测试,那么这个库怎么为自己所用呢?在下载好的x264源码top目录下,使用了 ./x264这个小程序进行了例子验证,下面分析下这个x264.c 文件,看看如果我们要在代码中使用x264库编码,该怎么做:

本来想慢慢自己分析下,却已经百度到相关的内容,权且当个拿来主义者,毕竟,还是不要重复造轮子的好:下面附上别人的解析链接:(相当齐全)

x264代码剖析(一):图文详解x264在Windows平台上的搭建

x264代码剖析(二):如何编译运行x264以及x264代码基本框架

x264代码剖析(三):主函数main()、解析函数parse()与编码函数encode()

x264代码剖析(四):vs2010编译x264错误集锦

x264代码剖析(五):encode()函数之x264_encoder_open()函数

x264代码剖析(六):encode()函数之x264_encoder_headers()函数

x264代码剖析(七):encode()函数之x264_encoder_encode()函数

x264代码剖析(八):encode()函数之x264_encoder_close()函数

x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数

x264代码剖析(十):x264核心算法框架

x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse()

x264代码剖析(十二):核心算法之帧内预测函数x264_mb_analyse_intra()

x264代码剖析(十三):核心算法之帧间预测函数x264_mb_analyse_inter_*()

x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()

x264代码剖析(十五):核心算法之宏块编码中的变换编码

x264代码剖析(十六):核心算法之宏块编码中的量化编码

x264代码剖析(十七):核心算法之熵编码(Entropy Encoding)

x264代码剖析(十八):核心算法之滤波


上面的第三篇,即本文的主题,不过,个人觉得讲得太过呆滞,有点于拘泥于细节而忽视了整体,这里补充点个人的看法:

Main()

{

Parse();

Encode();

}

 

encode()函数中,进行编码:

X264_encoder_open(param);

x264_encoder_parameters( h, param );

x264_encoder_headers

x264_encoder_encode

其他的一些收尾工作

 

整个分析过程,其实是一个剥离的过程,将x264_encoder 函数和调用者剥离,因为我们要明白的是调用关系,x264_encoder_ 开头的函数我们暂时不去追究其源码,其实只在工程中全局搜索下x264_encorder_  就可以简短的看到全部关于库函数的调用。搞清楚怎么去使用x264_encoder api 。 其他的部分,即用户调用者要自己实现的部分。

 

大体的结构是:

初始化->读源文件->获得一帧数据->编码->写目标文件->收尾

结果我们在看到它在获取一帧源数据部分使用到一个  filter。 这是该程序自己实现的类似一个文件管理器的玩意, 直接就从这个里面getframe了,可以肯定,之前已经初始化了这个结构体,(这有点op的思想),具体怎么获取一帧,追踪即可看到源码。



  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值