精华内容
下载资源
问答
  • 本人,最新编译完成的ffmpeg.so 3.0,android平台亲测通过,最低支持android sdk 4.2 带有头文件 ARM 编译器编译 带有FFMPEG可执行文件
  • 由于FFmpeg官方只提供动态链接的lib和dll,对于需要静态链接的情况不适用,导致需要将FFmpeg的那一堆dll都需要和exe一起发布。 本压缩包中,包含了ffmpeg相关的lib和头文件。 lib清单如下: libavcodec.lib ...
  • mingw下使用vs2015编译器编译FFMPEG

    千次阅读 2015-10-24 20:55:07
    由于工作原因,需要在MINGW下编译出一个单独完整的FFMPEG 功能库(而不是avcodec/avformat等很多库)提供给WINDOWS UI使用。  折腾了好几天,下过msys2,ming64,都没有成功,貌似国外的网站访问这些资源速度很慢。...

    由于工作原因,需要在MINGW下编译出一个单独完整的FFMPEG 功能库(而不是avcodec/avformat等很多库)提供给WINDOWS UI使用。 
    折腾了好几天,下过msys2,ming64,都没有成功,貌似国外的网站访问这些资源速度很慢。
    最后使用vs2015+mingw1.0来解决这个问题。
    过程如下记录如下。

    一、mingw下编译ffmpeg

    考虑了如下几种方案:

    1.修改ffmpeg的makefile,使它能生成一个单独的DLL。也许这种方法是最好的,但是本人对MAKEFILE不熟悉,望而却步。
    2.编译成静态库,再创建一个VS(2010、2013)的DLL功能对起进行封装。 众所周知,MINGW编译出的静态库需要libgcc.a、libmingwex.a、libcoldname.a
    而且需要注意链接顺序,网上多数开发者的经验是MINGW生成的静态库兼容性不好,经常出现程序崩溃,所以放弃这种方案。
    3.使用vs工具链来进行编译。由于 vs2013之前的版本不支持c99语言,故需要配置
    C99-to-C89 Converter & Wrapper (http://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows)。
    本人按照步骤做的,但是编译时还是不认识c99语法。 只能下载最新的vs2015来进行编译。
    mingw的配置在此不做描述,网络有很多的参考。这里主要记录在mingw下用vs2015编译时碰到的一些问题以及解决方法。


    环境:mingw1.0/vs2015/ffmpeg2.3
    1. ./configure --enable-static --toolchain=msvc
    2. make
       一开始就碰到了如下错误:
       
      问题1
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1419):
    note: 命令行参数: 参见前面的“vsnprintf”定义
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1421):
    fatal error C1189: #error:  Macro definition of vsnprintf conflicts with Standa
    d Library function declaration

    经查找,原来是生成的config.mak文件里CPPFLAGS= -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_WIN32_WINNT=0x0502 -Dstrtod=avpriv_strtod -Dsnprintf=avpriv_snprintf -D_snprintf=avpriv_snprintf -Dvsnprintf=avpriv_vsnprintf
    有snprintf的定义。本人对linuix不熟悉,只能简单把
    -Dsnprintf=_snprintf
       -Dsnprintf=avpriv_snprintf -D_snprintf=avpriv_snprintf -Dvsnprintf=avpriv_vsnprintf
       定义去掉,再make。也许有更好的解决方法。

    问题2
    compat\msvcrt\snprintf.c文件需要#include "snprintf.h",否则提示
    avpriv_vsnprintf未定义

    CC      libavutil/../compat/msvcrt/snprintf.o
    snprintf.c
    libavutil/../compat/msvcrt/snprintf.c(41): error C4013: “avpriv_vsnprintf”未定
    义;假设外部返回 int
    make: *** [libavutil/../compat/msvcrt/snprintf.o] Error 2



    问题3:
    ffmpeg.c文件中#elif HAVE_KBHIT 改成#elif 0 //HAVE_KBHIT,否则提示
    _cnt错误

    ffmpeg.c(395): error C2039: “_cnt”: 不是“_iobuf”的成员
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\corecrt_wstdio.
    h(26): note: 参见“_iobuf”的声明

    大笑!还好,才3个问题, 编译完成了 微笑

    3.make install
      可以发现lib下已经有生成的libavcodec.a等文件了。
      
      
    二、vs里使用上面生成的静态库
     由于ffmpeg是在mingw 下用vs2015编译的,可以预想这个库在低版本的vs中会存在
     某些问题,果然,在vs2010里使用后,报了如下错误:
     
    local\flvEditor-2010\Debug\flvEditor.dll) 与 Linker 的 OutputFile 属性值(D:\MinGW\msys\1.0\local\flvEditor-2010\bin\flvEditor.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
    1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fprintf 已经在 libavformat.a(dump.o) 中定义
    1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _sscanf 已经在 libavcodec.a(diracdec.o) 中定义
    1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __vsnprintf 已经在 libavutil.a(snprintf.o) 中定义
    1>LIBCMT.lib(open.obj) : error LNK2005: __sopen 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(_file.obj) : error LNK2005: ___iob_func 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(dosmap.obj) : error LNK2005: __errno 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(osfinfo.obj) : error LNK2005: __get_osfhandle 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(lseeki64.obj) : error LNK2005: __lseeki64 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(tidtable.obj) : error LNK2005: __encoded_null 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(getenv.obj) : error LNK2005: _getenv 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(mlock.obj) : error LNK2005: __unlock 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(mlock.obj) : error LNK2005: __lock 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(fflush.obj) : error LNK2005: _fflush 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(winxfltr.obj) : error LNK2005: ___CppXcptFilter 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(fclose.obj) : error LNK2005: _fclose 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(winsig.obj) : error LNK2005: _signal 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_a 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
    1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
    1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
    1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
    1>LIBCMT.lib(atox.obj) : error LNK2005: _atoi 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(strtol.obj) : error LNK2005: _strtol 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(strtol.obj) : error LNK2005: _strtoul 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>LIBCMT.lib(strtoq.obj) : error LNK2005: __strtoi64 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
    1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __read 已经在 LIBCMT.lib(read.obj) 中定义
    1>     正在创建库 D:\MinGW\msys\1.0\local\flvEditor-2010\Debug\flvEditor.lib 和对象 D:\MinGW\msys\1.0\local\flvEditor-2010\Debug\flvEditor.exp
    1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
    1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
    1>libavformat.a(apetag.o) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
    1>libavformat.a(subtitles.o) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
    1>libavformat.a(rtmppkt.o) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
    1>libavutil.a(opt.o) : error LNK2019: 无法解析的外部符号 ___report_rangecheckfailure,该符号在函数 _opt_size 中被引用
    1>libavformat.a(wavdec.o) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
    1>libavformat.a(yuv4mpegdec.o) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
    1>libavformat.a(http.o) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
    1>libavfilter.a(avfiltergraph.o) : error LNK2001: 无法解析的外部符号 ___stdio_common_vsprintf
    1>libavfilter.a(graphparser.o) : error LNK2001: 无法解析的外部符号 ___stdio_common_vsprintf
    1>libavfilter.a(af_amix.o) : error LNK2001: 无法解析的外部符号 ___stdio_common_vsprintf
    1>libavfilter.a(f_select.o) : error LNK2001: 无法解析的外部符号 ___stdio_common_vsprintf
    1>libavutil.a(eval.o) : error LNK2001: 无法解析的外部符号 __libm_sse2_pow_precise
    1>libswscale.a(utils.o) : error LNK2001: 无法解析的外部符号 __libm_sse2_pow_precise
    1>libavfilter.a(af_afade.o) : error LNK2001: 无法解析的外部符号 __libm_sse2_pow_precise
    1>libavcodec.a(aacsbr.o) : error LNK2001: 无法解析的外部符号 __libm_sse2_pow_precise
    1>libavfilter.a(vf_psnr.o) : error LNK2001: 无法解析的外部符号 __ultod3
    1>libavutil.a(eval.o) : error LNK2001: 无法解析的外部符号 __ultod3
    1>libavfilter.a(aeval.o) : error LNK2001: 无法解析的外部符号 __ultod3
    1>libavfilter.a(af_astats.o) : error LNK2001: 无法解析的外部符号 __ultod3
    1>libavfilter.a(af_volumedetect.o) : error LNK2001: 无法解析的外部符号 __ultod3
    1>libavformat.a(aiffdec.o) : error LNK2001: 无法解析的外部符号 __ultod3

    等47个无法linker的错误。其中LIBCMT.lib的错误在
    属性--->输入--->忽略特定默认库 输入LIBCMT.lib,即可解决。
    其他的___report_rangecheckfailure等错误是检查堆栈缓存溢出的代码,
    在msvcrt11.dll及以后版本中都会调用到,而我们用的是vs2010,所以找不到。
    上面这个问题如果使用mingw编译出来的动态库则没这个问题。
    也许在mingw编译时禁掉对应的选项即可或者导入2010后的对应库可以解决,但是具体不知道是什么选项,所以放弃。

    面对这么多个linker错误, 本人只能使用vs2015来创建一个DLL供其他VS版本使用。
    vs2015的DLL 功能很顺利,inline等都有,引入的库如下:
    #pragma comment(lib,"libavcodec.a")
    #pragma comment(lib,"libavformat.a")
    #pragma comment(lib,"libavutil.a")
    #pragma comment(lib,"libswscale.a")
    #pragma comment(lib,"libswresample.a")
    #pragma comment(lib,"libavfilter.a")
    #pragma comment(lib,"libavdevice.a")
    #pragma comment(lib,"wsock32.lib")  

    #pragma comment(lib,"ws2_32.lib") 

    至此,DLL生成了,写了简单的界面测试,也可以跑起来了微笑。但是只是基本功能,X264等外部库还需要移植。


    至于ffmpeg.c等文件在vs2015中的编译问题,本处就不多加描述了。







    展开全文
  • 编译器GCC/CLANG gcc/clang -g -O2 -o test test.c -I -L -i -g 输出文件中的调试信息 -O 对输出文件做指令优化 -o 输出文件 // -I (大写的i)指定头文件 -L 指定库文件位置 -l (小写的L)指定使用哪个库 ...

    目录


    编译器GCC/CLANG

    gcc/clang -g -O2 -o test test.c -I -L -i
    -g 输出文件中的调试信息
    -O 对输出文件做指令优化
    -o 输出文件
    //
    -I (大写的i)指定头文件
    -L 指定库文件位置
    -l (小写的L)指定使用哪个库
    
    展开全文
  • 最近在cygwin环境下用NDK交叉编译工具编译ffmpeg,在configure阶段折腾了几天,老是不成功,后发现主要原因竟然只是目录路径名称写法不对,路径名不能用/cygdrive/d来开头,而要用d:/这种形式,真是坑爹啊…… ...

    最近在cygwin环境下用NDK交叉编译工具编译ffmpeg,在configure阶段折腾了几天,老是不成功,后发现主要原因竟然只是目录路径名称写法不对,路径名不能用/cygdrive/d来开头,而要用d:/这种形式,真是坑爹啊……

    (1)安装cygwin,下载NDK r10

    配置NDK安装目录环境变量:export NDK_ROOT=d:/Software/android-ndk32-r10-windows-x86_64/android-ndk-r10。严重注意这里!路径名开头不能写成/cygdrive/d/,不然configure不成功。

    (2)编写脚本,例如:

    #!/bin/sh
    SYSROOT=$NDK_ROOT/platforms/android-19/arch-arm
    TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64

    export TEMPDIR=f:/Temp

    ./configure \
        --prefix=/usr/local \
        --enable-shared \
        --disable-static \
        --disable-doc \
        --disable-ffserver \
        --disable-ffmpeg \
        --disable-ffplay \
        --disable-ffprobe \
        --disable-avdevice \
        --disable-devices \
        --disable-encoders \
        --disable-muxers \
        --enable-cross-compile \
        --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
        --target-os=linux \
        --sysroot=$SYSROOT \
        --arch=arm \
        --extra-cflags="-Os -fpic" \
        --extra-ldflags="-Wl,-rpath-link=$SYSROOT/usr/lib -nostdlib -L$SYSROOT/usr/lib -lc -lm -ldl"

    (3)make

    编译过程中会遇到错误,相应的解决方法以后再说明




    上面第(1)(2)步需要注意如下几个问题:

    (a)临时目录TEMPDIR的路径也是一样的要求开头不能用/cygdrive/,不然configure会失败出现如下错误提示:

    d:/Software/android-ndk32-r10-windows-x86_64/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc is unable to create an executable file.
    C compiler test failed.


    If you think configure made a mistake, make sure you are using the latest
    version from Git.  If the latest version fails, report the problem to the
    ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
    Include the log file "config.log" produced by configure as this will help


    solving the problem.

    意思是C编译器测试失败。刚开始不知道什么原因造成的这个问题,后发现configure过程会产生日志文件config.log,文件中提示找不到用来测试C编译器用的一个临时生成的C文件。(config.log这个日志很有帮助!!!)


    (b)NDK_ROOT的路径开头如果写成/cygdrive/,configure会失败,config.log文件中就会提示找不到lc,lm,ldl这几个库文件。即使不加 -L$SYSROOT/usr/lib -lc -lm -ldl这个链接选项,configure能成功;但在之后的make中编译也会失败,提示找不到一些标准头文件(如stdint.h)。因为arm-linux-androideabi-gcc交叉编译器需要设置--sysroot选项,sysroot用来设置编译时需要的头文件和库文件的目录路径,如果用/cygdrive/这种形式来表示路径的话,arm-linux-androideabi-gcc将识别不了。



    展开全文
  • 2.1 先下载好ffmpeg和x264源码。 不会下载的参考这里:https://blog.csdn.net/xiaolong1126626497/article/details/105784088 2.2 下载安装aarch64-linux-gcc编译器 编译器在这里:https://dow.

    一、环境介绍

    宿主机环境: ubuntu18.04 64位 PC平台

    目标环境: RK3399(ubuntu18.04 64位 ARM平台)

    编译器: aarch64-linux-gcc

    二、准备工作

    2.1 先下载好ffmpeg和x264源码。

    不会下载的参考这里:https://blog.csdn.net/xiaolong1126626497/article/details/105784088

    2.2 下载安装aarch64-linux-gcc编译器

    编译器在这里:https://download.csdn.net/download/xiaolong1126626497/12203205

    三、开始交叉编译

    3.1 交叉编译x264

    wbyq@wbyq:~/rk3399$ tar xvf /mnt/hgfs/linux-share-dir/last_x264.tar.bz2 
    wbyq@wbyq:~/rk3399$ cd x264-snapshot-20181217-2245/
    wbyq@wbyq:~/x264-snapshot-20181217-2245$./configure --prefix=$PWD/_install --disable-asm --enable-shared --enable-static --host=arm-none-linux-gnueabi
    

      配置之后在当前目录会生成config.mak文件,打开config.mak文件进行修改。

    继续编译安装。

    wbyq@wbyq:~/rk3399/x264-snapshot-20181217-2245$ make && make instal

    最终生成的文件如下:

    3.2 交叉编译ffmpeg

    wbyq@wbyq:~/rk3399$ tar xvf /mnt/hgfs/linux-share-dir/ffmpeg-4.2.2.tar.bz2 
    wbyq@wbyq:~/rk3399$ cd ffmpeg-4.2.2/
    wbyq@wbyq:~/rk3399/ffmpeg-4.2.2$ ./configure --enable-shared --enable-static --prefix=$PWD/_install --cross-prefix=aarch64-linux- --arch=arm64 --target-os=linux --enable-gpl --extra-cflags=-I/home/wbyq/rk3399/x264-snapshot-20181217-2245/_install/include --extra-ldflags=-L/home/wbyq/rk3399/x264-snapshot-20181217-2245/_install/lib --enable-ffmpeg --enable-libx264
    wbyq@wbyq:~/rk3399/ffmpeg-4.2.2$ make && make install
    

    注意:以上配置代码里的x264路径要修成成自己的实际路径。

    编译生成的文件如下:

    wbyq@wbyq:~/rk3399/ffmpeg-4.2.2$ tree _install/
    _install/
    ├── bin
    │   ├── ffmpeg
    │   └── ffprobe
    ├── include
    │   ├── libavcodec
    │   │   ├── ac3_parser.h
    │   │   ├── adts_parser.h
    │   │   ├── avcodec.h
    │   │   ├── avdct.h
    │   │   ├── avfft.h
    │   │   ├── d3d11va.h
    │   │   ├── dirac.h
    │   │   ├── dv_profile.h
    │   │   ├── dxva2.h
    │   │   ├── jni.h
    │   │   ├── mediacodec.h
    │   │   ├── qsv.h
    │   │   ├── vaapi.h
    │   │   ├── vdpau.h
    │   │   ├── version.h
    │   │   ├── videotoolbox.h
    │   │   ├── vorbis_parser.h
    │   │   └── xvmc.h
    │   ├── libavdevice
    │   │   ├── avdevice.h
    │   │   └── version.h
    │   ├── libavfilter
    │   │   ├── avfilter.h
    │   │   ├── buffersink.h
    │   │   ├── buffersrc.h
    │   │   └── version.h
    │   ├── libavformat
    │   │   ├── avformat.h
    │   │   ├── avio.h
    │   │   └── version.h
    │   ├── libavutil
    │   │   ├── adler32.h
    │   │   ├── aes_ctr.h
    │   │   ├── aes.h
    │   │   ├── attributes.h
    │   │   ├── audio_fifo.h
    │   │   ├── avassert.h
    │   │   ├── avconfig.h
    │   │   ├── avstring.h
    │   │   ├── avutil.h
    │   │   ├── base64.h
    │   │   ├── blowfish.h
    │   │   ├── bprint.h
    │   │   ├── bswap.h
    │   │   ├── buffer.h
    │   │   ├── camellia.h
    │   │   ├── cast5.h
    │   │   ├── channel_layout.h
    │   │   ├── common.h
    │   │   ├── cpu.h
    │   │   ├── crc.h
    │   │   ├── des.h
    │   │   ├── dict.h
    │   │   ├── display.h
    │   │   ├── downmix_info.h
    │   │   ├── encryption_info.h
    │   │   ├── error.h
    │   │   ├── eval.h
    │   │   ├── ffversion.h
    │   │   ├── fifo.h
    │   │   ├── file.h
    │   │   ├── frame.h
    │   │   ├── hash.h
    │   │   ├── hdr_dynamic_metadata.h
    │   │   ├── hmac.h
    │   │   ├── hwcontext_cuda.h
    │   │   ├── hwcontext_d3d11va.h
    │   │   ├── hwcontext_drm.h
    │   │   ├── hwcontext_dxva2.h
    │   │   ├── hwcontext.h
    │   │   ├── hwcontext_mediacodec.h
    │   │   ├── hwcontext_qsv.h
    │   │   ├── hwcontext_vaapi.h
    │   │   ├── hwcontext_vdpau.h
    │   │   ├── hwcontext_videotoolbox.h
    │   │   ├── imgutils.h
    │   │   ├── intfloat.h
    │   │   ├── intreadwrite.h
    │   │   ├── lfg.h
    │   │   ├── log.h
    │   │   ├── lzo.h
    │   │   ├── macros.h
    │   │   ├── mastering_display_metadata.h
    │   │   ├── mathematics.h
    │   │   ├── md5.h
    │   │   ├── mem.h
    │   │   ├── motion_vector.h
    │   │   ├── murmur3.h
    │   │   ├── opt.h
    │   │   ├── parseutils.h
    │   │   ├── pixdesc.h
    │   │   ├── pixelutils.h
    │   │   ├── pixfmt.h
    │   │   ├── random_seed.h
    │   │   ├── rational.h
    │   │   ├── rc4.h
    │   │   ├── replaygain.h
    │   │   ├── ripemd.h
    │   │   ├── samplefmt.h
    │   │   ├── sha512.h
    │   │   ├── sha.h
    │   │   ├── spherical.h
    │   │   ├── stereo3d.h
    │   │   ├── tea.h
    │   │   ├── threadmessage.h
    │   │   ├── timecode.h
    │   │   ├── time.h
    │   │   ├── timestamp.h
    │   │   ├── tree.h
    │   │   ├── twofish.h
    │   │   ├── tx.h
    │   │   ├── version.h
    │   │   └── xtea.h
    │   ├── libpostproc
    │   │   ├── postprocess.h
    │   │   └── version.h
    │   ├── libswresample
    │   │   ├── swresample.h
    │   │   └── version.h
    │   └── libswscale
    │       ├── swscale.h
    │       └── version.h
    ├── lib
    │   ├── libavcodec.a
    │   ├── libavcodec.so -> libavcodec.so.58.54.100
    │   ├── libavcodec.so.58 -> libavcodec.so.58.54.100
    │   ├── libavcodec.so.58.54.100
    │   ├── libavdevice.a
    │   ├── libavdevice.so -> libavdevice.so.58.8.100
    │   ├── libavdevice.so.58 -> libavdevice.so.58.8.100
    │   ├── libavdevice.so.58.8.100
    │   ├── libavfilter.a
    │   ├── libavfilter.so -> libavfilter.so.7.57.100
    │   ├── libavfilter.so.7 -> libavfilter.so.7.57.100
    │   ├── libavfilter.so.7.57.100
    │   ├── libavformat.a
    │   ├── libavformat.so -> libavformat.so.58.29.100
    │   ├── libavformat.so.58 -> libavformat.so.58.29.100
    │   ├── libavformat.so.58.29.100
    │   ├── libavutil.a
    │   ├── libavutil.so -> libavutil.so.56.31.100
    │   ├── libavutil.so.56 -> libavutil.so.56.31.100
    │   ├── libavutil.so.56.31.100
    │   ├── libpostproc.a
    │   ├── libpostproc.so -> libpostproc.so.55.5.100
    │   ├── libpostproc.so.55 -> libpostproc.so.55.5.100
    │   ├── libpostproc.so.55.5.100
    │   ├── libswresample.a
    │   ├── libswresample.so -> libswresample.so.3.5.100
    │   ├── libswresample.so.3 -> libswresample.so.3.5.100
    │   ├── libswresample.so.3.5.100
    │   ├── libswscale.a
    │   ├── libswscale.so -> libswscale.so.5.5.100
    │   ├── libswscale.so.5 -> libswscale.so.5.5.100
    │   ├── libswscale.so.5.5.100
    │   └── pkgconfig
    │       ├── libavcodec.pc
    │       ├── libavdevice.pc
    │       ├── libavfilter.pc
    │       ├── libavformat.pc
    │       ├── libavutil.pc
    │       ├── libpostproc.pc
    │       ├── libswresample.pc
    │       └── libswscale.pc
    └── share
        ├── ffmpeg
        │   ├── examples
        │   │   ├── avio_dir_cmd.c
        │   │   ├── avio_reading.c
        │   │   ├── decode_audio.c
        │   │   ├── decode_video.c
        │   │   ├── demuxing_decoding.c
        │   │   ├── encode_audio.c
        │   │   ├── encode_video.c
        │   │   ├── extract_mvs.c
        │   │   ├── filter_audio.c
        │   │   ├── filtering_audio.c
        │   │   ├── filtering_video.c
        │   │   ├── http_multiclient.c
        │   │   ├── hw_decode.c
        │   │   ├── Makefile
        │   │   ├── metadata.c
        │   │   ├── muxing.c
        │   │   ├── qsvdec.c
        │   │   ├── README
        │   │   ├── remuxing.c
        │   │   ├── resampling_audio.c
        │   │   ├── scaling_video.c
        │   │   ├── transcode_aac.c
        │   │   ├── transcoding.c
        │   │   ├── vaapi_encode.c
        │   │   └── vaapi_transcode.c
        │   ├── ffprobe.xsd
        │   ├── libvpx-1080p50_60.ffpreset
        │   ├── libvpx-1080p.ffpreset
        │   ├── libvpx-360p.ffpreset
        │   ├── libvpx-720p50_60.ffpreset
        │   └── libvpx-720p.ffpreset
        └── man
            ├── man1
            │   ├── ffmpeg.1
            │   ├── ffmpeg-all.1
            │   ├── ffmpeg-bitstream-filters.1
            │   ├── ffmpeg-codecs.1
            │   ├── ffmpeg-devices.1
            │   ├── ffmpeg-filters.1
            │   ├── ffmpeg-formats.1
            │   ├── ffmpeg-protocols.1
            │   ├── ffmpeg-resampler.1
            │   ├── ffmpeg-scaler.1
            │   ├── ffmpeg-utils.1
            │   ├── ffprobe.1
            │   └── ffprobe-all.1
            └── man3
                ├── libavcodec.3
                ├── libavdevice.3
                ├── libavfilter.3
                ├── libavformat.3
                ├── libavutil.3
                ├── libswresample.3
                └── libswscale.3
    
    18 directories, 208 files
    wbyq@wbyq:~/rk3399/ffmpeg-4.2.2$

    接下来,只需要把生成的库打包拷贝到目标平台即可。

     

    展开全文
  • FFmpeg

    千次阅读 2019-04-18 21:51:51
    FFmpeg 处理音视频开源框架 C/C++编写 非常优秀的多媒体框架 解码,编码,转码,复用,解复用,过滤音视频数据 音视频的广泛应用 直播类:音视频会议,教育直播,娱乐/游戏直播等 短视频:抖音,快手,...
  • ffmpeg移植

    2021-08-27 11:55:35
    交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux 目标板:工控M6Y2C系列(cortex A7) 具体步骤: 一、安装 具体需要什么版本的可以去ffmpeg官网自行下载,我这里采用的是ffmpeg4.3.2版本的. ...
  • 有关编译器环境的信息,请参见Wiki,那里还提供了有关如何编译自己的工具的示例。 随附的工具和库 这些库的FFmpeg(共享或静态)(都是可选的,但除非另有说明,否则默认情况下进行编译): 轻巧的身材: amd amf...
  • Android FFMpeg(一)——编译FFmpeg

    千次阅读 2016-12-05 23:04:24
    学习FFMpeg,推荐雷神的博客。天妒英才,为雷神叹息。第一步 下载FFmpeg(F F m peg)。 第二步 解压FFmpeg。 第三步 windows安装MinGW和Msys。也许还要yasm,名字改为yasm.exe放到C:\WINDOWS\system32中。Linux下...
  • ffmpeg

    2013-03-09 15:39:18
    ffmpeg开发指南(使用 libavformat 和 libavcodec) Ffmpeg 中的Libavformat 和 libavcodec库是访问大多数视频文件格式的一个很好的方法。不幸的是,在开发您自己的程序时,这套库基本上没有提供什么实际的文档...
  • Ubuntu编译ffmpeg4.1.3

    2020-06-21 22:37:52
    准备 平台:64位 Ubuntu 16 源码: ffmpeg-4.1.3.tar.bz2 (https://ffmpeg.org/releases/) ...注意:源码与交叉编译器需要配套,否者会编译失败。这里选的版本是通过编译的版本。 解压文件 创建 ffmpeg 目录 ..
  • ffmpeg 编译

    2021-08-23 22:41:06
    由windows 10编译ffmpeg原材料编译环境关键命令跑起来吧结束总结 感觉视频处理势头正劲,所以想了解一下全球视频处理开发者关注的ffmpeg能否顺利编译通过,并发挥出应有的高水平。完事开头难,咱的开头就是把源代码...
  • 由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一
  • I . 导入 z 库 ( FFMPEG 动态库 与 静态库区别 ) II . FFMPEG 库引入顺序 III . Android Studio 中 FFMPEG 静态库引入完整 CMakeList.txt 构建脚本
  • FFmpeg学习之八(FFmpeg源码编译)Mac下 FFmpeg源码编译window下 FFmpeg源码编译linux下 FFmpeg源码编译 Mac下 FFmpeg源码编译 window下 FFmpeg源码编译 linux下 FFmpeg源码编译 ...
  • ffmpeg安装

    2017-11-15 16:02:33
    大致内容是用ffmpeg网指定的服务器上推流,先记一下,以后再完善 yasm 安装 (汇编编译器) tar zxvf yasm-1.2.0.tar.gz cd yasm-1.2.0/ cat INSTALL ./configure --prefix=/usr/local/yasm make make ...
  • ubuntu ffmpeg

    2019-10-08 15:25:10
    下载ffmpeg ffmpeg-4.2.1 用android studio创建一个程序,再下载ndk 修改configure 由于编译生成动态库文件名的版本号在so的后面,android平台不能识别这样的动态库,因此需要修改一下 打开找到build settings...
  • FFmpeg 安装

    2017-12-06 21:19:16
    Linux下 FFmpeg 安装
  • 安装ffmpeg

    2020-10-03 18:42:11
    git clone https://git.ffmpeg.org/ffmpeg.git ./configure --prefix=/usr/local/ffmpeg ubuntu 编译FFmgeg执行./configure 时会报此错误。...需要安装yasm的汇编编译器 sudo apt-get install yasm make make install
  • FFmpeg笔记

    2019-07-27 23:42:34
    文章目录第四部分 FFmpegffmpeg的组成结构环境部署shared版exe程序的使用常见使用命令参数dev版ffmpeg播放视频的流程常用API(根据原官方文档做了个性化翻译,具体以官方文档为准)av_register_all 注册所有组件打开...
  • 该原创文章首发于微信公众号:字节流动为什么要学 FFmpeg 开发FFmpeg 是一款知名的开源音视频处理软件,它提供了丰富而友好的接口支持开发者进行二次开发。FFmpeg 读作 “ef ef em peg” ,其中的 “FF” 指的是 ...
  • ffmpeg ubuntu 编译

    2016-06-23 16:36:01
    (1)到...git clone git://source.ffmpeg.org/ffmpeg.git ffmpegyasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,所以需要先安装。到http://yasm.tortall.net/Download.html下载Sour
  • ffmpeg ffmpeg-php扩展

    千次阅读 2019-03-07 14:10:39
    安装 ffmpeg ffmpeg的下载链接 http://ffmpeg.org/download.html 解压安装包 tar -jxvf ffmpeg-x.x.tar.bz2 到这里就报错了 报错:file: file:///etc/yum.repos.d/dag.repo, line: 1 参考...
  • 1为什么要学习FFmpeg开发FFmpeg 是一款知名的开源音视频处理软件,它提供了丰富而友好的接口支持开发者进行二次开发。FFmpeg 读作 “ef ef em peg” ,其中的 “FF” 指的是 “Fast Forward”,“mpeg” 则是 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,449
精华内容 2,579
关键字:

ffmpeg编译器