文档首页 > > 移植指南> 移植Opus> 移植指导

移植指导

分享
更新时间:2020/08/31 GMT+08:00

介绍

简要介绍

Opus是一个完全开放的、免费的、多功能的音频编解码器。 它在交互式的语音和音乐在互联网中的传输方面有着优势,但是同样致力于存储和流媒体应用程序。它是由互联网工程任务组(IETF)制定的标准,标准格式为RFC 6716,由Skype的SILK编解码器和Xiph.Org的CELT编解码器合并发展而来,号称音频编解码器中的瑞士军刀

语言:C/C++

一句话概述:高性能音频编解码器

建议的版本

建议版本为“Opus1.3.1”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

Centos

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

编译和安装

本文以“Opus1.3.1”版本为例,下载源码,并编译安装。

  1. 下载Opus源代码。

    wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz

  2. 安装Opus软件依赖包。

    yum install gcc-c++ bzip2 autoconf automake flex texinfo -y

  3. 升级gcc。

    1. 查看当前gcc版本,可以看到当前gcc版本为“4.8.5”

      gcc -v

      结果如下:

      Using built-in specs.
      COLLECT_GCC=gcc
      COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-redhat-linux/4.8.5/lto-wrapper
      Target: aarch64-redhat-linux
      Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.r
      edhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --e
      nable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-styl
      e=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto --enable-plugin --enable-initfini-array --disable-libgcj --w
      ith-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-aarch64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-
      4.8.5-20150702/obj-aarch64-redhat-linux/cloog-install --enable-gnu-indirect-function --build=aarch64-redhat-linux
      Thread model: posix
      gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 

    2. 下载7.3.0版本的gcc。

      wget http://mirrors.concertpass.com/gcc/releases/gcc-7.3.0/gcc-7.3.0.tar.gz

    3. 解压和编译7.3.0版本gcc,过程大概需要1小时~2小时。

      tar -xvf gcc-7.3.0.tar.gz

      cd gcc-7.3.0

      ./contrib/download_prerequisites

      mkdir gcc-build-7.3.0 && cd gcc-build-7.3.0

      ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

      make && make install

    4. 查看gcc版本。

      gcc -v

      如果查询后得到的版本号为旧版本,请退出操作系统后重新登录并查询,即可查询到升级后的gcc版本。

      结果如下:

      Using built-in specs.
      COLLECT_GCC=gcc
      COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/aarch64-unknown-linux-gnu/7.3.0/lto-wrapper
      Target: aarch64-unknown-linux-gnu
      Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
      Thread model: posix
      gcc version 7.3.0 (GCC) 

  4. 解压并安装Opus。

    cd /root/

    tar -xvf /root/opus-1.3.1.tar.gz

    cd /root/opus-1.3.1

    ./configure && make && make install

运行和验证

由于Opus是一个供应用程序调用的库,因此编译生产的也是一个库,可以通过查看是否有“opus.pc”产升验证Opus是否编译成功。

cat /usr/local/lib/pkgconfig/opus.pc

回显如下表示Opus编译成功。

# Opus codec reference implementation pkg-config file

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Opus
Description: Opus IETF audio codec (floating-point build)
URL: https://opus-codec.org/
Version: 1.3.1
Requires:
Conflicts:
Libs: -L${libdir} -lopus
Libs.private: -lm
Cflags: -I${includedir}/opus

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问