学习ffmpeg tutoial

在Ubuntu下面搭建开发环境,其实就是装一下用到的各个库。

我没有用自己编译源码的方法,直接sudo apt-get install xxx了。

这里面sdl,ffmpeg的库需要装,另外avcodec avformat swscale的库也要装,并不是包含在ffmpeg里面的。

装完了之后,默认的路径是在/usr/include下面有头文件

因此在源码中#include的是libavcdec/avcodec.h这种的格式,如果是自己编译的源码,那么路径可能会不一样


ffmpeg tutorial是在网上找到的教程文档,提供了源码下载,但是教程比较老了,一些函数被废弃了。因此各种改,在网上也能搜到很多的。

主要是对video的数据处理多了使用一个swscale的库里面的函数,其他的没怎么变化,有个strcpy的函数变成了av_strlcpy,而且参数顺序也变化了。

话说这些变化怎么搞出来的我是不知道,编译不过自然要找到问题。但是如何找到替代的函数就很难了,我是直接google别人的。

不过当时也没有记录下大家的网址,这里就没法给出了。


前六章的代码都打了一遍,第六章的同步音频的实现还有些问题,第七章是图像缩放的,第八章讲的就是swscale的缩放库。因此就没有继续敲代码了。

主要分析了一下各个代码的主要流程啊,实现方法啊之类的。

总结到一点东西。

程序结构上主要还是以SDL的API为主,包括程序外壳也就是GUI的部分,线程的处理,事件,回调函数,定时器等等功能全部都是用的SDL的API来实现的。

而ffmpeg的库门则是完成了打开文件,读取文件,处理文件,也就是编解码数据等工作。

掺杂了两个库的API因此思维老是在两个库里面跳来跳去的,有点麻烦。

想搞清楚了,那就把两个库的API都看一遍,会花费很多时间,但是十分有效果的。

SDL的API并不是很多,分类的也比较清楚,直接找源码里面的doc的html看看就可以了,不是挺难的,里面的原理没有.c文件不好分析,不过功能上还是可以接受的。

ffmpeg的API就一大堆了,不过常用到的倒是没有几个。关键还是它的数据结构比较麻烦,几个超大的结构体包含来包含去的。

当API和数据结构熟悉了之后再来看代码,思维就比较能够跟得上节奏了。


感觉比较好的方法是实现一个播放器,能用来播电影听歌之类的就好。具体的实现过程还是很麻烦的,暂时我还没有动手。

想想的话主要是SDL先把界面做出来,就是一个框架,功能性的东西先用fprintf来打印,然后再把ffmpeg的API填进去。

这里面主要还是一个架构的问题,程序的结构设计的好的话,就比较轻松,设计的不好的话呢,估计调试都很费劲。

暂时总结到这里。~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值