ffmpeg学习四:写第一个程序-视频解封装与解码

前面通过阅读《FFmpeg Basic》这本书,对ffmpeg工程和视频编解码的基本知识有了一定的理解,学习编程最重要的当然是动手实践了,所以这片博客,我将会完整记录自己第一次编写视频解码程序的过程。 这个程序能将一个视频转换为一帧一帧的图片。这个程序参考了decoding_encoding.c文件,但使它们还是有很大的不同。

编译自己的程序

在编写程序之前,先搭建一下编译环境。
我当时编译ffmepg源码是这样的:
1.执行./configure –disable-yasm –enable-shared –prefix=tmp
2.make
3.make install
因此,编译完成后,头文件和库都在tmp目录下,那我现在编译程序需要头文件和苦呀,所以都需要从这里去找。因此,我们写一个makefile和一个Init.sh脚本,init.sh脚本只有一行,就是告诉需要运行的程序,动态链接库去哪里找,init.sh脚本如下:

export LD_LIBRARY_PATH=/home/jinwei/work/ffmpeg-2.7.6/tmp/lib

makefile如下:

VAR_INCLUDE := -I ../../../ffmpeg-2.7.6/tmp/include
VAR_SHARED_LIB_DIR = -L ../../../ffmpeg-2.7.6/tmp/lib
VAR_SHARED_LIBS = -l avcodec -l avformat  -l avdevice -l avutil -l swresample -l avfilter -l swscale

avio_reading.bin:avio_reading.o
    gcc  -o $@ $^ $(VAR_INCLUDE)  $(VAR_SHARED_LIB_DIR) $(VAR_SHARED_LIBS) 

%.o:%.c
    gcc   -c $<  $(VAR_INCLUDE)  $(VAR_SHARED_LIB_DIR) $(VAR_SHARED_LIBS)
clean:
    rm -rf *.o *.bin

这个Makefile非常简单,我们这里编译的是bin:avio_reading.c这个例子。如果对Makefile稍作了解,这个Makefile一眼就能看懂做了什么事情吧,所以就不废话了。
执行make后,会生成avio_reading.bin文件,执行这个文件:
./avio_reading.bin hello.mp4
打印如下:

ptr:0x7f1aacc26000 size:167773
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值