关于FFmpegAPI部分的函数说明,这篇博客是我见过写的非常nice的,非常适合初学者。
附上链接吧:
https://blog.csdn.net/leixiaohua1020/article/details/44116215
FFmpeg库为下载的是这个版本,然后键入
tar -jxvf ***.tar.bz2
##编译动态库,不要静态库,不用说明文档的编译配置:
./configure --prefix=buildout --enable-shared --disable-static --disable-doc
##增加x264支持的编译配置
./configure --prefix=buildout --enable-shared --disable-static --disable-doc --enable-gpl --enable-libx264
##现在可以使用makefile了
make -j ##如果编译慢的话,可以加上-j这个参数
make install
下面是根据上面的文档,封装的程序,先看一下Mikefile吧
CC = gcc -std=gnu99 -Wall -g
CPP = g++ -std=c++11 -Wall -g
LINK = -lavformat -lavfilter -lavcodec -lswscale -lavutil -lswresample
PTHREAD = -lpthread
ALL = testFFmpeg FFmpegClient libRtspStream.a libRtspStream.so
all:$(ALL)
setEnvir: ##设置环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(LIB)
setTags: ##便于跳转,需要下载插件
ctags -R
chmod 0666 tags
main函数就这几个简单的设置。
Init_RtspStream();
SetUrl(argv[1]);
SetOutputPath("recv_v.h264","recv_a.mp3");
StartRecvStream();
Close_RtspStream();
看一下主要的.h方法吧,具体方法作用相信大家看见函数名字就知道使用了
void Init_RtspStream();
void Close_RtspStream();
void SetUrl(char* url);
void SetOutputPath(char *path_v,char *path_a);
void StartRecvStream();
void StopRecvStream();
void GetVideoSize(long *w,long *h);
void run();
bool OpenInputStream();
void CloseInputStream();
void readAndMux();
void* ReadingThrd();
bool openOutputStream();
void closeOutputStream();
void ReleaseCodecs();
完整工程(包括FFmpeg库,我只编译了动态库),我将上传到我的主页,需要的可以去下载。