zoukankan      html  css  js  c++  java
  • 编译:ffmpeg,精简ffmpeg.exe

    网上下载的各种 ffmpeg.exe ,最少都有11M+

    而我只需要处理 mp4 和 mp3,在网上搜索了一下精简ffmpeg的文章,折腾一天,也没有完全搞定,但多少有些收获,记录一下:

    从 www.ffmpeg.org 下载 ffmpeg 最新源码代码。

    libx264, libxvid, libmp3lame, libvo-aacenc 都需要下载源代码进行编译,我将编译后都保存到 /msys/static/

    /c/open_source/lame-3.99.5 (下载地址:http://lame.sourceforge.net)

    下载http://jaist.dl.sourceforge.net/project/nasm/Win32 binaries/2.07/nasm-2.07-installer.exe,

      然后改名为nasm.exe然后复制到/msys/bin目录下

    configure --disable-shared --enable-static --prefix=/static

    /c/open_source/x264   (下载地址:http://www.videolan.org/developers/x264.html)

    configure --enable-static [我没加这个,也不知道要不要加:--enable-win32thread] --prefix=/static

    /c/open_source/xvidcore-1.3.3/build/generic  (下载地址: http://downloads.xvid.org/downloads/xvidcore-1.3.3.tar.gz )

    configure --enable-static --prefix=/static

    (我编译ffmpeg时,没使用 xvid)

    /c/open_source/vo-aacenc-0.1.3 (下载地址:http://sourceforge.net/projects/opencore-amr/files/vo-aacenc/) (看别人都使用这个)

    configure --disable-shared --enable-static --prefix=/static

    在编译ffmpeg前, 通过命令:configure --help,可查看可配置的参数

    通过命令: configure --list-decoders,显示可用的解码器列表

    通过命令: configure --list-encoders,显示可用的编码器列表

    我目前只需要解编码mp3, 需要使用 mjpeg, 和 h264等。

    经过两天的不断测试和失败,终于获取一个较小的ffmpeg.exe (8.54M)

    精简思路:先禁用所有解码器(--disable-encoders)和编码器(--disable-decoders),然后再开启需要的解码器和编码器。

    命令:

    configure --enable-static --disable-shared --enable-version3 --enable-gpl --enable-memalign-hack --disable-w32threads  --disable-encoders --enable-encoder=aac --enable-encoder=libmp3lame --enable-encoder=libvo_aacenc --enable-encoder=libx264   --enable-encoder=y41p --enable-encoder=yuv4 --disable-decoders --enable-decoder=aac --enable-decoder=aac_latm --enable-decoder=mp3adu --enable-decoder=mp3adufloat --enable-decoder=mp3float --enable-decoder=mp3on4 --enable-decoder=mp3on4float --enable-decoder=mjpeg --enable-decoder=y41p --enable-decoder=mp3 --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --disable-doc --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --extra-cflags=-I/static/include --extra-ldflags=-L/static/lib --prefix=/local/ffmpeg-sdk

    这里的 --enable-encoder=libx264 和 --enable-libx264 也就代替了(--enable-encoder=mpeg4)。

    之前测试过多次,如果使用--enable-encoder=mpeg4,生成的mp4文件很大,并且画质很差)

    如果加上参数: --enable-small, 生成的ffmpeg.exe 会缩小1.5M左右,这个参数是优化压缩文件,有可能会降低性能)

    编译后,使用 ffmpeg.exe 时,经常提示:

    Use -pix_fmt yuv420p for compatibility with outdated media players.(使用-pix_fmt YUV420P与过时的媒体播放器兼容。)

    测试时发现,如果输出的视频尺寸:800 x 800, 输出后的视频文件双击打开,看不到图像,一片黑。

    我试着加上 -pix_fmt yuv420p, 再输出 800 x 800的视频,就能正常看到图像了。

    我以前使用过别人在2011年左右编译的ffmpeg.exe,不会提示这样的信息。

    使用 ffmpeg.exe时,还提示:

    [mjpeg @ 0172afc0] Warning: not compiled with thread support, using thread emulation(警告:不支持线程编译,使用线程模拟)

    [mp3 @ 017632e0] Warning: not compiled with thread support, using thread emulation

    我使用以前别人编译的ffmpeg,也不会出现这样的提示。

    ffmpeg 编译的时候, make 一次,花费了20多分钟

    ---------------------------------------------------------------------------------------------

    ffmpeg -codecs 查询编解码配置:

    第一个D表示Decoder,该格式能够解码;

    E表示Encoder,该格式可以编码。

    DEA D  mp2             MP2 (MPEG audio layer 2)
    D A D  mp2float        MP2 (MPEG audio layer 2)
    D A D  mp3             MP3 (MPEG audio layer 3)

    上面的 DEA D  mp2 表示: mp2支持编码和解码。

    D A D  mp3 表示: mp3只支持解码。

    ---------------------------------------------------------------------------------------------

    相关的文章:

    windows下使用MinGW+msys编译ffmpeg   http://www.cnblogs.com/zjoch/archive/2013/05/14/3077953.html

    ffmpeg的编译大全  http://www.cnblogs.com/MaxIE/archive/2007/02/03/638863.html

    ffmpeg的精简 http://blog.csdn.net/hevc_cjl/article/details/8680933

    ffmpeg编译(一) http://blog.csdn.net/jxfengzi/article/details/7365300

    ffmpeg ./configure参数说明  http://blog.163.com/cgq_i/blog/static/728779232011643431105/

    2014-07-31

  • 相关阅读:
    联想 Vibe Shot(Z90-3) 免recovery 获取ROOT权限 救砖 VIBEUI V3.1_1625
    联想 Z5S(L78071)免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 10.5.370
    联想 Z5(L78011) 免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 10.5.254
    联想 S5 Pro(L78041)免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 5.0.123
    第二阶段 冲刺八
    第二阶段 冲刺七
    第二阶段 冲刺六
    第二阶段 冲刺五
    代码大全阅读笔记03
    学习进度十二
  • 原文地址:https://www.cnblogs.com/personnel/p/4585037.html
Copyright © 2011-2022 走看看