使用 ffmpegframerecorder android 保存视频

2024-06-23

我正在尝试保存该视频并收到此错误。

我添加了两个jar文件1)javacv 2)javacpp

and for 相机预览我用过opencv.

我在这里添加代码。

` 公共无效运行(){

 while (true) {
                Bitmap bmp = null;

                synchronized (this) {
                    if (mCamera == null)
                        break;

                    if (!mCamera.grab()) {
                        Log.e(TAG, "mCamera.grab() failed");
                        break;
                    }

                    bmp = processFrame(mCamera);

                    if(isRecording)
                    {
                        ByteBuffer buffer = ByteBuffer.allocate(bmp.getRowBytes()*bmp.getHeight());
                        bmp.copyPixelsFromBuffer(buffer);
                        try {
                            recorder.record(buffer);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }


                    }
                }

                if (bmp != null) {
                    Canvas canvas = mHolder.lockCanvas();
                    if (canvas != null) 
                    {
                        Matrix matrix = new Matrix();

                        matrix.preTranslate((canvas.getWidth() - getFrameWidth())/2, (canvas.getHeight() - getFrameHeight())/2);

                        if(getResources().getConfiguration().orientation ==  Configuration.ORIENTATION_PORTRAIT)
                        matrix.postRotate(90f,(canvas.getWidth()) / 2,(canvas.getHeight()) / 2);
                        canvas.drawBitmap(bmp, matrix, new Paint());
                        mHolder.unlockCanvasAndPost(canvas);
                    }
                    bmp.recycle();
                }
            }

            Log.i(TAG, "Finishing processing thread");
        }

     // For Recording File
        public boolean prepareVideoRecorder() 
        {

            recorder = new FFmpegFrameRecorder(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString(), getFrameWidth(), getFrameHeight());

            recorder.setVideoCodec(avcodec.AV_CODEC_ID_MJPEG);
            recorder.setPixelFormat(avutil.PIX_FMT_YUV420P);
            recorder.setAudioCodec(avcodec.AV_CODEC_ID_PCM_S16LE); 
            try {
                recorder.start();
            } catch (Exception e) 
            {
                return false;
            } 
            return true;
        }`

我收到这个错误..

11-20 13:47:09.349:错误/AndroidRuntime(4954):致命异常:主要 11-20 13:47:09.349:错误/AndroidRuntime(4954):java.lang.ExceptionInInitializerError 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacv.FFmpegFrameRecorder。(FFmpegFrameRecorder.java:119) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacv.FFmpegFrameRecorder。(FFmpegFrameRecorder.java:112) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): 在 com.boomalaya.moovix.CameraPreview$Preview.prepareVideoRecorder(CameraPreview.java:454) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): 在 com.boomalaya.moovix.CameraPreview$2.onClick(CameraPreview.java:172) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在android.view.View.performClick(View.java:2485) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): 在 android.view.View$PerformClick.run(View.java:9080) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在android.os.Handler.handleCallback(Handler.java:587) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在android.os.Handler.dispatchMessage(Handler.java:92) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在android.os.Looper.loop(Looper.java:130) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在android.app.ActivityThread.main(ActivityThread.java:3687) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.reflect.Method.invokeNative(本机方法) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.reflect.Method.invoke(Method.java:507) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在dalvik.system.NativeStart.main(本机方法) 11-20 13:47:09.349:错误/AndroidRuntime(4954):引起:java.lang.ExceptionInInitializerError 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.Class.classForName(本机方法) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.Class.forName(Class.java:234) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacpp.Loader.load(Loader.java:338) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacv.cpp.avformat。(avformat.java:76) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): ... 15 更多 11-20 13:47:09.349:错误/AndroidRuntime(4954):引起:java.lang.ExceptionInInitializerError 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.Class.classForName(本机方法) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.Class.forName(Class.java:234) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacpp.Loader.load(Loader.java:338) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacv.cpp.avcodec。(avcodec.java:86) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): ... 19 更多 11-20 13:47:09.349:错误/AndroidRuntime(4954):引起:java.lang.UnsatisfiedLinkError:无法加载jniavutil:findLibrary返回null 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.Runtime.loadLibrary(Runtime.java:429) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在java.lang.System.loadLibrary(System.java:554) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacpp.Loader.loadLibrary(Loader.java:448) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacpp.Loader.load(Loader.java:372) 11-20 13:47:09.349:错误/AndroidRuntime(4954):在com.googlecode.javacpp.Loader.load(Loader.java:319) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): 在 com.googlecode.javacv.cpp.avutil.(avutil.java:75) 11-20 13:47:09.349: 错误/AndroidRuntime(4954): ... 23 更多

