我是靠谱客的博主 无情黑夜,最近开发中收集的这篇文章主要介绍ffmpeg2,4+sdl1.2起步--交叉编译 lesson1,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

折腾了两天板,终于在板子上可以播放视频了。

先总结几点,放置大家进坑:

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部