概述
折腾了两天板,终于在板子上可以播放视频了。
先总结几点,放置大家进坑:
1、最新版本的FFmpeg-3.4的编译ffplay的话要用SDL2版本,SDL1.2的已经不能用了;
2、通过查看源码发现,ffmpeg-3.0.11及以下版本用的是SDL1.2,但这个版本还是有点高,没编译过去;
3、最新版本ffmpeg-3.4交叉编译过后,在板子上运行,出现如下错误Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?);暂未解决
4、最新版本实验失败,就选择ffmpeg-2.4.14.版本,选择libx264库时最新的也会出错,好像不兼容,就选择了x264-snapshot-20150630-2245-stable.tar.bz2;
进入正题:
libx264交叉编译
下载路径https://download.videolan.org/pub/videolan/x264/snapshots/
解压,进入目录
2015年版本
CC=arm-linux-gnueabi-gcc ./configure --host=arm-linux-gnueabi --prefix=/home/cui/allwinner/a83t/ffmpeg/libout/x264_2015 --cross-prefix=arm-linux-gnueabi- --enable-static --enable-shared --disable-opencl
make
make install
安装成功,生成文件在/home/cui/allwinner/a83t/ffmpeg/libout/libx264 下
交叉编译SDL,然后再生成ffplay
编译SDL1.2
./configure --prefix=/home/cui/allwinner/a83t/ffmpeg/libout/sdl --host=arm-linux-gnueabi --enable-shared --disable-video-aalib --enable-video-dummy --enable-video-x11 --enable-video-fbcon --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 --disable-pulseaudio
make
make install
编译ffmpeg2.4
./configure --cross-prefix=arm-linux-gnueabi- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabi-gcc --arch=arm --prefix=/home/cui/allwinner/a83t/ffmpeg/libout/ffmpeg2.4 --enable-shared --enable-static --enable-gpl --enable-nonfree --enable-ffmpeg --enable-ffprobe --enable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --enable-avresample --disable-yasm --disable-stripping --enable-libx264 --extra-cflags=-I/home/cui/allwinner/a83t/ffmpeg/libout/x264_2015/include --extra-cflags=-I/home/cui/allwinner/a83t/ffmpeg/libout/sdl/include/SDL --extra-ldflags=-L/home/cui/allwinner/a83t/ffmpeg/libout/x264_2015/lib --extra-ldflags=-L/home/cui/allwinner/a83t/ffmpeg/libout/sdl/lib --extra-libs=-lSDL
修改config.mak
将SDL 和FFPLAY配置前面的! 去掉;
make
make install
然后将生成的库和ffplay拷贝到开发板,运行,OK;
开发板运行:
ffplay /home/movie.mp4
可以播放视频;单出现错误,Audio write: Input/output error 375KB vq= 0KB sq= 0B f=0/0
语音出错,可能是因为没有加语音库,那就把语音取消掉,
ffplay -autoexit -an /home/movie.mp4
正常播放完毕后退出;
还可以循环播放 加选项
-loop 0 无数次
-loop 2 两次最后
以上就是无情黑夜为你收集整理的ffmpeg2,4+sdl1.2起步--交叉编译 lesson1的全部内容,希望文章能够帮你解决ffmpeg2,4+sdl1.2起步--交叉编译 lesson1所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复