IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> NDK编译FFMPEG库及MeadiaCodec等库出现的各种问题 -> 正文阅读

[移动开发]NDK编译FFMPEG库及MeadiaCodec等库出现的各种问题

最近搞新项目,需要在C++层里实现各种音视频逻辑,在网上下载了FFmpeg等库放入Android Studio后,出现各种问题,现在都汇总记录下~

1.外接UVC协议的摄像头时,插上摄像头后,有显示设备列表,但是就没有画面出来。外接摄像头是用了开源库的LibUvcCamera日志也报这样的错:

[506*UVCCamera.cpp:172:connect]:could not open camera:err=-1
E/AndroidRuntime: FATAL EXCEPTION: BaseActivity
Process: com.serenegiant.usbcameratest0, PID: 7753
java.lang.UnsupportedOperationException: open failed:result=-1
at com.serenegiant.usb.UVCCamera.open(UVCCamera.java:204)
at com.serenegiant.usbcameratest0.MainActivity$2$1.run(MainActivity.java:149)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)

查了很多资料,都说更换NDK版本,但是我试了不行,后来又查了很多资料,在外国一论坛有个大神说toolchain版本有关,然后看了源码编译的Application.mk刚好注释掉了,所以我去掉注释让其生效:

NDK_TOOLCHAIN_VERSION := 4.9

发现没有报错,也能正常显示画面了,下面附上Application.mk修改后的完整代码:

#/*
# * UVCCamera
# * library and sample to access to UVC web camera on non-rooted Android device
# * 
# * Copyright (c) 2014-2017 saki t_saki@serenegiant.com
# * 
# * File name: Application.mk
# * 
# * Licensed under the Apache License, Version 2.0 (the "License");
# * you may not use this file except in compliance with the License.
# *  You may obtain a copy of the License at
# * 
# *     http://www.apache.org/licenses/LICENSE-2.0
# * 
# *  Unless required by applicable law or agreed to in writing, software
# *  distributed under the License is distributed on an "AS IS" BASIS,
# *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# *  See the License for the specific language governing permissions and
# *  limitations under the License.
# * 
# * All files in the folder are under this Apache License, Version 2.0.
# * Files in the jni/libjpeg, jni/libusb, jin/libuvc, jni/rapidjson folder may have a different license, see the respective files.
#*/

# This is just for mips, if you really needs MSA, un-comment and build with GCC.
# Note: Supporting GCC on NDK is already deprecated and GCC will be removed from NDK soon.
NDK_TOOLCHAIN_VERSION := 4.9

APP_PLATFORM := android-14
#APP_ABI := armeabi armeabi-v7a x86 mips
APP_ABI := armeabi-v7a
#APP_OPTIM := debug
APP_OPTIM := release

2.接着ffmpeg和meadiaCodec相关的库:

error: no type named 'shared_ptr' in namespace 'std'

解决办法,在对应文件加入:#include<memory>

error: no type named 'condition_variable' in namespace 'std'

在报错文件加入:#include <condition_variable>?

 error: use of undeclared identifier 'free'

在报错文件头加入:#include <stdlib.h>

最后编译时,因为有很多库相互依赖,会出现这样错误:

More than one file was found with OS independent path 'lib/arm64-v8a/libyuv.so'. If you are using jniLibs and CMake IMPORTED targets

则需在build.gradle加入如下这句:

packagingOptions {
        pickFirst 'lib/arm64-v8a/libffmpeg.so'
        pickFirst 'lib/arm64-v8a/libyuv.so'
        pickFirst 'lib/armeabi-v7a/libyuv.so'
        pickFirst 'lib/armeabi-v7a/libffmpeg.so'
    }

我这里是提示了才加的,没提示的不用加。

packagingOptions放在android目录里即可
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-02 14:59:33  更:2021-10-02 15:00:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:18:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码