記一次FFMPEG最新版本的編譯問題
這裏是FFMPEG當前最新版本安裝使用問題,版本爲FFMPEG-4.2
在源碼編譯階段沒有生成ffplay,在ffmpeg3.0以下時,我們使用ffmpeg源碼編譯時,項目bin下會生成一堆ffmpeg/ffplay/ffprobe等,但是以後的版本發現ffmpeg只有ffmpeg和ffprobe這兩個,下面是對沒有ffplay生成做一次記錄
沒有ffplay
-
沒有安裝SDL
這是第一種情況,之前我們需要安裝libsdl1.2-dev這個版本,然後在安裝sdl2多個版本,不過在ffmpeg最新版本的時候只用安裝sdl2就可以了,如果有特殊需求,那就在安裝libsdl1.2-dev不影響
1.去官網上去下載sdl2.0:[http://www.libsdl.org/release/SDL2-2.0.9.tar.gz](http://www.libsdl.org/release/SDL2-2.0.9.tar.gz)
2.
tar -zxvf SDL2-2.0.6.tar.gz
3.configure SDL庫(具體參數,可自己設置,這裏只指定目錄,並未做詳細配置)
configure --prefix=/usr/local/sdl2
4.make -j4 && make install
-
安裝了SDL還是沒有
我們進入ffmpeg目錄通過
configure --help
這裏 去查看問題在Program options中會看出默認ffplay是被disable掉的,也可以進入ffbuild文件夾下查看config.mak這個目錄會有一個
!CONFIG_FFPLAY=YES
這種情況就需要我們使用交叉編譯了
-
先打開config.mak將CONFIG_FFPLAY前面的!去掉
-
然後在configure ffmpeg的時候將sdl目錄指定,參數我貼在下面
configure --prefix=/usr/local/ffmpeg --enable-cross-compile --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-sdl --enable-ffplay --enable-ffprobe --enable-ffmpeg --enable-pthreads --enable-version3 --pkg-config-flags=–static --enable-ffplay --cc=clang --extra-cflags=-I/usr/local/sdl2/SDL2/include/SDL --extra-ldflags=-L/usr/local/sdl2/lib
注意,由於對markdown會對–這種符號變成-操作,若有問題,請排查下
不過親測有效。。。
-
如果運行出現
C compiler test failed.
錯誤,則參數如下:configure --prefix=/usr/local/ffmpeg --enable-cross-compile --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-sdl --enable-ffplay --enable-ffprobe --enable-ffmpeg --enable-pthreads --enable-version3 --pkg-config-flags=–static --enable-ffplay --cc=clang --extra-cflags=-I/usr/local/sdl2/SDL2/include/SDL
即可
-
最後就是make && make install即可
-
由於我當時遇上這個問題,解決了兩天才解決掉,故做記錄,以防以後遇上