ffmpeg+x264 Windows MSVC 静态编译

Posted Little彭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg+x264 Windows MSVC 静态编译相关的知识,希望对你有一定的参考价值。

尝试ubuntu和win下mingw编译版本,但都在Vistual Studio链接时因为依赖 libgcc.a, libmingw.a, libmingwex.a 会与mscrt 有符号冲突。

最后都是用msvc 来编译就搞定了

 

1. x264

按照官方文档说明:

  The following example command will configure libx264:

CC=cl ./configure --enable-static --prefix=<PREFIX> --extra-cflags="-DNO_PREFIX"
make

The NO_PREFIX flag may be necessary to make linkable libraries.

执行方式:

 - 要求VS 2013 SP2+

 - 先执行 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\VsDevCmd.bat

 - 在切到bash, [CC=cl] 使用msvc 的编译器, 其他和在linux/mac 编译完全一样

  生成 libx264.lib  

 

2. ffmpeg

 使用的是最新3.0 版本,已经支持使用msvc 工具链的编译

 按照官方文档搭好环境,就能很顺利编译通过,不过生成的不是.lib而是.a,Virtual Studio 也是支持的

#!/bin/bash

set -x

prefix=$(pwd)/win32/install
export PKG_CONFIG_PATH="$prefix/lib/pkgconfig" 

mkdir -p win32/install

cd ffmpeg
if [[ ! -f config.mak ]]; then
  ./configure       --toolchain=msvc       --enable-gpl       --enable-nonfree       --enable-version3       --arch=x86       --target-os=mingw32       --pkg-config=pkg-config       --disable-stripping       --disable-everything       --enable-static       --disable-shared       --disable-doc       --enable-avresample       --enable-demuxer=rtsp       --enable-muxer=rtsp       --disable-ffplay       --disable-ffserver       --enable-ffmpeg       --disable-ffprobe       --enable-libx264       --enable-encoder=libx264       --enable-decoder=h264       --enable-protocol=rtp       --enable-hwaccels       --enable-zlib       --disable-devices       --disable-avdevice       --extra-cflags="-I$prefix/include -MT"        --extra-ldflags=-L$prefix/lib       --prefix=$prefix/ffmpeg
fi
make install

 

https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC

以上是关于ffmpeg+x264 Windows MSVC 静态编译的主要内容,如果未能解决你的问题,请参考以下文章

linux 编译ffmpeg 支持x264, x265

ffmpeg+x264推送high422 10bit码流

Windows系统下编译FFmpeg for Android(支持x264)

FFmpeg中的libx264编码流程

ffmpeg 3.2.4 + libx264 windows 编译总结

centos编译ffmpeg x264