谁能帮我解决这个问题..


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ffmpegframerecorder android 保存视频 的相关文章

  • 如何在 Android 中获取 SD 卡上文件夹的大小?

    是否可以轻松获取SD卡上文件夹的大小 我使用文件夹来缓存图像 并希望显示所有缓存图像的总大小 除了迭代每个文件之外 还有其他方法吗 它们都位于同一个文件夹中 只需浏览所有文件并将它们的长度相加即可 Return the size of a
  • Android 使用带有空格的键访问 Firebase

    这可能是一个愚蠢的问题 但我在谷歌的 firebase 网站上找不到任何示例 如果我在 firebase 数据库中有一个密钥 First Name 然后我打电话 FirstNameClass firstName dataSnapshot g
  • 一部又一部的Android动画

    我在 TextView 上有两个 TranslateAnimations 我希望它们一个接一个地执行 但是 通过使用下面的代码 仅执行第二个代码 我该如何解决这个问题 TranslateAnimation animation new Tra
  • 覆盖服务 - 按下返回按钮

    我怎样才能做到这一点 目前的解决方案 我启动了一个透明的活动 捕获后按 将其转发到我的服务 然后自行关闭 但此活动将在当前正在运行的活动中可见 因此这不是一个非常漂亮的解决方案 看到的解决方案 我见过一个应用程序确实可以捕获服务中的后按 而
  • 在 Android 5.0 Lollipop 上以编程方式在视图上设置主题

    Android 5 0 Lollipop 添加了为不同视图 不仅仅是 Activity 设置主题的功能 android theme style MyAwesomeTheme 有没有办法动态设置视图的主题 安卓 主题 https develo
  • Lombok 如何将代码生成到现有类中? [复制]

    这个问题在这里已经有答案了 我可以使用注释处理器从头开始生成类 但我无法像 lombok 那样修改类 我在 android studio 中搜索了 lombok 生成的类 但是我什么也没找到 然后我通过他们的网站检查了龙目岛概述 还在论坛中
  • 在 Android 上以编程方式输入 *#*#4636#*#* 等密码

    在许多 Android 设备上 您可以通过键入以下内容从 电话 应用程序进入秘密设置菜单 4636 http technology headlines com 2010 09 17 4636 android secret codes htt
  • CameraX:将照片捕获为位图

    我正在尝试使用护目镜CameraX示例应用程序 CameraXBasic 可以在 Github 上找到 并且希望将图像捕获为位图 以便能够在保存图像之前对图像进行一些修改 有人对如何实现这一目标有建议吗 请参阅下面的Google原始代码来捕
  • 在 Android 中将连续动画应用到 ImageView

    我想将连续的动画 例如 ScaleAnimation 应用到显示资源图像的 ImageView 动画由按钮触发 例如 我想在每次单击按钮时逐渐放大图像 我已在动画上设置 fillAfter true 但是 所有动画都是从 ImageView
  • 如何以编程方式为 LinearLayout 指定layout_below?

    我想以编程方式做这样的事情
  • 如何在单击时使图像抖动/摆动?

    我有一个图像按钮 我想在触摸它时摇动 摆动 我希望它能够像 iPhone 应用程序图标在被长时间按下时那样摆动 Thanks 尝试使用这个
  • 在 KtorClient 的 DefaultRequest 中声明 ContentType = Application.Json 后,我可以更改特定请求的 ContentType 标头吗

    我正在开发我的 android 项目 我正在创建一个请求函数来上传文件 该函数发出如下请求 httpClient put uri body MultiPartFormDataContent formData append file file
  • 无法启动由 ContextImpl.openFileOutput 处的 NullPointerException 引起的活动

    我发布了一个使用 Google 地图 Android 兼容性库的应用程序 https github com petedoyle android support v4 googlemaps https github com petedoyle
  • 画廊新媒体如何播放?

    我试图收到有关添加到手机图库的新图片或视频的通知 我需要获取新媒体的 URI 目的是让我可以自动备份它 因此 我需要一个在后台设置的寄存器来连续侦听或检查添加到图库的新媒体 并捕获 Uri 这过去是通过广播接收器完成的 例如
  • 面临 process.start(); 的问题在 Android 棒棒糖中

    面临一个问题process start 在 Android 棒棒糖中 我在服务中遇到了 android lollipop 后台进程的问题 我的代码在 KitKat 之前工作正常 我有一个ProcessBuilder pBuilder并向其中
  • 菜单项标题未显示

    菜单项的标题未显示在片段内 我在菜单文件中有两个项目 第一个是带有图标和标签的showAsAction always在工具栏中显示图标 第二个只有标题 我不知道这里出了什么问题 菜单项的所有操作均有效 例如下面 菜单 销售 xml menu
  • 是否可以通过 MediaRecorder 或其他类获取当前样本幅度

    我有一个媒体录音机 想要从麦克风录制媒体并获取 它是幅度样本 我想尝试立即获得正确的当前幅度 当调用一些API时 但 MediaRecorde 中只有一个 API 用于获取幅度 getMaxAmplitude 用于获取最大绝对幅度 自上次调
  • 将文本文件写入 SD 卡失败

    我遇到了一个奇怪的问题 我的应用程序可以将一个简单的文本文件写入 SD 卡 有时它对某些人有效 但对其他人无效 我不知道为什么 对于某些人来说 如果他们输入一些字符 例如 在文件等中 我似乎无法重现它 因为我没有遇到任何麻烦 但这是处理文件
  • 解决SecurityException:权限拒绝:启动意图。我需要什么许可?

    我想从应用程序打开游戏商店 在三星手机上还好 但在一加手机上却失败了 我不知道在哪里alibaba来自 真奇怪 异常 java lang SecurityException 权限拒绝 启动意图 act android intent acti
  • 如何将 Three.js 代码实施到 Android 移动应用程序中?

    我用 HTML CSS 和 JS 编写了 Three js 场景的代码 显示 3D 头部模型及其上的标记 它适用于我的 Angular 项目 我还可以通过将 HTML 代码添加到 Web 视图中 使其在适用于 Android 和 iOS 的

随机推荐