首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ffmpeg库无法工作。

ffmpeg库无法工作。
EN

Stack Overflow用户
提问于 2017-03-31 05:37:49
回答 2查看 922关注 0票数 0

我已经在Android上编译了FFmpeg (libffmpeg.so)。现在,我必须构建一个像RockPlayer这样的应用程序,或者使用现有的安卓多媒体框架来调用FFmpeg和视频播放。

您有步骤/过程/代码/示例来集成FFmpeg / StageFright吗?

您能指导我如何使用这个库进行多媒体播放吗?

我已经画了,混过了。

EN

回答 2

Stack Overflow用户

发布于 2017-03-31 10:54:14

  1. 编译'com.writingminds:FFmpegAndroid:0.3.2',将其添加到gradle
代码语言:javascript
复制
1. Add this inside onCreate :

ffmpeg = FFmpeg.getInstance(this.getApplicationContext());

(先声明FFmpeg ffmpeg; )

2.加载库:loadFFMpegBinary();

  1. 使用ffmpeg将音频添加到视频的代码:

使用execFFmpegBinaryShortest(null);调用函数

**

代码语言:javascript
复制
private void execFFmpegBinaryShortest(final String[] command) {
    final File outputFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4");

   String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy","-shortest",outputFile.getPath()};


            try {

                ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {
                    @Override
                    public void onFailure(String s) {
                        System.out.println("on failure----"+s);
                    }

                    @Override
                    public void onSuccess(String s) {
                        System.out.println("on success-----"+s);
                    }

                    @Override
                    public void onProgress(String s) {
                        //Log.d(TAG, "Started command : ffmpeg "+command);
                        System.out.println("Started---"+s);

                    }

                    @Override
                    public void onStart() {


                        //Log.d(TAG, "Started command : ffmpeg " + command);
                        System.out.println("Start----");

                    }

                    @Override
                    public void onFinish() {
                        System.out.println("Finish-----");


                    }
                });
            } catch (FFmpegCommandAlreadyRunningException e) {
                // do nothing for now
                System.out.println("exceptio :::"+e.getMessage());
            }


            }

**

票数 1
EN

Stack Overflow用户

发布于 2017-03-31 05:44:56

从这里下载ffmpeg:http://bambuser.com/opensource。它包含了为android构建ffmpeg的脚本。修改build.sh。将"com.bambuser.broadcaster“替换为您的包名。您还需要设置ffmpeg标志以启用您感兴趣的编解码器。运行build.sh,并将build/ffmpeg目录复制到应用程序jni/lib目录中。从SO中使用fasaxc的makefile。在jni目录中创建一个native.c文件,并创建一个java包装器。首先,您可以在NDK样本中的hello-jni之后对其进行建模(/ samples /hello-jni)。在native.c文件中包括标题,如下所示:#include "libavcodec/avcodec.h“。并调用所需的函数: avcodec_register_all()等.通过添加:Static{ System.loadLibraries("");}在根活动中包含本机库

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43133158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档