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
ffmpeg-0.5不用修改任何代码,./configure --prefix=./install && make && make install 就好了。
3. 编译好之后就可以把tutorial上的代码拿来用了,只需要代三个地方
4. ok
《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
- sun@ubuntu:~/code/ffmpeg/test$ gcc --version
- gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
- Copyright (C) 2011 Free Software Foundation, Inc.
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3. 编译好之后就可以把tutorial上的代码拿来用了,只需要代三个地方
- a. 修改include
- < #include <ffmpeg/avcodec.h>
- < #include <ffmpeg/avformat.h>
- ---
- > #include <libavcodec/avcodec.h>
- > #include <libavformat/avformat.h>
-
- b. 把所有的alloc_picture代为alloc_picture_t
- 315c315
- < void alloc_picture(void *userdata) {
- ---
- > void alloc_picture_t(void *userdata) {
-
- c. 把pstrcpy改为av_strlcpy, 里面的参数要换一下
- > //pstrcpy(is->filename, sizeof(is->filename), argv[1]);
- > av_strlcpy(is->filename, argv[1], sizeof(is->filename));