set(FFMPEG_INSTALL_PATH "${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg") if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=linux \ --cc=${CMAKE_C_COMPILER} \ --cxx=${CMAKE_CXX_COMPILER} \ --prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \ --enable-parsers --enable-decoder=h264 \ --enable-ffmpeg --enable-shared --enable-static \ --enable-gpl --enable-nonfree --enable-version3 --enable-small \ --enable-muxer=mov --enable-muxer=mp4 \ --enable-decoder=aac \ --enable-demuxer=mov \ --enable-protocol=file --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb") 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 \ --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") endif() message("Compile ffmpeg comand : ${CONFIGURE_COMMAND}") add_custom_target( ffmpeg COMMAND test -f ${EXTERNAL_SOURCE_PATH}/ffmpeg/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)