66 lines
3.0 KiB
CMake
66 lines
3.0 KiB
CMake
set(FFMPEG_INSTALL_PATH "${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg")
|
|
find_program(NASM nasm)
|
|
if(NOT NASM)
|
|
message("nasm not found. Now install.")
|
|
execute_process(COMMAND sudo apt install nasm WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/)
|
|
endif()
|
|
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
|
set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=x86_64 \
|
|
--cc=${CMAKE_C_COMPILER} \
|
|
--cxx=${CMAKE_CXX_COMPILER} \
|
|
--prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \
|
|
--enable-parsers --enable-decoder=h264 --enable-libfdk-aac \
|
|
--enable-ffmpeg --enable-static \
|
|
--enable-gpl --enable-nonfree --enable-version3 --enable-small \
|
|
--enable-muxer=mov --enable-muxer=mp4 \
|
|
--enable-decoder=aac --enable-decoder=pcm_alaw --enable-encoder=pcm_alaw \
|
|
--enable-demuxer=mov \
|
|
--enable-protocol=file --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb \
|
|
--extra-libs=-lm \
|
|
--extra-cflags=\"-I${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/include\" \
|
|
--extra-ldflags=\"-L${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/lib\"")
|
|
else()
|
|
set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=arm64 \
|
|
--cc=${CMAKE_C_COMPILER} \
|
|
--cxx=${CMAKE_CXX_COMPILER} \
|
|
--prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \
|
|
--disable-asm --enable-parsers --disable-decoders --enable-decoder=h264 --enable-libfdk-aac \
|
|
--disable-debug --enable-ffmpeg --enable-shared --enable-static --disable-stripping --disable-doc \
|
|
--enable-gpl --enable-nonfree --enable-version3 --enable-small \
|
|
--disable-mipsdsp --disable-mipsdspr2 \
|
|
--disable-encoders \
|
|
--disable-muxers --enable-muxer=mov --enable-muxer=mp4 \
|
|
--disable-decoders --enable-decoder=aac \
|
|
--disable-filters \
|
|
--disable-demuxers --enable-demuxer=mov \
|
|
--disable-parsers \
|
|
--disable-protocols --enable-protocol=file \
|
|
--disable-bsfs --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb \
|
|
--disable-indevs \
|
|
--disable-outdevs --disable-ffprobe --disable-ffmpeg --disable-ffplay --disable-debug \
|
|
--extra-libs=-lm \
|
|
--extra-cflags=\"-I${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/include\" \
|
|
--extra-ldflags=\"-L${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/lib\"")
|
|
endif()
|
|
message("Compile ffmpeg comand : ${CONFIGURE_COMMAND}")
|
|
add_custom_target(
|
|
ffmpeg
|
|
DEPENDS fdk-aac
|
|
COMMAND echo "Now compile ffmpeg, please wait..."
|
|
COMMAND test -f ${EXTERNAL_SOURCE_PATH}/ffmpeg/ffmpeg-6.1.1/Makefile || tar -xf ffmpeg_6.1.1.orig.tar.xz
|
|
COMMAND chmod 777 -R ffmpeg-6.1.1
|
|
COMMAND cd ffmpeg-6.1.1 && bash -c "./configure ${CONFIGURE_COMMAND}"
|
|
COMMAND cd ffmpeg-6.1.1 && make
|
|
COMMAND cd ffmpeg-6.1.1 && make install
|
|
COMMAND cd ffmpeg-6.1.1 && make clean
|
|
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/ffmpeg/
|
|
)
|
|
|
|
add_custom_target(
|
|
remove_ffmpeg_source_files
|
|
COMMAND rm -rf ffmpeg-6.1.1
|
|
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/ffmpeg/
|
|
)
|
|
|
|
# 将clean目标依赖于我们自定义的clean_script目标
|
|
add_dependencies(sdk_clean remove_ffmpeg_source_files) |