首先编译依赖库alsa和SDL。
1 ALSA: alsa-1.1.4.1
./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/alsa
make
make install
2 SDL1.2.15
./configure --prefix=/usr/local/sdl1.2 --host=arm-none-linux-gnueabi --build=i386 --enable-shared --disable-video-aalib --enable-video-dummy --enable-video-x11 --disable-video-directfb --disable-video-nanox --enable-video-qtopia --disable-video-ggi --enable-video-svga --enable-video-dga --disable-arts --disable-esd --disable-nasm --disable-joystick --disable-input-tslib --enable-alsa --enable-alsa-shared --disable-pulseaudio --with-alsa-prefix=/usr/local/alsa/lib --with-alsa-inc-prefix=/usr/local/alsa/include
make
make install
然后编译ffmpeg2.4.14
第一步:
./configure --cross-prefix=arm-none-linux-gnueabi- --enable-cross-compile --target-os=linux --cc=arm-none-linux-gnueabi-gcc --arch=arm --prefix=/usr/local/ffmpeg2.4 --enable-shared --enable-static --enable-gpl --enable-nonfree --enable-ffmpeg --enable-ffprobe --enable-ffplay --enable-ffserver --enable-swscale --disable-yasm --extra-cflags=-I/usr/local/sdl1.2/include/SDL --extra-ldflags=-L/usr/local/sdl1.2/lib --extra-libs=-lSDL
第二步:
修改config.mak,否则不会生成ffplay。
vi config.mak
将 SDL 和 FFPLAY 配置前面的!去掉,修改后的配置项如下:
CONFIG_FFPLAY=yes
CONFIG_SDL2=yes
CONFIG_SDL2_OUTDEV=yes
保存,退出。然后
第三步:
make
make install
将可执行文件和依赖库部署到arm板上。执行
./ffplay -nodisp -i 1.mp3
注:
较新的ffmpeg4.1+SDL2.0.9编译后部署到arm板上,运行时报错:
SDL_OpenAudio (2 channels, 44100 Hz): No such audio device
SDL_OpenAudio (1 channels, 44100 Hz): No such audio device
No more combinations to try, audio open failed
不知道什么原因,未解决。