1 | 综合篇 | 点我 |
---|---|---|
2 | uboot移植 | 点我 |
3 | uboot lcd驱动 | 点我 |
4 | kernel移植 | 点我 |
5 | kernel lcd驱动 | 点我 |
6 | 摄像头驱动 | 点我 |
7 | ubuntu base移植 | 点我 |
8 | 挂载网络文件系统 | 点我 |
9 | qt移植 | 点我 |
10 | 搭建qt交叉编译 | 点我 |
11 | wifi移植 | 点我 |
12 | 搭建nginx + rtmp服务器 | 点我 |
13 | ffmpeg移植 | 点我 |
ffmpeg需要用到H264,所以需要先编译libx264,它是自由的H.264编码库,是x264项目的一部分。
源码下载:http://download.videolan.org/pub/videolan/x264/snapshots/
sudo apt-get install nasm libc6-dev-i386
依次执行下面的命令
./configure --host=arm-linux-gnueabihf --cross-prefix=arm-linux-gnueabihf- --prefix=/home/work/third-party/x264-snapshot-20180619-2245-stable/arm-x264 --enable-shared --disable-asm
make
make install
安装完成后arm-x264会存在下面的文件
源码下载:http://ffmpeg.org/releases/
依次执行下面的命令
./configure --enable-cross-compile --cross-prefix=arm-linux-gnueabihf- --arch=arm --target-os=linux --cc=arm-linux-gnueabihf-gcc --prefix=/home/work/third-party/ffmpeg-3.4.5/arm-ffmpeg --enable-shared --enable-pic --disable-static --enable-gpl --enable-nonfree --enable-pthreads --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --enable-libx264 --extra-cflags=-I/home/work/third-party/x264-snapshot-20180619-2245-stable/arm-x264/include --extra-ldflags=-L/home/work/third-party/x264-snapshot-20180619-2245-stable/arm-x264/lib
make
make install
安装完成后arm-fmpeg会存在下面的文件
将刚才编译好的H264和ffmpeg复制到网络文件系统中
sudo cp arm-x264/ ../../imx6ull/rootfs/ubuntu-base-armhf/opt/ -r
sudo cp arm-ffmpeg/ ../../imx6ull/rootfs/ubuntu-base-armhf/opt/ -r
启动开发板下可以看到在/opt文件夹下存在arm-ffmpeg和arm-x264
在开发板中执行以下命令
vim /etc/profile
添加下面的内容
export PATH=$PATH:/opt/arm-nginx/sbin:/opt/arm-ffmpeg/bin
export LD_LIBRARY_PATH=/opt/arm-ffmpeg/lib:/opt/arm-x264/lib:$LD_LIBRARY_PATH
重新source
source /etc/profile
通过前面移植的nginx+rtmp推流
在开发板执行下面的命令播放11.mp4视频,在win10 通过vlc拉流
ffmpeg -re -i 11.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/on
执行结果如下
打开vlc点击媒体选择打开网络串流
因为我开发板的ip是192.168.0.100,所以输入rtmp://192.168.0.100:1935/live/ 拉流
点击播放,结果如下图