ffmpeg交叉编译

       通过svn命令:svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg ,取出修订版 26292,配置如下:

./configure /

--enable-cross-compile /

--arch=armv6 /

--target-os=linux /

--cross-prefix=arm-linux- /

--cc=arm-linux-gcc /

--enable-shared

无法正常编译过,后通过http://www.ffmpeg.org/releases下载了ffmpeg-0.6.1.tar.bz2还使用上面的配置,能够正常编译通过了,不过写了一个最简单的小程序,如下:

#include #include #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" int main(int argc, char **argv) { AVFormatContext *pFormatCtx; if (argc != 2) { printf("usage: %s (media)filename/n", argv[0]); return -1; } const char *filename = argv[1]; av_register_all(); //Open video file if(av_open_input_file(&pFormatCtx, filename, /*fmt*/NULL, 0, NULL)!=0) return -1; // Retrieve stream information if(av_find_stream_info(pFormatCtx)<0) { printf("av_find_stream_info error/n"); return -1; } // Dump information about file onto standard error dump_format(pFormatCtx, 0, filename, 0); // Close the video file av_close_input_file(pFormatCtx); exit(0); } 

在板子上运行,却出现 Diverting av_*_packet function calls to libavcodec. Recompile to improve performance 一句话,然后程序也不退出,经查询,这个提示不是错误,网上有人说原因是:the av_*_packet symbols have been moved from libavformat to libavcodec. 因需要修改源码,而我也是新手,所有又下载了一个ffmpeg-0.5.3.tar.bz2,配置、编译正常,小程序也能够正常输出媒体文件的信息了。

你可能感兴趣的:(音视频分析)