我的第一个ffmpeg程序(编译及调用ffmpeg函数)
2017-01-03 23:24
501 查看
(1)ffmpeg的编译和安装
http://blog.csdn.net/zhouzhenhe2008/article/details/48531355
(2)安装完成后,ffmpeg静态库将会出现在/usr/local/lib/
,即
libavcodec.a
libavdevice
libavfilter.a
libavformat.a
libavutil.a
libswresample.a
libswscale。
(3)安装后可以引用的头文件的位置 /usr/local/include/
(4)测试程序,保存为myfirst_ffmpeg.c,
编译命令:gcc -o a.out myfirst_ffmpeg.c -I /usr/local/include -L /usr/local/lib -lavutil -lavformat -lavcodec -lavutil -lswresample -lm -lrt -lpthread -lz
(5)可能遇到的问题。
a.
timeval.c:(.text+0x6f): undefined reference to `clock_gettime'
解决:
则你只需要在你的编译命令加上 -lrt 编译即可
b.
/share/FFmpeg-master/libavcodec/opusdec.c:379: undefined reference to `swr_is_initialized'
/usr/local/lib/libavcodec.a(opusdec.o): In function `opus_decode_frame':
/share/FFmpeg-master/libavcodec/opusdec.c:220: undefined reference to `swr_is_initialized
解决:
编译加上-lswresample
c.忘记为什么要执行下面这条了
cp /usr/local/lib/pkgconfig/* /usr/share/pkgconfig/
http://blog.csdn.net/zhouzhenhe2008/article/details/48531355
(2)安装完成后,ffmpeg静态库将会出现在/usr/local/lib/
,即
libavcodec.a
libavdevice
libavfilter.a
libavformat.a
libavutil.a
libswresample.a
libswscale。
(3)安装后可以引用的头文件的位置 /usr/local/include/
(4)测试程序,保存为myfirst_ffmpeg.c,
编译命令:gcc -o a.out myfirst_ffmpeg.c -I /usr/local/include -L /usr/local/lib -lavutil -lavformat -lavcodec -lavutil -lswresample -lm -lrt -lpthread -lz
#include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libavutil/avutil.h" #include "stdio.h" int main(int argc, char* argv[]) { printf("going to av_register_all\n"); av_register_all(); return 0; }
(5)可能遇到的问题。
a.
timeval.c:(.text+0x6f): undefined reference to `clock_gettime'
解决:
则你只需要在你的编译命令加上 -lrt 编译即可
b.
/share/FFmpeg-master/libavcodec/opusdec.c:379: undefined reference to `swr_is_initialized'
/usr/local/lib/libavcodec.a(opusdec.o): In function `opus_decode_frame':
/share/FFmpeg-master/libavcodec/opusdec.c:220: undefined reference to `swr_is_initialized
解决:
编译加上-lswresample
c.忘记为什么要执行下面这条了
cp /usr/local/lib/pkgconfig/* /usr/share/pkgconfig/
相关文章推荐
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”?
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 考试题:在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明
- 我的第一个调用FFmpeg库的程序出炉(完)
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- Android NDK编程,我的第一个hello-jni程序,如何调用自己编译的so库
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- c++程序调用被C编译器编译后的函数为什么要加extern "C"
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- C程序编译之函数调用与全局变量
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?----转
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 转载--在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”
- 为什么c++程序调用c编译器编译的函数需要在调用前加上extern“C”
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?----转
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?----转