Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2110046
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: C/C++

2013-03-13 15:31:25


《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下载地址:

编译系统 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



阅读(2122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~