Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ffmpeg库不工作_Android_Video_Ffmpeg - Fatal编程技术网

Android ffmpeg库不工作

Android ffmpeg库不工作,android,video,ffmpeg,Android,Video,Ffmpeg,我已经在Android上编译了FFmpeg(libffmpeg.so)。现在我必须构建一个像RockPlayer这样的应用程序,或者使用现有的Android多媒体框架来调用FFmpeg,同时播放视频 您是否有在Android/StageFright上集成FFmpeg的步骤/过程/代码/示例 你能告诉我如何使用这个多媒体图书馆吗 播放 我已经做了渲染、混合。从这里下载ffmpeg:。它包含为android构建ffmpeg的脚本。 修改build.sh。用包名替换“com.bambuser.broa

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

您是否有在Android/StageFright上集成
FFmpeg
的步骤/过程/代码/示例

你能告诉我如何使用这个多媒体图书馆吗 播放


我已经做了渲染、混合。

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

  • 编译
    'com.writingminds:FFmpegAndroid:0.3.2'
    将此添加到gradle

  • 在onCreate中添加以下内容:

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

    (首先声明
    FFmpeg-FFmpeg;

  • 加载库:
    loadFFMpegBinary()

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

  • 使用execFFmpegBinaryShortest调用函数(null)

    **


    **

    您可以使用
    WritingMinds
    FFmpeg
    这里是突出显示的主要问题。
    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());
                }
    
    
                }