现在通过hi3516交叉编译libvpx-1.6.1,在海思平台上进行VP8视频编码器,将YUV格式的像素数据编码为VPx(VP8/VP9)码流,编码输出的封装格式是IVF!当然一般是通过FFmpeg接口来调用VP8/VP9接口!

编译步骤:

1、交叉编译配置,生成makefile文件: ./config

2、编译:make -j8

3、安装到指定位置:make install

在指定的目录下生成bin、lib、include、share等文件,把bin、lib两个文件夹的内容复制到开发板的sbin和lib目录下面就可以运行。

4、测试

编译libvpx时出现错误:(在linux上可以编译通过)
(1)、通过readme,如果编译器不在的列表里的使用CROSS命令:
sinovo@sinovo-virtual-machine:~/ffmpeg/vpx/libvpx$ CROSS=arm-hisiv300-linux-uclibcgnueabi- ./configure --prefix=/home/sinovo/ffmpeg/install --enable-libs --disable-examples --disable-docs --enable-vp8 --enable-vp9 --disable-shared --enable-staticdisabling examplesdisabling docsenabling vp8enabling vp9disabling shared
Configuring for target 'x86_64-linux-gcc'enabling x86_64enabling runtime_cpu_detectusing yasmenabling postproc
Unable to invoke compiler: arm-hisiv300-linux-uclibcgnueabi-gcc  -m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64Configuration failed. This could reflect a misconfiguration of your
toolchains, improper options selected, or another problem. If you
don't see any useful error messages above, the next step is to look
at the configure error log file (config.log) to determine what
configure was trying to do when it died.(2)、在configure的编译器列表里添加海思交叉编译链"all_platforms="${all_platforms} arm-hisiv300-linux-uclibcgnueabi-gcc""
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ ./configure --target=arm-hisiv300-linux-uclibcgnueabi-gcc --prefix=/home/sinovo/ffmpeg/install --enable-static --enable-vp8 --enable-vp9 --enable-pic --disable-ccache --enable-pic --enable-static --as=yasmenabling vp8enabling vp9enabling picdisabling ccache
Configuring for target 'arm-hisiv300-linux-uclibcgnueabi-gcc'enabling arm
Bypassing toolchain for environment detection.
Creating makefiles for arm-hisiv300-linux-uclibcgnueabi-gcc libs
Creating makefiles for arm-hisiv300-linux-uclibcgnueabi-gcc examples
Creating makefiles for arm-hisiv300-linux-uclibcgnueabi-gcc tools
Creating makefiles for arm-hisiv300-linux-uclibcgnueabi-gcc docs
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ make [DEP] examples/vp9cx_set_ref.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] video_writer.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] tools_common.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] ivfenc.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/vp8cx_set_ref.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/set_maps.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/decode_with_drops.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] video_reader.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] ivfdec.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/twopass_encoder.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/vp9_lossless_encoder.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/simple_encoder.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/decode_to_md5.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] md5_utils.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/postproc.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/simple_decoder.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/vpx_temporal_svc_encoder.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] examples/resize_util.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] vpxenc.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] vpxstats.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] warnings.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] rate_hist.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] y4minput.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] args.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] vpxdec.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found[DEP] y4menc.c.d
/bin/sh: 1: I/home/sinovo/ffmpeg/libvpx-1.6.1/vp8: not found
make[1]: *** No rule to make target 'libvpx.a', needed by 'vpxdec'。 停止。
Makefile:17: recipe for target '.DEFAULT' failed
make: *** [.DEFAULT] Error 2
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ vi Makefile +17
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ find ./ -name y4minput.c.d
./vp8/y4minput.c.d
./y4minput.c.d(3):配置
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ CROSS=arm-hisiv300-linux-uclibcgnueabi- ./configure --enable-static --as=yasm --target=armv7-linux-gcc --prefix=/home/sinovo/ffmpeg/install --disable-examples --disable-docs --disable-ccache --disable-multithread --disable-unit-tests --enable-shared --enable-vp8 --enable-vp9disabling examplesdisabling docsdisabling ccachedisabling multithreaddisabling unit_testsenabling sharedenabling vp8enabling vp9
Configuring for target 'armv7-linux-gcc'enabling armv7enabling picenabling neonenabling neon_asmenabling webm_ioenabling libyuv
Creating makefiles for armv7-linux-gcc libs
Creating makefiles for armv7-linux-gcc tools
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ make -j8[CREATE] vpx_scale_rtcd.h[CREATE] vpx_dsp_rtcd.h[CREATE] vp8_rtcd.h[CREATE] vp9_rtcd.h[ASM CONVERSION] vpx_dsp/arm/idct16x16_add_neon.asm.S[DEP] vpx_dsp/arm/idct16x16_add_neon.asm.S.d[ASM CONVERSION] vpx_dsp/arm/idct16x16_1_add_neon.asm.S[DEP] vpx_dsp/arm/idct16x16_1_add_neon.asm.S.d[ASM CONVERSION] vpx_dsp/arm/idct8x8_add_neon.asm.S[DEP] vpx_dsp/arm/idct8x8_add_neon.asm.S.d[ASM CONVERSION] vpx_dsp/arm/idct8x8_1_add_neon.asm.S[DEP] vpx_dsp/arm/idct8x8_1_add_neon.asm.S.d[ASM CONVERSION] vpx_dsp/arm/idct4x4_add_neon.asm.S[DEP] vpx_dsp/arm/idct4x4_add_neon.asm.S.d[ASM CONVERSION] vpx_dsp/arm/idct4x4_1_add_neon.asm.S[DEP] vpx_dsp/arm/idct4x4_1_add_neon.asm.S.d[ASM CONVERSION] vpx_dsp/arm/idct_neon.asm.S[DEP] vpx_dsp/arm/idct_neon.asm.S.d
....[AR] libvpx_g.a[STRIP] libvpx.a < libvpx_g.a[CREATE] libvpx.ver[LD] libvpx.so.4.1.0[LN]      libvpx.so.4.1.0 libvpx.so[LN]      libvpx.so.4.1.0 libvpx.so.4[LN]      libvpx.so.4.1.0 libvpx.so.4.1[CREATE] vpx.pc[DEP] tools/tiny_ssim.c.d[CC] tools/tiny_ssim.c.o[LD] tools/tiny_ssim
sinovo@sinovo-virtual-machine:~/ffmpeg/libvpx-1.6.1$ make install[INSTALL] /home/sinovo/ffmpeg/install/lib/libvpx.a[LN]      libvpx.so.4.1.0 /home/sinovo/ffmpeg/install/lib/libvpx.so[LN]      libvpx.so.4.1.0 /home/sinovo/ffmpeg/install/lib/libvpx.so.4[LN]      libvpx.so.4.1.0 /home/sinovo/ffmpeg/install/lib/libvpx.so.4.1[INSTALL] /home/sinovo/ffmpeg/install/lib/libvpx.so.4.1.0[INSTALL] /home/sinovo/ffmpeg/install/lib/pkgconfig/vpx.pc

