我是靠谱客的博主 强健小馒头,最近开发中收集的这篇文章主要介绍hisi3559A平台(aarch64)ffmpeg-4.1 移植,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

软件系统:Linux 版本:linux-4.9.37

硬件环境:hisi3559A(64位ARM)

项目中需要将H264/H265的裸流封装为MP4
尝试使用ffmpeg来实现。

移植步骤如下:
下载:
http://ffmpeg.org/download.html
默认下载的最新版本
我下载的是ffmpeg-4.1
由于hisi3559A的硬件编码器出来的直接是编码后的H264流,不需要进行编码了,这里不下载X264的编码库了。

配置如下:

./configure --prefix=./install --enable-cross-compile --disable-doc --target-os=linux --cpu=cortex-a73.cortex-a53 --arch=aarch64 --cross-prefix=aarch64-himix100-linux- --enable-nonfree    --enable-static --disable-shared --disable-debug --disable-iconv --enable-small --disable-network --disable-programs --disable-swresample --disable-swscale --disable-avdevice --disable-postproc --disable-avfilter --enable-pic --disable-everything --enable-muxer=mp4 --enable-muxer=flv --enable-muxer=mov --enable-muxer=h264 --enable-muxer=hevc --enable-protocol=file --enable-demuxer=m4v  --enable-demuxer=flv --enable-demuxer=mov --enable-demuxer=h264 --enable-demuxer=hevc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb  --enable-encoder=flv  --enable-encoder=mpeg4 --enable-encoder=mpeg4_v4l2m2m --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --disable-gpl  

./configure --prefix=./install --enable-cross-compile --disable-doc --target-os=linux --cpu=cortex-a73.cortex-a53 --arch=aarch64 --cross-prefix=aarch64-himix100-linux- --enable-nonfree --enable-static --disable-shared --disable-debug --disable-iconv --enable-small --disable-network --disable-programs --disable-swresample --disable-swscale --disable-avdevice --disable- postproc --disable-avfilter --enable-pic --disable-everything --enable-muxer=mp4 --enable-muxer=flv --enable-muxer=mov --enable-muxer=h264 --enable-muxer=hevc --enable-protocol=file --enable-demuxer=m4v --enable-demuxer=flv --enable-demuxer=mov --enable-demuxer=h264 --enable-demuxer=hevc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb --enable-encoder=flv --enable-encoder=mpeg4 --enable-encoder=mpeg4_v4l2m2m --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --disable-gpl

配置说明:

–prefix=./install 安装程序到指定目录(默认/usr/local)
–enable-cross-compile 使用了交叉编译
–disable-doc 不生成文档
–target-os=linux 软件面向linux的系统平台
–cpu=cortex-a73.cortex-a53 选用最低的 cpu(影响指令的选择,可以在老 CPU 上出错)
–arch=aarch64 选择机器架构
–cross-prefix=aarch64-himix100-linux- 指定编译工具为aarch64-himix100-linux
–enable-nonfree 允许使用非自由代码,生成的lib和二进制文件将不可分发(默认关闭)
–enable-static 构建静态库
–disable-shared 禁止构建共享库
–disable-debug 禁用调试符号
–disable-iconv
–enable-small 启用优化文件尺寸大小(牺牲速度)
–disable-network 禁用网络支持(默认支持
–disable-programs 不生成命令行程序
–disable-swresample 禁用libswresample库 用于视频场景比例缩放、色彩映射转换
–disable-swscale 禁用计数器支持?(默认关闭)
–disable-avdevice 禁用avdevice库 多媒体设备交互的类库
–disable-postproc 禁用postproc库 用于后期效果处理
–disable-avfilter 禁用avfilter库 用于视频场景比例缩放、色彩映射转换
–enable-pic 启用与位置无关的代码
–disable-everything 禁用所有组件(包含encoders decoders hwaccels muxers demuxers parsers bsfs protocols indevs outdevs devices filters)
–enable-muxer=mp4 启用mp4封装器
–enable-muxer=flv 启用flv封装器
–enable-muxer=mov 启用mov封装器

–enable-protocol=file 启用文件协议
–enable-demuxer=m4v 启用m4v解封装器
–enable-demuxer=flv 启用flv解封装器
–enable-demuxer=mov 启用mov解封装器
–enable-bsf=h264_mp4toannexb 启用h264_mp4toannexb 码流过滤器
–enable-bsf=hevc_mp4toannexb 启用hevc_mp4toannexb 码流过滤器
–disable-gpl 允许使用GPL开源库(默认关闭)

其实 ./configure --help 对每一项有详细的说明,

执行命令:

make

在install目录生成三个库
libavcodec.a libavformat.a libavutil.a
头文件路径:
install/include

注:更新2019.05.15, 修正代码中的空格

最后

以上就是强健小馒头为你收集整理的hisi3559A平台(aarch64)ffmpeg-4.1 移植的全部内容,希望文章能够帮你解决hisi3559A平台(aarch64)ffmpeg-4.1 移植所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部