FFmpeg开发笔记(十一):ffmpeg在移植到海思HI35x
前言
上一篇交叉编译了ffmpeg的海思版本,使用交叉编译的qt的ffmpeg播放器在海思上播放,本片是将ffmpeg的环境添加进海思的sample环境中。
##### add by yangjiong 2022-03-12 startINC_FLAGS +=-I/home/yang/work/ffmpeg-hi3559av100/includeMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libavcodec.aMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libavdevice.aMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libavfilter.aMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libavformat.aMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libavutil.aMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libswresample.aMPI_LIBS +=/home/yang/work/ffmpeg-hi3559av100/lib/libswscale.a##### add by yangjiong 2022-03-12 stop
如下图:
(注意海思的sample子目录下,文件夹只能有一个main函数,也就是说会把子文件夹中所有的头文件和源文件当作一个应用联合编译。)
将原来的.c的改一下后缀.bak,然后重新建立一个c文件。
(注意:需要先将库加入到运行环境中,最简单的方式就是直接copy之前的库,将lib放到海思系统的/lib文件目录下,也可以自定义路径,运行时使用脚本先加入路径然后跑应用,方法很多,条条大路通罗马)。
在HI3559AV100运行结果如下:
#ifdef__cplusplus#if__cplusplusextern"C"{#endif#endif/* End of #ifdef __cplusplus */#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<pthread.h>#include<signal.h>#include<sys/socket.h>#include<sys/un.h>#include<unistd.h>#include<netinet/in.h>#include<arpa/inet.h>#include<sys/types.h>#include"sample_comm.h"// ffmepg#include<libavcodec/avcodec.h>#include<libavformat/avformat.h>#include<libswscale/swscale.h>#include<libavdevice/avdevice.h>#include<libavformat/version.h>#include<libavutil/time.h>#include<libavutil/mathematics.h>#defineLOG printf("%s:%d\n", __FILE__, __LINE__);intmain(intargc,char*argv[]){printf("%s\n",avcodec_configuration());return0;}#ifdef__cplusplus#if__cplusplus}#endif#endif/* End of #ifdef __cplusplus */