概述
软件系统: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 移植所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复