tar -xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
make install
linux
ffmpeg-3.2.14編譯腳本
./configure \
--prefix="/var/SDK/install/ffmpeg" \
--enable-memalign-hack \
--enable-postproc \
--strip=strip \
--pkg-config=pkg-config \
--extra-cflags="-I/var/SDK/install/aac/include -I/var/SDK/install/lame/include" \
--extra-ldflags="-L/var/SDK/install/aac/lib -L/var/SDK/install/lame/lib -lm -lpthread -lz" \
--disable-shared \
--enable-static \
--disable-ffprobe \
--enable-pic \
--enable-nonfree \
--enable-version3 \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-encoders \
--disable-decoders \
--disable-decoder=vc1 \
--disable-decoder=bmp \
--disable-decoder=h263 \
--disable-decoder=h264 \
--disable-decoder=hevc \
--disable-decoder=mpeg1video \
--disable-decoder=mpeg2video \
--disable-decoder=vp9 \
--enable-libmp3lame \
--enable-encoder=libmp3lame \
--enable-decoder=mp3 \
--enable-libfdk-aac \
--enable-encoder=aac \
--enable-decoder=aac \
--enable-encoder=pcm_s16le \
--enable-decoder=pcm_s16le \
--enable-muxer=pcm_s16le \
--enable-demuxer=pcm_s16le \
--enable-protocol=file
fdk-aac-2.0.0
./configure \
--prefix="/var/SDK/install/lame" \
--disable-shared \
--enable-static
llame-3.100
./configure \
--prefix="/var/SDK/install/lame" \
--disable-shared \
--enable-static
CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(E:\\Msys2\\mingw64\\include)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -pipe -fPIC -w -fmessage-length=0 -std=c++11 -g -Wall")
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O3 -pipe -fPIC -w -fmessage-length=0 -std=c++11 -g -Wall")
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic -L/usr/lib64/ -L/data/ahfuzhang/visp/build/lib64 -lstdc++ -lX11")
add_library(libavcodec STATIC IMPORTED)
set_target_properties(libavcodec PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavcodec.a)
add_library(libavdevice STATIC IMPORTED)
set_target_properties(libavdevice PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavdevice.a)
add_library(libavfilter STATIC IMPORTED)
set_target_properties(libavfilter PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavfilter.a)
add_library(libavformat STATIC IMPORTED)
set_target_properties(libavformat PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavformat.a)
add_library(libavutil STATIC IMPORTED)
set_target_properties(libavutil PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavutil.a)
add_library(libpostproc STATIC IMPORTED)
set_target_properties(libpostproc PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libpostproc.a)
add_library(libswresample STATIC IMPORTED)
set_target_properties(libswresample PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libswresample.a)
add_library(libswscale STATIC IMPORTED)
set_target_properties(libswscale PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libswscale.a)
add_library(libmp3lame STATIC IMPORTED)
set_target_properties(libmp3lame PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libmp3lame.a)
add_library(libfdk-aac STATIC IMPORTED)
set_target_properties(libfdk-aac PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libfdk-aac.a)
#add_library(native-lib SHARED transcode_aac.c)
add_executable(native-lib transcode_aac.c)
target_link_libraries(native-lib
libavfilter libavformat libavdevice libavcodec libswscale libavutil libswresample libfdk-aac libmp3lame
-lpthread -lz -lbz2 -lm -lX11 -lva -lva-drm -lva-x11)
window
msys2編譯微軟ffmpeg腳本
第一步安裝環境
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
pacman -Su
pacman -S gcc
pacman -S make
pacman -S git
pacman —S mingw-w64-x86_64-gcc
pacman —S mingw-w64-i686-gcc
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel
pacman -S vim
第二步環境配置
#target-os=win32,win64
#arch=x86,x86_64
ffmpeg-3.2.14編譯腳本
./configure \
--prefix="./window_64" \
--enable-memalign-hack \
--nm=x86_64-w64-mingw32-gcc-nm \
--ar=x86_64-w64-mingw32-gcc-ar \
--strip=strip \
--pkg-config=pkg-config \
--target-os=win64 \
--arch=x86_64 \
--extra-cflags="-IE:/Msys2/mingw64/include -IF:/zbar/fdk-aac-2.0.0/window_64/include -IF:/zbar/lame-3.100/window_64/include" \
--extra-ldflags="-LE:/Msys2/mingw64/lib -LF:/zbar/fdk-aac-2.0.0/window_64/lib -LF:/zbar/lame-3.100/window_64/lib -lm -lpthread -lz" \
--cross-prefix=E:/Msys2/mingw64/bin/x86_64-w64-mingw32- \
--enable-w32threads \
--disable-shared \
--enable-static \
--disable-ffprobe \
--enable-pic \
--enable-nonfree \
--enable-version3 \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-encoders \
--disable-decoders \
--disable-decoder=vc1 \
--disable-decoder=bmp \
--disable-decoder=h263 \
--disable-decoder=h264 \
--disable-decoder=hevc \
--disable-decoder=mpeg2video \
--disable-decoder=vp9 \
--enable-libmp3lame \
--enable-encoder=libmp3lame \
--enable-decoder=mp3 \
--enable-libfdk-aac \
--enable-encoder=aac \
--enable-decoder=aac \
--enable-encoder=pcm_s16le \
--enable-decoder=pcm_s16le \
--enable-muxer=pcm_s16le \
--enable-demuxer=pcm_s16le \
--enable-protocol=file #\
fdk-aac-2.0.0
#!/bin/bash
CC=x86_64-w64-mingw32-gcc
CXX=x86_64-w64-mingw32-g++
CFLAGS=-IE:/Msys2/mingw64/include
CXXFLAGS=-IE:/Msys2/mingw64/include
LDFLAGS="-LE:/Msys2/mingw64/lib -lm -lpthread -lz"
./configure \
--prefix="F:/zbar/fdk-aac-2.0.0/window_64" \
--disable-shared \
--enable-static \
--build=x86_64-w64-mingw32 \
--host=x86_64-w64-mingw32
lame-3.100
#!/bin/bash
CC=x86_64-w64-mingw32-gcc
LDFLAGS=-L/usr/lib
./configure \
--prefix="F:/zbar/lame-3.100/window_64" \
--disable-shared \
--enable-static \
--build=x86_64-w64-mingw32 \
--host=x86_64-w64-mingw32
CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(E:\\Msys2\\mingw64\\include)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -pipe -fPIC -w -fmessage-length=0 -std=c++11 -g -Wall")
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O3 -pipe -fPIC -w -fmessage-length=0 -std=c++11 -g -Wall")
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic -LE:\\Msys2\\mingw64\\include\\include")
add_library(libavcodec STATIC IMPORTED)
set_target_properties(libavcodec PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavcodec.a)
add_library(libavdevice STATIC IMPORTED)
set_target_properties(libavdevice PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavdevice.a)
add_library(libavfilter STATIC IMPORTED)
set_target_properties(libavfilter PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavfilter.a)
add_library(libavformat STATIC IMPORTED)
set_target_properties(libavformat PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavformat.a)
add_library(libavutil STATIC IMPORTED)
set_target_properties(libavutil PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libavutil.a)
add_library(libpostproc STATIC IMPORTED)
set_target_properties(libpostproc PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libpostproc.a)
add_library(libswresample STATIC IMPORTED)
set_target_properties(libswresample PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libswresample.a)
add_library(libswscale STATIC IMPORTED)
set_target_properties(libswscale PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libswscale.a)
add_library(libmp3lame STATIC IMPORTED)
set_target_properties(libmp3lame PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libmp3lame.a)
add_library(libfdk-aac STATIC IMPORTED)
set_target_properties(libfdk-aac PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libfdk-aac.a)
#add_library(native-lib SHARED transcode_aac.c)
add_executable(native-lib transcode_aac.c)
target_link_libraries(native-lib libavfilter libavformat libavdevice libavcodec libswscale libavutil libswresample libpostproc libfdk-aac libmp3lame libiconv libbz2 libz ws2_32 mincore)