1 Star 5 Fork 0

wexiangis / ffmpeg5-build

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
macos_arm64.mk 24.62 KB
一键复制 编辑 原始数据 按行查看 历史
wexiangis 提交于 2024-03-21 09:52 . 除ios&mac外默认开启h265
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723
include pkg/pkg.mk
# 基础路径
ROOT = $(shell pwd)
LIBS_PATH = $(ROOT)/libs
PKG_PATH = $(ROOT)/pkg
INSTALL_PATH = $(ROOT)/install
# 平台选择(可以通过传参 make PLAT=XXX 来指定
# xxx 从 platform文 件夹内的mk文件名选取)
PLAT ?= macos-arm64
include $(ROOT)/platform/$(PLAT).mk
# 默认编译器配置
ARCH ?= $(shell uname -m)
HOST ?=
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
# 选择默认使用h264库类型: x264 openh264 (为空表示不启用)
DEFAULT_H264 = x264
# 启用 libx265 (为空表示不启用)
DEFAULT_H265 = #x265
# ---------- 基本方法 ----------
# 注意依赖顺序
base: zlib png freetype openssl lame vpx $(DEFAULT_H264) $(DEFAULT_H265) rtmp vo-amrwbenc xml2 fontconfig opus
@echo "---------- make $@ done ----------"
base_else: uuid bcg729 yuv curl
@echo "---------- make $@ complete ----------"
install: install_static install_shared
clean:
@rm -rf $(LIBS_PATH)/* $(ROOT)/test/out*
distclean: clean
@rm -rf $(INSTALL_PATH)*
help:
@echo "Help:" && \
echo " make x264 ## build single lib" && \
echo " make all ## build all libs" && \
echo " make install ## install to: $(INSTALL_PATH)" && \
echo "" && \
echo "Check Current Config:" && \
echo " ARCH: $(ARCH)" && \
echo " HOST: $(HOST)" && \
echo " CROSS: $(CROSS)" && \
echo " GCC: $(GCC)" && \
echo " GXX: $(GXX)" && \
echo " AR: $(AR)" && \
echo " AS: $(AS)" && \
echo " NM: $(NM)" && \
echo " RANLIB: $(RANLIB)" && \
echo " STRIP: $(STRIP)" && \
echo " OBJDUMP: $(OBJDUMP)" && \
echo " LD: $(LD)" && \
echo " EXT_CFLAGS: $(EXT_CFLAGS)" && \
echo " EXT_INCS: $(EXT_INCS)" && \
echo " EXT_LIBS: $(EXT_LIBS)" && \
echo ""
install_static:
@mkdir -p $(INSTALL_PATH)_$(PLAT)_static/lib && \
cp -r $(LIBS_PATH)/include $(INSTALL_PATH)_$(PLAT)_static/ && \
cp -r $(LIBS_PATH)/lib/*.a $(INSTALL_PATH)_$(PLAT)_static/lib/ && \
unlink $(INSTALL_PATH)_$(PLAT)_static/lib/libpng.a
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavcodec.a reverse.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavcodec.a log2_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavfilter.a log2_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a log2_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libswscale.a log2_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libswresample.a log2_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a golomb_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a jpegtables.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a ac3_channel_layout_tab.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a mpeg4audio_sample_rates.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a mpegaudiotabs.o
ar -d $(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a to_upper4.o
# 打包全部.a文件到 libffmpeg.dylib
install_shared: install_static
mkdir -p $(INSTALL_PATH)_$(PLAT)_shared/lib && \
cp -r $(LIBS_PATH)/include $(INSTALL_PATH)_$(PLAT)_shared/ && \
$(GCC) -all_load -fPIC -dynamiclib -o $(INSTALL_PATH)_$(PLAT)_shared/lib/libffmpeg.dylib \
-current_version 5.1.3 -compatibility_version 1.0.0 \
$(INSTALL_PATH)_$(PLAT)_static/lib/libavcodec.a $(INSTALL_PATH)_$(PLAT)_static/lib/libavfilter.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libavformat.a $(INSTALL_PATH)_$(PLAT)_static/lib/libavdevice.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libavutil.a $(INSTALL_PATH)_$(PLAT)_static/lib/libswresample.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libswscale.a $(INSTALL_PATH)_$(PLAT)_static/lib/libpostproc.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libfontconfig.a $(INSTALL_PATH)_$(PLAT)_static/lib/libxml2.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libvo-amrwbenc.a $(INSTALL_PATH)_$(PLAT)_static/lib/lib$(DEFAULT_H264).a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libvpx.a $(INSTALL_PATH)_$(PLAT)_static/lib/libmp3lame.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libssl.a $(INSTALL_PATH)_$(PLAT)_static/lib/libcrypto.a \
$(INSTALL_PATH)_$(PLAT)_static/lib/libfreetype.a $(INSTALL_PATH)_$(PLAT)_static/lib/libpng12.a \
-lz -lpthread -lm -static $(EXT_CFLAGS) && \
cp $(LIBS_PATH)/lib/libavcodec.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libavdevice.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libavfilter.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libavformat.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libavutil.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libswresample.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libswscale.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/ && \
cp $(LIBS_PATH)/lib/libpostproc.dylib $(INSTALL_PATH)_$(PLAT)_shared/lib/
# ---------- 编译配置 ----------
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 $(LIBS_PATH)/lib/tmp && \
echo "" >> $(LIBS_PATH)/lib/libempty.dylib && \
mv $(LIBS_PATH)/lib/lib*.dylib $(LIBS_PATH)/lib/tmp/ && \
./configure \
--prefix=$(LIBS_PATH) \
--arch=$(ARCH) \
--cross-prefix=$(CROSS) \
--cc=$(GCC) \
--cxx=$(GXX) \
--strip=$(STRIP) \
--extra-cflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
--extra-ldflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
$(EXT_FFMPEG_PARAMS) \
--pkg-config=pkg-config \
--pkg-config-flags="--static" \
--pkgconfigdir=$(LIBS_PATH)/lib/pkgconfig \
--disable-autodetect \
--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-pthreads \
--enable-small \
--enable-version3 \
--enable-nonfree \
--enable-avfilter \
--enable-bsf=aac_adtstoasc \
--enable-libvo_amrwbenc \
--enable-libfreetype \
--enable-libfontconfig \
--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%ip_mreq_source%my_mreq_source%' ./libavformat/udp.c && \
sed -i '' 's%typedef struct UDPContext%struct my_mreq_source{struct in_addr imr_multiaddr; struct in_addr imr_interface; struct in_addr imr_sourceaddr;};\ntypedef struct UDPContext%' ./libavformat/udp.c && \
sed -i '' 's%} AVStream;%} AVStream;\nint64_t av_stream_get_first_dts(const AVStream *st);%' ./libavformat/avformat.h && \
echo "int64_t av_stream_get_first_dts(const AVStream *st) { return cffstream(st)->first_dts; }" >> ./libavformat/utils.c && \
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/* $(LIBS_PATH)/lib/ && \
make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(ffmpeg-name)
alsa:
$(alsa-dpkg) $(PKG_PATH)/$(alsa-name).$(alsa-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(alsa-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./configure \
--prefix=$(ROOT)/libs \
--host=$(HOST) \
--enable-shared=yes \
--with-pic && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(alsa-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) \
--host=$(HOST) \
--enable-static \
--enable-shared \
--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)/$(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 ./ && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
./configure \
--prefix=$(LIBS_PATH) \
--host=$(HOST) \
--enable-libxml2 \
--with-pic \
--disable-docs \
--enable-static \
--enable-shared \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
echo "#include <ftw.h>" > ./test/mycommand.h && \
echo "static int unlink_cb(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf)" >> ./test/mycommand.h && \
echo "{int rv = remove(fpath);if (rv)perror(fpath);return rv;}" >> ./test/mycommand.h && \
echo "static int mycommand(const char* cmd)" >> ./test/mycommand.h && \
echo "{return nftw(cmd, unlink_cb, 64, FTW_DEPTH | FTW_PHYS);}" >> ./test/mycommand.h && \
sed -i '' 's%#include <stdlib.h>%#include <stdlib.h>\n#include <mycommand.h>%' ./test/test-bz106632.c && \
sed -i '' 's%system%mycommand%' ./test/test-bz106632.c && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(fontconfig-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) \
--host=$(HOST) \
--with-python=no \
--with-icnov=no \
--with-lzma=no \
--with-iconv=no \
--with-sax1 \
--enable-static \
--enable-shared \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -lm" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -lm" && \
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) \
--host=$(HOST) \
--enable-static \
--with-pic \
CC=$(GCC) \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
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) \
--host=$(HOST) \
--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)
# --without-ssl
# --with-darwinssl
# --with-secure-transport
# -mmacosx-version-min=10.11
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) \
--host=$(HOST)-apple-darwin \
--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-darwinssl \
--with-pic \
--enable-static \
--enable-shared=no \
--with-sysroot=$(SYSROOT) \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -mmacosx-version-min=10.11" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(curl-name)
ssh2:
$(ssh2-dpkg) $(PKG_PATH)/$(ssh2-name).$(ssh2-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(ssh2-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
export PKG_CONFIG_PATH=$(LIBS_PATH)/lib/pkgconfig && \
./configure \
--prefix=$(LIBS_PATH) \
--host=$(HOST) \
--enable-static \
--enable-shared=no \
--with-pic \
--with-sysroot=$(SYSROOT) \
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)/$(ssh2-name)
rtmp-pthread = -lpthread
rtmp:
$(rtmp-dpkg) $(PKG_PATH)/$(rtmp-name).$(rtmp-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(rtmp-name) && \
sed -i '' 's%prefix=/usr/local%prefix=$(LIBS_PATH)%' ./Makefile ./librtmp/Makefile && \
sed -i '' 's%CC=\x24(CROSS_COMPILE)gcc%CC=$(GCC)%' ./Makefile ./librtmp/Makefile && \
sed -i '' 's%LD=\x24(CROSS_COMPILE)ld%LD=$(LD)%' ./Makefile ./librtmp/Makefile && \
sed -i '' 's%AR=\x24(CROSS_COMPILE)ar%AR=$(AR)%' ./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 '' 's%-lpthread%$(rtmp-pthread)%' ./Makefile ./librtmp/Makefile && \
sed -i '' 's%SHARED=yes%SHARED=no%' ./Makefile ./librtmp/Makefile && \
make -j4 && make install && \
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 ./ && \
sed -i '' 's%CC="\x24{CC-\x24{cross_prefix}gcc}"%CC=$(GCC)%' ./configure && \
./configure \
--prefix=$(LIBS_PATH) \
--disable-cli \
--enable-strip \
--enable-pic \
--enable-static \
--enable-shared \
--extra-cflags="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
sed -i '' 's%STRIP=strip%STRIP=$(STRIP)%' ./config.mak && \
sed -i '' 's%gcc-ar%$(AR)%' ./config.mak && \
sed -i '' 's%gcc-ranlib%$(RANLIB)%' ./config.mak && \
sed -i '' 's%Wno-maybe-uninitialized%Wno-uninitialized%' ./config.mak && \
sed -i '' 's%^CFLAGS=%CFLAGS=$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) %' ./config.mak && \
sed -i '' 's%^LDFLAGS=%LDFLAGS=$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) %' ./config.mak && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(x264-name)
openh264-params += OS=ios
openh264-params += ARCH=$(ARCH)
openh264-params += CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC"
openh264-params += LDFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC"
openh264-params += PREFIX=$(LIBS_PATH)
openh264:
$(openh264-dpkg) $(PKG_PATH)/$(openh264-name).$(openh264-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(openh264-name) && \
make -j4 $(openh264-params) install && \
sed -i '' 's%-lopenh264%-lopenh264 -lm%' $(LIBS_PATH)/lib/pkgconfig/openh264.pc && \
cd - && \
rm -rf $(LIBS_PATH)/$(openh264-name)
vpx-target = generic-gnu
vpx-pthread = -lpthread
vpx-target = arm64-linux-gcc
vpx-name = libvpx-1.6.1
vpx-tail = tar.bz2 -C
vpx-dpkg = tar -xjf
vpx:
$(vpx-dpkg) $(PKG_PATH)/$(vpx-name).$(vpx-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(vpx-name) && \
./configure \
--prefix=$(LIBS_PATH) \
--target=$(vpx-target) \
--disable-webm-io \
--disable-libyuv \
--disable-runtime_cpu_detect \
--disable-tools \
--disable-examples \
--disable-debug \
--disable-debug-libs \
--disable-install-docs \
--disable-unit-tests \
--enable-static \
--enable-pic \
--enable-install-srcs \
--enable-install-libs \
--enable-install-bins && \
sed -i '' 's%CC=gcc%CC=$(GCC)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%CXX=g++%CXX=$(GXX)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%AR=ar%AR=$(AR)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%LD=gcc%LD=$(GCC)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%AS=as%AS=$(AS)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%STRIP=strip%STRIP=$(STRIP)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%NM=nm%NM=$(NM)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%CFLAGS =%CFLAGS = $(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%CXXFLAGS =%CXXFLAGS = $(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%LDFLAGS =%LDFLAGS = $(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%-lpthread%$(vpx-pthread)%' ./libs-$(vpx-target).mk && \
sed -i '' 's%-Wextra-semi%%' ./libs-$(vpx-target).mk && \
make -j4 && make install && \
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) \
--host=arm-apple-darwin \
--enable-static \
--disable-frontend \
--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)/$(lame-name)
openssl:
$(openssl-dpkg) $(PKG_PATH)/$(openssl-name).$(openssl-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(openssl-name) && \
./Configure \
linux-aarch64 \
-no-asm \
-no-unit-test && \
sed -i '' 's%/usr/local/ssl%$(LIBS_PATH)%' ./Makefile && \
sed -i '' 's%/usr/local%$(LIBS_PATH)%' ./Makefile && \
sed -i '' 's%CC= gcc%CC= $(GCC)%' ./Makefile && \
sed -i '' 's%AR= ar%AR= $(AR)%' ./Makefile && \
sed -i '' 's%/usr/bin/ranlib%$(RANLIB)%' ./Makefile && \
sed -i '' 's%NM= nm%NM= $(NM)%' ./Makefile && \
sed -i '' 's%MAKEDEPPROG= gcc%MAKEDEPPROG= $(GCC)%' ./Makefile && \
sed -i '' 's%CFLAG= %CFLAG= $(EXT_CFLAGS) $(EXT_INCS) -fPIC %' ./Makefile && \
make depend && \
sed -i '' 's%CFLAG= %CFLAG= $(EXT_LIBS) -fPIC %' ./Makefile && \
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/ && \
sed -i '' "s%-v 2>/dev/null%-v 2>/dev/null | echo 'GNU Make 3.81'%" ./configure && \
./configure \
--prefix=$(LIBS_PATH) \
--host=$(HOST) \
--enable-static \
--enable-shared \
--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)" \
LIBPNG_CFLAGS="-I$(LIBS_PATH)/include -lpng12" \
LIBPNG_LIBS="-L$(LIBS_PATH)/lib -lpng12" && \
make -j4 && make install && \
sed -i '' 's%-lpng12%-lpng12 -lm%' $(LIBS_PATH)/lib/pkgconfig/freetype2.pc && \
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-name = libpng-1.6.37
# png-tail = tar.gz -C
# png-dpkg = tar -xzf
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) \
--host=$(HOST) \
--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)/$(png-name)
gif:
$(gif-dpkg) $(PKG_PATH)/$(gif-name).$(gif-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(gif-name) && \
sed -i '' 's%PREFIX = /usr/local%PREFIX = $(LIBS_PATH)%' ./Makefile && \
sed -i '' 's%-fPIC%-fPIC $(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)%' ./Makefile && \
sed -i '' 's%-Wno-format-truncation%%' ./Makefile && \
sed -i '' 's%-Wl,-soname -Wl,libgif.so.$$(LIBMAJOR)%%' ./Makefile && \
sed -i '' 's%-Wl,-soname -Wl,libutil.so.$$(LIBMAJOR)%%' ./Makefile && \
make -j4 CC=$(GCC) AR=$(AR) && \
make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(gif-name)
yuv:
$(yuv-dpkg) $(PKG_PATH)/$(yuv-name).$(yuv-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(yuv-name) && \
cmake . \
-DCMAKE_C_COMPILER=$(GCC) \
-DCMAKE_CXX_COMPILER=$(GXX) \
-DCMAKE_C_FLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC" \
-DCMAKE_CXX_FLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS) -fPIC" \
-DCMAKE_INSTALL_PREFIX=$(LIBS_PATH) && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(yuv-name)
bcg729:
$(bcg729-dpkg) $(PKG_PATH)/$(bcg729-name).$(bcg729-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(bcg729-name) && \
cp $(PKG_PATH)/config.guess ./ && \
cp $(PKG_PATH)/config.sub ./ && \
./autogen.sh && \
./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)/$(bcg729-name)
uuid:
$(uuid-dpkg) $(PKG_PATH)/$(uuid-name).$(uuid-tail) $(LIBS_PATH) && \
cd $(LIBS_PATH)/$(uuid-name) && \
./configure \
--prefix=$(LIBS_PATH) \
--enable-static \
--enable-shared \
--with-pic \
CFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" \
CPPFLAGS="$(EXT_CFLAGS) $(EXT_INCS) $(EXT_LIBS)" && \
make -j4 && make install && \
cd - && \
rm -rf $(LIBS_PATH)/$(uuid-name)
1
https://gitee.com/wexiangis/ffmpeg5-build.git
git@gitee.com:wexiangis/ffmpeg5-build.git
wexiangis
ffmpeg5-build
ffmpeg5-build
master

搜索帮助