1 Star 5 Fork 0

wexiangis / ffmpeg5-build

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
win_x64.mk 21.40 KB
一键复制 编辑 原始数据 按行查看 历史
wexiangis 提交于 2024-03-21 09:52 . 除ios&mac外默认开启h265
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
include pkg/pkg.mk
# 基础路径
ROOT = $(shell pwd)
LIBS_PATH = $(ROOT)/libs
PKG_PATH = $(ROOT)/pkg
INSTALL_PATH = $(ROOT)/install_x64
# 默认编译器配置
HOST ?= x86_64-w64-mingw32
GCC = $(CROSS)gcc
GXX = $(CROSS)g++
LD = $(CROSS)ld
AR = $(CROSS)ar
AS = $(CROSS)as
NM = $(CROSS)nm
RANLIB = $(CROSS)ranlib
STRIP = $(CROSS)strip
OBJDUMP = $(CROSS)objdump
EXT_INCS += -I$(LIBS_PATH)/include
EXT_LIBS += -L$(LIBS_PATH)/lib
EXT_RCFLAGS +=
#EXT_CFLAGS += -static-libgcc
# 选择默认使用h264库类型: x264 openh264
DEFAULT_H264 = x264
# 启用 libx265 (为空表示不启用)
DEFAULT_H265 = x265
# ---------- 基本方法 ----------
# 注意依赖顺序
base: zlib png freetype openssl lame vpx $(DEFAULT_H264) $(DEFAULT_H265) rtmp vo-amrwbenc iconv xml2 expat fontconfig opus
@echo "---------- make $@ done ----------"
curl_all: zlib curl
@echo "---------- make $@ done ----------"
clean:
@rm -rf $(LIBS_PATH)/*
distclean: clean
@rm -rf $(INSTALL_PATH)*
# ---------- 编译配置 ----------
ifneq ($(DEFAULT_H264),)
EXT_FFMPEG_PARAMS += --enable-lib$(DEFAULT_H264)
EXT_FFMPEG_PARAMS += --enable-encoder=lib$(DEFAULT_H264)
EXT_FFMPEG_PARAMS += --enable-decoder=h264
EXT_FFMPEG_PARAMS += --enable-muxer=h264
EXT_FFMPEG_PARAMS += --enable-demuxer=h264
EXT_FFMPEG_PARAMS += --enable-parser=h264
EXT_FFMPEG_PARAMS += --enable-bsf=h264_mp4toannexb
endif
ifneq ($(DEFAULT_H265),)
EXT_FFMPEG_PARAMS += --enable-lib$(DEFAULT_H265)
EXT_FFMPEG_PARAMS += --enable-encoder=lib$(DEFAULT_H265)
EXT_FFMPEG_PARAMS += --enable-decoder=hevc
EXT_FFMPEG_PARAMS += --enable-muxer=hevc
EXT_FFMPEG_PARAMS += --enable-demuxer=hevc
EXT_FFMPEG_PARAMS += --enable-parser=hevc
EXT_FFMPEG_PARAMS += --enable-bsf=hevc_mp4toannexb
endif
ffmpeg5:
$(ffmpeg-dpkg) $(PKG_PATH)/$(ffmpeg-name).$(ffmpeg-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(ffmpeg-name) && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
mkdir -p $(INSTALL_PATH) && \
mkdir -p $(LIBS_PATH)/lib/tmp && \
echo "" >> $(LIBS_PATH)/lib/empty.dll.a && \
mv $(LIBS_PATH)/lib/*.dll.a $(LIBS_PATH)/lib/tmp/ && \
./configure \
--prefix=$(INSTALL_PATH) \
--extra-cflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
--extra-ldflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
--pkg-config-flags="--static" \
--pkg-config=pkg-config \
--pkgconfigdir=$(LIBS_PATH)/lib/pkgconfig \
--disable-autodetect \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
--disable-bsfs \
--disable-debug \
--disable-devices \
--disable-encoders \
--disable-decoders \
--disable-filters \
--disable-muxers \
--disable-demuxers \
--disable-parsers \
--disable-ffprobe \
--disable-ffplay \
--enable-ffmpeg \
--enable-runtime-cpudetect \
--enable-shared \
--enable-stripping \
--enable-gpl \
--enable-pic \
--enable-hwaccels \
--enable-small \
--enable-version3 \
--enable-nonfree \
--enable-avfilter \
--enable-bsf=aac_adtstoasc \
--enable-librtmp \
--enable-libvo_amrwbenc \
--enable-libfreetype \
--enable-libfontconfig \
--enable-libopus \
--enable-openssl \
--enable-zlib \
--enable-libvpx \
--enable-libmp3lame \
$(EXT_FFMPEG_PARAMS) \
--enable-encoder=aac \
--enable-encoder=wmv2 \
--enable-encoder=wmav2 \
--enable-encoder=mjpeg \
--enable-encoder=pcm_alaw \
--enable-encoder=pcm_mulaw \
--enable-encoder=pcm_s16le \
--enable-encoder=png \
--enable-encoder=adpcm_swf \
--enable-encoder=libvo_amrwbenc \
--enable-encoder=libvpx_vp8 \
--enable-encoder=libmp3lame \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s16le \
--enable-decoder=aac \
--enable-decoder=flv \
--enable-decoder=mp3 \
--enable-decoder=wmv3 \
--enable-decoder=wmav2 \
--enable-decoder=mjpeg \
--enable-decoder=gif \
--enable-decoder=amrwb \
--enable-decoder=adpcm_swf \
--enable-decoder=png \
--enable-decoder=g729 \
--enable-decoder=libvpx_vp8 \
--enable-muxer=mov \
--enable-muxer=mp4 \
--enable-muxer=asf \
--enable-muxer=flv \
--enable-muxer=m4v \
--enable-muxer=mjpeg \
--enable-muxer=amr \
--enable-muxer=image2 \
--enable-muxer=mp3 \
--enable-muxer=wav \
--enable-muxer=pcm_mulaw \
--enable-muxer=pcm_alaw \
--enable-muxer=mxf \
--enable-muxer=vc1 \
--enable-muxer=dnxhd \
--enable-muxer=webm \
--enable-muxer=rtsp \
--enable-muxer=opus \
--enable-demuxer=amr \
--enable-demuxer=asf \
--enable-demuxer=mp3 \
--enable-demuxer=mov \
--enable-demuxer=rtsp \
--enable-demuxer=aac \
--enable-demuxer=flv \
--enable-demuxer=live_flv \
--enable-demuxer=wav \
--enable-demuxer=gif \
--enable-demuxer=mjpeg \
--enable-demuxer=mpjpeg \
--enable-demuxer=image_bmp_pipe \
--enable-demuxer=image_jpeg_pipe \
--enable-demuxer=image_jpegls_pipe \
--enable-demuxer=image_png_pipe \
--enable-demuxer=webm_dash_manifest \
--enable-demuxer=dnxhd \
--enable-demuxer=matroska,webm \
--enable-demuxer=vc1 \
--enable-demuxer=pcm_mulaw \
--enable-demuxer=pcm_alaw \
--enable-demuxer=g729 \
--enable-parser=aac \
--enable-parser=mpeg4video \
--enable-parser=mjpeg \
--enable-parser=png \
--enable-parser=bmp \
--enable-parser=vp8 \
--enable-filter=chromakey \
--enable-filter=overlay \
--enable-filter=scale \
--enable-filter=movie \
--enable-filter=colorchannelmixer \
--enable-filter=drawtext \
--enable-filter=eq \
--enable-filter=format \
--enable-filter=amix \
--enable-filter=aresample && \
sed -i 's%WINDRES=windres%WINDRES=windres $(EXT_RCFLAGS)%' ./ffbuild/config.mak && \
sed -i 's%$$(FULLNAME)-$$(LIBVERSION)%$$(FULLNAME)%g' ./ffbuild/config.mak && \
sed -i 's%$$(FULLNAME)-$$(LIBMAJOR)%$$(FULLNAME)%g' ./ffbuild/config.mak && \
sed -i 's%av_log(c, AV_LOG_WARNING%/*av_log(c, AV_LOG_WARNING%' ./libswscale/yuv2rgb.c && \
sed -i 's%av_get_pix_fmt_name(c->dstFormat));%av_get_pix_fmt_name(c->dstFormat));*/%' ./libswscale/yuv2rgb.c && \
make -j4 && \
mv $(LIBS_PATH)/lib/tmp/*.dll.a $(LIBS_PATH)/lib/ && \
make install && \
cp /mingw64/bin/libgcc_s_seh-1.dll $(INSTALL_PATH)/bin/ && \
cp /mingw64/bin/libwinpthread-1.dll $(INSTALL_PATH)/bin/ && \
cd - && \
rm -rf $(LIBS_PATH)/$(ffmpeg-name)
ffmpeg3:
$(ffmpeg3-dpkg) $(PKG_PATH)/$(ffmpeg3-name).$(ffmpeg3-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(ffmpeg3-name) && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
mkdir -p $(INSTALL_PATH) && \
mkdir -p $(LIBS_PATH)/lib/tmp && \
echo "" >> $(LIBS_PATH)/lib/empty.dll.a && \
mv $(LIBS_PATH)/lib/*.dll.a $(LIBS_PATH)/lib/tmp/ && \
./configure \
--prefix=$(INSTALL_PATH) \
--extra-cflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
--extra-ldflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
--pkg-config-flags="--static" \
--pkg-config=pkg-config \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
--disable-iconv \
--disable-bsfs \
--disable-debug \
--disable-devices \
--disable-encoders \
--disable-decoders \
--disable-filters \
--disable-muxers \
--disable-demuxers \
--disable-parsers \
--disable-ffprobe \
--disable-ffplay \
--enable-ffmpeg \
--enable-runtime-cpudetect \
--enable-shared \
--enable-static \
--enable-stripping \
--enable-gpl \
--enable-pic \
--enable-hwaccels \
--enable-small \
--enable-version3 \
--enable-nonfree \
--enable-avfilter \
--enable-bsf=aac_adtstoasc \
--enable-libvo_amrwbenc \
--enable-libfreetype \
--enable-libfontconfig \
--enable-libopus \
--enable-openssl \
--enable-zlib \
--enable-libvpx \
--enable-libmp3lame \
$(EXT_FFMPEG_PARAMS) \
--enable-encoder=aac \
--enable-encoder=wmv2 \
--enable-encoder=wmav2 \
--enable-encoder=mjpeg \
--enable-encoder=pcm_alaw \
--enable-encoder=pcm_mulaw \
--enable-encoder=pcm_s16le \
--enable-encoder=png \
--enable-encoder=adpcm_swf \
--enable-encoder=libvo_amrwbenc \
--enable-encoder=libvpx_vp8 \
--enable-encoder=libmp3lame \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s16le \
--enable-decoder=aac \
--enable-decoder=flv \
--enable-decoder=mp3 \
--enable-decoder=wmv3 \
--enable-decoder=wmav2 \
--enable-decoder=mjpeg \
--enable-decoder=gif \
--enable-decoder=amrwb \
--enable-decoder=adpcm_swf \
--enable-decoder=png \
--enable-decoder=g729 \
--enable-decoder=libvpx_vp8 \
--enable-muxer=mov \
--enable-muxer=mp4 \
--enable-muxer=asf \
--enable-muxer=flv \
--enable-muxer=m4v \
--enable-muxer=mjpeg \
--enable-muxer=amr \
--enable-muxer=image2 \
--enable-muxer=mp3 \
--enable-muxer=wav \
--enable-muxer=pcm_mulaw \
--enable-muxer=pcm_alaw \
--enable-muxer=mxf \
--enable-muxer=vc1 \
--enable-muxer=dnxhd \
--enable-muxer=webm \
--enable-muxer=rtsp \
--enable-muxer=opus \
--enable-demuxer=amr \
--enable-demuxer=asf \
--enable-demuxer=mp3 \
--enable-demuxer=mov \
--enable-demuxer=rtsp \
--enable-demuxer=aac \
--enable-demuxer=flv \
--enable-demuxer=live_flv \
--enable-demuxer=wav \
--enable-demuxer=gif \
--enable-demuxer=mjpeg \
--enable-demuxer=mpjpeg \
--enable-demuxer=image_bmp_pipe \
--enable-demuxer=image_jpeg_pipe \
--enable-demuxer=image_jpegls_pipe \
--enable-demuxer=image_png_pipe \
--enable-demuxer=dnxhd \
--enable-demuxer=matroska,webm \
--enable-demuxer=vc1 \
--enable-demuxer=pcm_mulaw \
--enable-demuxer=pcm_alaw \
--enable-demuxer=g729 \
--enable-parser=aac \
--enable-parser=mpeg4video \
--enable-parser=mjpeg \
--enable-parser=png \
--enable-parser=bmp \
--enable-parser=vp8 \
--enable-filter=chromakey \
--enable-filter=overlay \
--enable-filter=scale \
--enable-filter=movie \
--enable-filter=colorchannelmixer \
--enable-filter=drawtext \
--enable-filter=eq \
--enable-filter=amix \
--enable-filter=aresample && \
sed -i 's%WINDRES=windres%WINDRES=windres $(EXT_RCFLAGS)%' ./config.mak && \
sed -i 's%feclearexcept(%//feclearexcept(%' ./libavfilter/vf_drawtext.c && \
sed -i 's%fetestexcept(%0)){//fetestexcept(%' ./libavfilter/vf_drawtext.c && \
sed -i 's%$$(FULLNAME)-$$(LIBVERSION)%$$(FULLNAME)%g' ./config.mak && \
sed -i 's%$$(FULLNAME)-$$(LIBMAJOR)%$$(FULLNAME)%g' ./config.mak && \
sed -i 's%av_log(c, AV_LOG_WARNING%/*av_log(c, AV_LOG_WARNING%' ./libswscale/yuv2rgb.c && \
sed -i 's%av_get_pix_fmt_name(c->dstFormat));%av_get_pix_fmt_name(c->dstFormat));*/%' ./libswscale/yuv2rgb.c && \
make -j4 && \
mv $(LIBS_PATH)/lib/tmp/*.dll.a $(LIBS_PATH)/lib/ && \
make install && \
cp /mingw64/bin/libgcc_s_seh-1.dll $(INSTALL_PATH)/bin/ && \
cp /mingw64/bin/libwinpthread-1.dll $(INSTALL_PATH)/bin/ && \
cd - && \
rm -rf $(LIBS_PATH)/$(ffmpeg3-name)
opus:
$(opus-dpkg) $(PKG_PATH)/$(opus-name).$(opus-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(opus-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(opus-name)
fontconfig:
$(fontconfig-dpkg) $(PKG_PATH)/$(fontconfig-name).$(fontconfig-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(fontconfig-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
cp /mingw64/lib/libintl.a $(LIBS_PATH)/lib/ && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
./configure \
--prefix=$(LIBS_PATH) \
--with-pic \
--disable-docs \
--enable-static \
--with-libiconv-prefix=$(LIBS_PATH)/lib \
--with-libintl-prefix=$(LIBS_PATH)/lib \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
sed -i 's%Libs.private:%Libs.private: -lxml2 -lintl -liconv %' $(LIBS_PATH)/lib/pkgconfig/fontconfig.pc && \
cd - && \
rm -rf $(LIBS_PATH)/$(fontconfig-name)
expat:
$(expat-dpkg) $(PKG_PATH)/$(expat-name).$(expat-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(expat-name) && \
cp $(PKG_PATH)/config.guess ./conftools/ && \
cp $(PKG_PATH)/config.sub ./conftools/ && \
sed -i '/^#undef \x24\x32/a #endif' ./configure && \
sed -i '/^#undef \x24\x32/a void __aeabi_unwind_cpp_pr0() {}' ./configure && \
sed -i '/^#undef \x24\x32/a #ifndef __aeabi_unwind_cpp_pr0' ./configure && \
./configure \
--prefix=$(LIBS_PATH) \
--enable-static \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CXXFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(expat-name)
xml2:
$(xml2-dpkg) $(PKG_PATH)/$(xml2-name).$(xml2-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(xml2-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--with-python=no \
--with-zlib=no \
--with-lzma=no \
--with-sax1 \
--enable-static \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(xml2-name)
iconv:
$(iconv-dpkg) $(PKG_PATH)/$(iconv-name).$(iconv-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(iconv-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--enable-static \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
sed -i 's%= windres%= windres $(EXT_RCFLAGS)%' ./Makefile ./lib/Makefile ./src/Makefile ./srclib/Makefile && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(iconv-name)
vo-amrwbenc:
$(vo-amrwbenc-dpkg) $(PKG_PATH)/$(vo-amrwbenc-name).$(vo-amrwbenc-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(vo-amrwbenc-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--enable-static \
--enable-shared \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(vo-amrwbenc-name)
curl:
$(curl-dpkg) $(PKG_PATH)/$(curl-name).$(curl-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(curl-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
./configure \
--prefix=$(LIBS_PATH) \
--disable-dict \
--disable-gopher \
--disable-ldap \
--disable-ldaps \
--disable-manual \
--disable-pop3 \
--disable-smtp \
--disable-imap \
--disable-rtsp \
--disable-smb \
--disable-telnet \
--disable-verbose \
--without-libidn2 \
--without-libpsl \
--without-librtmp \
--without-libssh2 \
--with-winssl \
--with-pic \
--enable-static \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
sed -i 's%^struct pollfd%struct pollfd_bak%' ./lib/select.h && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(curl-name)
rtmp:
$(rtmp-dpkg) $(PKG_PATH)/$(rtmp-name).$(rtmp-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(rtmp-name) && \
sed -i 's%SYS=posix%SYS=mingw%' ./Makefile ./librtmp/Makefile && \
sed -i 's%prefix=/usr/local%prefix=$(LIBS_PATH)%' ./Makefile ./librtmp/Makefile && \
sed -i 's%CFLAGS=%CFLAGS=$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC %' ./Makefile ./librtmp/Makefile && \
sed -i 's%LDFLAGS=%LDFLAGS=$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC %' ./Makefile && \
sed -i '/^CFLAGS=/a LDFLAGS=$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC \' ./librtmp/Makefile && \
make -j4 && make install && \
sed -i 's%-lrtmp%-lrtmp -lws2_32 -lwinmm -lgdi32%' $(LIBS_PATH)/lib/pkgconfig/librtmp.pc && \
cd - && \
rm -rf $(LIBS_PATH)/$(rtmp-name)
x264:
$(x264-dpkg) $(PKG_PATH)/$(x264-name).$(x264-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(x264-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--host=$(HOST) \
--disable-cli \
--enable-strip \
--enable-pic \
--enable-static \
--extra-cflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
sed -i 's%RC=windres%RC=windres $(EXT_RCFLAGS)%' ./config.mak && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(x264-name)
x265:
$(x265-dpkg) $(PKG_PATH)/$(x265-name).$(x265-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(x265-name) && \
cmake -G "MSYS Makefiles" \
-DCMAKE_INSTALL_PREFIX=$(LIBS_PATH) \
-DCMAKE_C_COMPILER=$(GCC) \
-DCMAKE_CXX_COMPILER=$(GXX) \
-DCMAKE_C_FLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
-DENABLE_SHARED:bool=off \
./source && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(x265-name)
openh264-params += ARCH=x86_64
openh264-params += PREFIX=$(LIBS_PATH)
openh264-params += ASM=yasm
openh264:
$(openh264-dpkg) $(PKG_PATH)/$(openh264-name).$(openh264-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(openh264-name) && \
make -j4 $(openh264-params) install && \
cd - && \
rm -rf $(LIBS_PATH)/$(openh264-name)
vpx:
$(vpx-dpkg) $(PKG_PATH)/$(vpx-name).$(vpx-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(vpx-name) && \
./configure \
--prefix=$(LIBS_PATH) \
--disable-webm-io \
--disable-libyuv \
--disable-runtime_cpu_detect \
--disable-tools \
--disable-examples \
--disable-debug \
--disable-debug-libs \
--disable-install-docs \
--disable-unit-tests \
--disable-vp9 \
--enable-static \
--enable-pic \
--enable-install-srcs \
--enable-install-libs \
--enable-install-bins && \
make -j4 && make install && \
cp /mingw64/lib/libwinpthread.a $(LIBS_PATH)/lib/ && \
sed -i 's%-lpthread%-lwinpthread%' $(LIBS_PATH)/lib/pkgconfig/vpx.pc && \
cd - && \
rm -rf $(LIBS_PATH)/$(vpx-name)
lame:
$(lame-dpkg) $(PKG_PATH)/$(lame-name).$(lame-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(lame-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--build=mingw64 \
--disable-frontend \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(lame-name)
openssl-name = openssl-1.0.2e
openssl-tail = zip -d
openssl-dpkg = unzip
openssl:
$(openssl-dpkg) $(PKG_PATH)/$(openssl-name).$(openssl-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(openssl-name) && \
./Configure mingw64 shared no-ssl2 no-ssl3 --prefix=$(LIBS_PATH) && \
sed -i 's%CFLAG= %CFLAG= -fPIC %' ./Makefile && \
sed -i 's%windres -o%windres $(EXT_RCFLAGS) -o%' ./Makefile.shared && \
make depend && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(openssl-name)
freetype:
$(freetype-dpkg) $(PKG_PATH)/$(freetype-name).$(freetype-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(freetype-name) && \
cp $(PKG_PATH)/config.guess ./builds/unix/ && \
cp $(PKG_PATH)/config.sub ./builds/unix/ && \
./configure \
--prefix=$(LIBS_PATH) \
--enable-static \
--with-pic \
--with-harfbuzz=no \
--with-bzip2=no \
--with-brotli=no \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
sed -i 's%$(RC) -o%$(RC) $(EXT_RCFLAGS) -o%' ./builds/freetype.mk && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(freetype-name)
jpeg:
$(jpeg-dpkg) $(PKG_PATH)/$(jpeg-name).$(jpeg-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(jpeg-name2) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--target=$(ARCH) \
--host=$(HOST) \
--enable-static \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(jpeg-name2)
png:
$(png-dpkg) $(PKG_PATH)/$(png-name).$(png-tail) $(LIBS_PATH) && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
cd $(LIBS_PATH)/$(png-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(LIBS_PATH) \
--enable-static \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(png-name)
zlib:
$(zlib-dpkg) $(PKG_PATH)/$(zlib-name).$(zlib-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(zlib-name) && \
cp ./win32/Makefile.gcc ./ && \
sed -i 's%/usr/local%$(LIBS_PATH)%' ./Makefile.gcc && \
sed -i 's%RCFLAGS =%RCFLAGS = $(EXT_RCFLAGS) %' ./Makefile.gcc && \
make -f Makefile.gcc install INCLUDE_PATH=$(LIBS_PATH)/include LIBRARY_PATH=$(LIBS_PATH)/lib BINARY_PATH=$(LIBS_PATH)/bin && \
cd - && \
rm -rf $(LIBS_PATH)/$(zlib-name)
1
https://gitee.com/wexiangis/ffmpeg5-build.git
git@gitee.com:wexiangis/ffmpeg5-build.git
wexiangis
ffmpeg5-build
ffmpeg5-build
master

搜索帮助