下载

https://download.csdn.net/download/u010872301/10446977

基于Hi3516交差编译libvpx-1.6.1相关推荐

  1. ViSP安装之Windows系统基于VS2019编译器编译获得VISP动态库

    Windows系统基于VS2019编译器编译获得VISP动态库 官网地址: Installation from source for Windows with Visual C++ 2019 (vc1 ...

  2. 使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题

    理想的代码优化方式 团队日常协作中,自然而然的会出现很多重复代码,根据这些代码的种类,之前可能会以以下方式处理 方式 描述 应用时可能产生的问题 硬编码 多数新手,或逐渐腐坏的项目会这么干,会直接复制 ...

  3. Adopt Open JDK官方文档(四)基于虚拟机的编译环境

    4.基于虚拟机的编译环境 准备工作 编译你自己的虚拟机 编译你自己的轻量级虚拟机 在Host 与 Guest VM 之间共享文件 适用于 OpenJDK 8 的Vagrant Puppet 环境 4. ...

  4. Sky37E/D 基于Ubuntu21.04 编译环境搭建

    Sky37E/D 基于Ubuntu21.04 编译环境搭建 0. 下载安装Ubuntu 21.04 官网下载ubuntu21.04镜像(ubuntu-21.04-desktop-amd64.iso) ...

  5. WEBRTC系列之基于IOS平台编译(一)

    Webrtc 系列文章: WEBRTC系列之基于IOS平台编译(一) WEBRTC系列之 AGC 算法原理初识(二) WEBRTC系列之 AGC 算法原理初识(三) WEBRTC系列之基于IOS平台编 ...

  6. 基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了

    基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 进入21世纪,新的编程语言如雨后春笋一样不停地冒出来.需求当然是重要的驱动力量,但是在其中起了重要作用的就是工具链的改善. 2000年 ...

  7. npm run build 打包 之后怎么用_基于createreactapp打包编译自己的第三方UI组件库

    这篇文章主要是总结一下我们在工作中如何为公司开发内部的第三方UI组件,并通过npm install的方式安装的一些步骤和思路.在学习完这套发布方法后大家也可以快速的发布自己的UI库到npm,供他人使用 ...

  8. 基于命令行编译打包phonegap for android应用

    也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...

  9. Linux随笔16-主从DNS服务搭建以及智能DNS服务搭建、基于CentOS7.6编译安装MySQL-5.7.32

    Contents 1. DNS主从服务器搭建 1.1. DNS简介 1.2. DNS主从服务搭建 1.2.1. 主DNS服务器配置 1.2.2. 从DNS服务器配置 1.2.3. Web服务器准备 1 ...

最新文章

  1. IIS 7.5 + FastCGI + PHP + Drupal 7 + Oracle
  2. python匿名函数调用_python3笔记十六:python匿名函数和高阶函数
  3. NLP:基于textrank4zh库对文本实现提取文本关键词、文本关键短语和文本摘要
  4. 转载-如何做好项目的需求与业务调研▲▲▲
  5. 函数计算搭建小程序Web应用后端服务
  6. 多行并一行显示的两种方式(DB2)
  7. WordPress中缠结的自定义数据世界
  8. 解决方案:Gateway实现全局跨域
  9. C语言tolower函数介绍、示例和实现
  10. 隐藏html和php后缀的简易方法
  11. 运行错误代码_Win7系统提示错误代码0xc0000135应该如何解决?
  12. 在sublime text 3中让.vue文件的内容变成彩色
  13. win7打印服务经常无缘无故自动停止print spooler服务停止
  14. EDIUS 3.6快捷键
  15. 网络渗透测试实验三 XSS和SQL
  16. c语言入门编辑什么,萌新必看——C语言入门编辑器推荐
  17. 多入库口、出库口的提升系统仿真测试案例
  18. 计算机网络实验——虚拟局域网VLAN配置
  19. [macOS]_[初级]_[关于程序签名时出现User interaction is not allowed的问题]
  20. 七星配资市场剧烈震荡

热门文章

  1. 随笔︱MRO-Microsoft R Open使用心得与相应内容总结
  2. JS常见的字符串操作
  3. ES6 iterator 迭代器
  4. 在Mac中如何通过命令对NTFS磁盘格式化
  5. Learning Data Structure_2_线性表、栈和队列
  6. STM32F429HAL库定时器学习笔记
  7. 【超参数寻优】粒子群算法(PSO) 超参数寻优的python实现
  8. 深度学习---循环神经网络RNN详解(LSTM)
  9. webbrowser控件 加载为空白_OpenLayers教程五:地图控件之坐标拾取控件和鹰眼控件...
  10. javase开发工具包中的什么命令负责运行应用程序_想当程序员?先搞懂JavaSE、JavaEE和JavaME之间的区别吧!...