想根据教程An ffmpeg and SDL Tutorial 学习音视频解码,这个作为入门教程实在是太爽了,唯一有点不好的是,这个教程太老了使用现在的ffmpeg1.0的库是编译不过的(不过SDL变化比较小)。所以修改代码使之符合现有的库,这样印象比较深刻。目前可以下到的ffmpeg的最新版本是ffmpeg-1.0,SDL的最新版本是SDL-1.2.15.tar.gz,在ubuntu 12.04上进行开发。
ffmpeg --> 源码: /home/sun/code/ffmpeg-1.0 --> 安装: /home/sun/code/ffmpeg-1.0/install
SDL-1.2.15 -->源码: /home/sun/code/SDL-1.2.15 --> 安装: /home/sun/code/SDL-1.2.15/install
-
sun@ubuntu:~/code/ffmpeg-1.0$ ./configure --prefix=/home/sun/code/ffmpeg-1.0/install --enable-memalign-hack --enable-shared --disable-yasm ;
-
sun@ubuntu:~/code/ffmpeg-1.0$ make && make install
-
如果想在ffmpeg编译的同时也编译出ffplay,需要先安装SDL库
注意:av_read_frame读出的完整的帧,不是包,在函数内部已经保证了帧的完整性。对于视频,av_read_frame读出的就是完整的一帧视频,不会是半帧或多帧;对于音频,av_read_frame读出的可能是多帧,但也是完整的,不存在半帧的情况。
[参考]
3. 要想运行还需要把运行时库的搜索路径加上去