在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:libffmpeg开源软件地址:https://gitee.com/smartavs/libffmpeg开源软件介绍:libffmpeg1.介绍项目是基于开源项目中的fftools模块进行移植和修改,主要目的
注意:ffmpeg相关库是基于项目https://gitee.com/smartavs/ffmpeg.git编译的,并且也是基于该版本进行的测试和验证。理论上本项目的代码稍作修改是可兼容各个FFMPEG的版本,具体验证后续再说; 2.编译说明2.1.源码下载git clone https://gitee.com/smartavs/ffmpeg.gitgit clone https://gitee.com/smartavs/libffmpeg.git 2.2.FFMPEG库编译
#! /bin/bashprefix=/usr/local/mscoreexport PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:$PKG_CONFIG_PATH##ffmpeg usesecho "Install libs(sdl,sdl2,fontconfig,fribidi,yasm) for ffmpeg"apt install -y libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev libsdl2-* *fontconfig* *fribidi* yasmbash configure \ --prefix=${prefix} \ --extra-ldflags=-L${prefix}/lib \ --extra-cflags=-I${prefix}/include \ --enable-shared \ --disable-static \ --enable-x86asm \ --disable-doc \ --enable-gpl \ --enable-pthreadsmake && make install
2.3.LIBFFMPEG库编译
2.4.LIBFFMPEG库样例编译和运行
3.使用说明ffmpeg库的初始化和清理函数,程序只需要开始调用一次初始化和整个程序退出时释放一次即可; extern int msffmepg_api_envinit();extern int msffmepg_api_envdeinit(); libffmpeg环境始化函数 函数功能说明:用于分配并初始化FFMPEGCONText 传入参数说明: <1>char (*control_cbfunc)(void *control_cbfunc_arg)用于进行执行控制的回调函数,如授权控制,退出指令控制等。当回调函数返回0时,任务线程将会退出。如果不需要控制,则传入NULL; <2>control_cbfunc_arg用于传入回调函数需要的程序变量结构体。如果不需要控制,则传入NULL; <3>char (*bitrate_cbfunc)(void *bitrate_cbfunc_arg,int size,char flag_recv)用于获取接收和发送码率信息和运行时间等的回调函数,size传入本次回调的包大小,flag_recv表明当前回调是接收还是发送。如果不需要计算码率,则传入NULL; <4>bitrate_cbfunc_arg用于传入回调函数需要的程序变量结构体。如果不需要计算码率,则传入NULL; 返回参数说明:失败返回NULL,成功则返回分配成功的FFMPEGCONText指针; extern FFMPEGCONText *msffmepg_api_init(char (*control_cbfunc)(void *control_cbfunc_arg),void *control_cbfunc_arg, char (*bitrate_cbfunc)(void *bitrate_cbfunc_arg,int size,char flag_recv),void *bitrate_cbfunc_arg); libffmpeg清理函数 函数功能说明:释放FFMPEGCONText空间 extern void msffmepg_api_deinit(FFMPEGCONText **ppffmpeg_ctt); 命令执行接口函数1 函数功能说明:实际的命令执行函数,和msffmepg_api_run功能一样,只是传入参数有差异 传入参数说明: <1>argc表示传入的参数个数,如ffmpeg -i input.mp3 output.ts,argc传入4; <2>argv表示传入的具体参数; <3>pffmpeg_ctt为通过接口msffmepg_api_init获取到的指针; 返回参数说明:无实际意义; extern int msffmepg_api_runcmd(int argc,char** argv,FFMPEGCONText *pffmpeg_ctt); 命令执行接口函数2 函数功能说明:实际的命令执行函数,和msffmepg_api_runcmd功能一样,只是传入参数有差异 传入参数说明: <1>cmdline命令行字符串,如ffmpeg -i input.mp3 output.ts,argc <2>pffmpeg_ctt为通过接口msffmepg_api_init获取到的指针; 返回参数说明:无实际意义; extern int msffmepg_api_run(char * cmdline,FFMPEGCONText *pffmpeg_ctt); 命令停止接口函数 传入参数说明: <1>pffmpeg_ctt为通过接口msffmepg_api_init获取到的指针; <2>flag_waitstop指明是否等待执行退出:1表示同步执行,阻塞等待执行退出或30秒超时;0表示异步执行; 返回参数说明:0表示停止成功;-1表示停止失败;1表示pffmpeg_ctt未空,停止失败; extern char msffmepg_api_taskstop(FFMPEGCONText *pffmpeg_ctt,char flag_waitstop); |
请发表评论