米尔电子
直播中

大菠萝Alpha

4年用户 766经验值
擅长:嵌入式技术
私信 关注
[资料]

【米尔-芯驰D9360商显板试用评测】FFmpeg移植

一、简介

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统工程师一般。

A complete, cross-platform solution to record, convert and stream audio and video.

在此推荐《深入理解FFmpeg》,因为本书详细介绍了开源音视频处理软件FFmpeg的使用,按照所讲述的内容及读者的不同层次,本书划分为上下两篇。上篇为基础与参数详解,介绍了FFmpeg的基本组成部分、工具使用,以及封装、转码、流媒体、滤镜和设备操作。下篇为API使用及开发,介绍了FFmpeg封装、编解码和滤镜部分的API使用操作,相关操作均以实例方式进行说明,包括新旧API的操作方法和异同,并给出了大量的API使用、自定义功能模块、基于FFmpeg的API开发自己的播放器的示例,以及其在实际开源软件中的应用等。

90bde12e8754e00e116ac363ee5c753.png

二、编译X264

H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。而X264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。

先直接从网络(http://download.videolan.org/pub/videolan/x264/snapshots/)获取X264源码。考虑到版本关系,本文我下载的是x264-snapshot-20180430-2245-stable.tar.bz2。

tar -vxf x264-snapshot-20180430-2245-stable.tar.bz2
mkdir x264

手动创建的X264文件夹用于存放编译后的X264库。执行如下命令:

./configure --host=aarch64-linux --prefix=/home/x264 --enable-shared --disable-asm --enable-static --cross-prefix=aarch64-linux-gnu-

M4.png

之后执行make make install完成x264库的交叉编译。生成的文件信息如下:

root@EliteDesk800:~/x264/lib$ ls
libx264.so  libx264.so.152  pkgconfig
root@EliteDesk800:~/x264/lib$ file *
libx264.so:     symbolic link to libx264.so.152
libx264.so.152: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=01dd733d65c98eb894b4cdd412                                                                     16259543ec8405, with debug_info, not stripped
pkgconfig:      directory

三、编译FFmpeg

首先从FFmpeg官方网站http://ffmpeg.org/download.html上下载FFmpeg源码。

tar -vxf ffmpeg-snapshot.tar.bz2
mkdir ffmpeg_install

其中ffmpeg_install文件夹用于保存生成的文件。执行如下命令:

./configure --prefix=/home/ffmpeg_install --enable-cross-compile --arch=arm64 --target-os=linux --cc=aarch64-linux-gnu-gcc --disable-x86asm --cross-prefix=aarch64-linugnu-  --pkg-config=/usr/bin/pkg-config

--pkg-config=/usr/bin/pkg-config主要用于解决ERROR: x264 not found using pkg-config问题,网上很多解决方法都不靠谱。

M3.png

之后执行make make install完成ffmpeg的交叉编译。
M2.png

生成的文件信息如下:

root@EliteDesk800:~/ffmpeg$ file ../ffmpeg_install/bin/*
../ffmpeg_install/bin/ffmpeg:  ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=b32285f11866f79dd499330849a9b3195ea0e446, stripped
../ffmpeg_install/bin/ffprobe: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=5d3fa4ea21ad6c4395bbaf134b915190799305b2, stripped

更多回帖

发帖
×
20
完善资料,
赚取积分