Android中使用Opus 1.3.1
Opus是一个开放格式的有损声音编码的格式,并在其使用上没有任何专利或限制。还可以处理各种音频应用,包括IP语音、视频会议、游戏内聊天、流音乐、甚至远程现场音乐表演。它可以从低比特率窄带语音扩展到非常高清音频的立体声音乐。支持的功能包括:
6 kb/秒到510 kb/秒的比特率;单一频道最高256 kb/秒
采样率从8 kHz(窄带)到48 kHz(全频)
帧大小从2.5毫秒到60毫秒
支持恒定比特率(CBR)、受约束比特率(CVBR)和可变比特率(VBR)
支持语音(SILK层)和音乐(CELT层)的单独或混合模式
支持单声道和立体声;支持多达255个音轨(多数据流的帧)
可动态调节比特率,音频带宽和帧大小
良好的鲁棒性丢失率和数据包丢失隐藏(PLC)
浮点和定点实现
Ndk编译产生Opus so库
快捷获取so库传送门:https://download.youkuaiyun.com/download/fepengwang/18623320
下载Opus源码
https://download.youkuaiyun.com/download/fepengwang/18623164
使用NDK-Build编译
解压下载好的opus-1.3.1.tar.gz
编写Android.mk文件到opus-1.3.1\
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#我使用的是NDK 18
#NDK 17及以上不再支持ABIs [mips64, armeabi, mips]
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
APP_CPPFLAGS += -std=c++11
APP_STL := gnustl_shared
APP_PLATFORM := android-16
include $(LOCAL_PATH)/celt_sources.mk
include $(LOCAL_PATH)/silk_sources.mk
include $(LOCAL_PATH)/opus_sources.mk
LOCAL_MODULE := opus
# Fixed point sources
SILK_SOURCES += $(SILK_SOURCES_FIXED)
# ARM build
CELT_SOURCES += $(CELT_SOURCES_ARM)
SILK_SOURCES += $(SILK_SOURCES_ARM)
LOCAL_SRC_FILES := \
$(CELT_SOURCES) $(SILK_SOURCES) $(OPUS_SOURCES) $(OPUS_SOURCES_FLOAT)
LOCAL_LDLIBS := -lm -llog
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/silk \
$(LOCAL_PATH)/silk/fixed \
$(LOCAL_PATH)/celt
LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O3 -fno-math-errno
LOCAL_CPPFLAGS := -DBSD=1
LOCAL_CPPFLAGS += -

本文介绍如何在Android环境中使用Opus 1.3.1进行声音编码和解码,涵盖Opus特性、编译步骤及JNI接口调用。
最低0.47元/天 解锁文章
1301

被折叠的 条评论
为什么被折叠?



