ffmpeg学习---7.用ffmpeg-0.5学习Tutorial

http://dranger.com/ffmpeg/tutorial01.html
《An ffmpeg and SDL Tutorial》
1. 在最新的ffmpeg上运行Tutorial需要改很多地方,改来改去的到最后都不知道自己想干什么了。新手嘛就要把精力花在学习知识点上,只要把原理弄明白了,以后不管它API接口怎么变,照样可以搞的定。
所以不用最新的ffmpeg而用老版本的ffmpeg,这样改动少,一边看tutorial一边看代码,最重要的一点是还能调试,这样效率比较高。
2. 这儿选ffmpeg-0.5,看到很多博客上说这个tutorial用的版本是ffmpeg-0.4.8,花了很长时间终于把ffmpeg-0.4.8编过了,发现接口少了很多,像avcodec_decode_audio2、av_q2d都没有,难道是我下错了代码?见鬼了!
ffmpeg-0.5下载地址:
http://download.chinaunix.net/download.php?id=25235&ResourceID=2990 
编译系统 ubuntu 12.04  +  gcc 4.6.3
  1. sun@ubuntu:~/code/ffmpeg/test$ gcc --version
  2. gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  3. Copyright (C) 2011 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions. There is NO
  5. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ffmpeg-0.5不用修改任何代码,./configure --prefix=./install  && make && make install 就好了。

3. 编译好之后就可以把tutorial上的代码拿来用了,只需要代三个地方
    
  1. a. 修改include
  2. < #include <ffmpeg/avcodec.h>
  3. < #include <ffmpeg/avformat.h>
  4. ---
  5. > #include <libavcodec/avcodec.h>
  6. > #include <libavformat/avformat.h>

  7. b. 把所有的alloc_picture代为alloc_picture_t
  8. 315c315
  9. < void alloc_picture(void *userdata) {
  10. ---
  11. > void alloc_picture_t(void *userdata) {

  12. c. 把pstrcpy改为av_strlcpy, 里面的参数要换一下
  13. > //pstrcpy(is->filename, sizeof(is->filename), argv[1]);
  14. > av_strlcpy(is->filename, argv[1], sizeof(is->filename));
4. ok



你可能感兴趣的:(音视频)