android - FFMPEG合并两个视频(串联)

标签 android video ffmpeg

我一直在尝试合并(连接)两个具有相同高度和宽度的 mp4 视频,但出现了一些错误。
代码是:

FFmpeg ffmpeg = FFmpeg.getInstance(EditVideoActivity.this);
            String list = generateList(new String[]{ActualVideoFile.getAbsolutePath(), path});
            try {
                ffmpeg.execute("ffmpeg -f concat -i " + list + " -c:v copy " + mergedVideo.getAbsolutePath(), new FFmpegExecuteResponseHandler() {
                    @Override
                    public void onStart() {
                        Log.e("Start", "Start");
                    }

                    @Override
                    public void onFinish() {
                        Log.e("FINISHED", "finish");
                    }


                    @Override
                    public void onSuccess(String message) {
                        Log.e("SUCCESS", message);
                    }

                    @Override
                    public void onProgress(String message) {
                        Log.e("PROGRESSSS", message);
                    }

                    @Override
                    public void onFailure(String message) {
                        Log.e("FAILURE", message);
                    }


                });
            } catch (FFmpegCommandAlreadyRunningException e) {
                e.printStackTrace();
                Log.e("FFMEG Exception", "" + e);
            }

日志猫:
/PROGRESSSS: ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   built on Dec 22 2014 12:52:34 with gcc 4.6 20120106 (prerelease)
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   configuration: --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --prefix=/data/data/info.guardianproject.ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --sysroot=/home/n8fr8/dev/android/ndk/platforms/android-16/arch-arm --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filters --enable-avresample --enable-libfreetype --disable-indevs --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libavutil      51. 54.100 / 51. 54.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libavcodec     54. 23.100 / 54. 23.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libavformat    54.  6.100 / 54.  6.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libavdevice    54.  0.100 / 54.  0.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libavfilter     2. 77.100 /  2. 77.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libswscale      2.  1.100 /  2.  1.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libswresample   0. 15.100 /  0. 15.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS:   libpostproc    52.  0.100 / 52.  0.100
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS: [NULL @ 0x2aeef3b0] Unable to find a suitable output format for 'ffmpeg'
06-09 01:24:09.400 8512-8512/com.myApp E/PROGRESSSS: ffmpeg: Invalid argument
06-09 01:24:09.400 8512-8512/com.myApp E/FAILURE: ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
                                                        built on Dec 22 2014 12:52:34 with gcc 4.6 20120106 (prerelease)
                                                        configuration: --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --prefix=/data/data/info.guardianproject.ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --sysroot=/home/n8fr8/dev/android/ndk/platforms/android-16/arch-arm --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filters --enable-avresample --enable-libfreetype --disable-indevs --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib
                                                        libavutil      51. 54.100 / 51. 54.100
                                                        libavcodec     54. 23.100 / 54. 23.100
                                                        libavformat    54.  6.100 / 54.  6.100
                                                        libavdevice    54.  0.100 / 54.  0.100
                                                        libavfilter     2. 77.100 /  2. 77.100
                                                        libswscale      2.  1.100 /  2.  1.100
                                                        libswresample   0. 15.100 /  0. 15.100
                                                        libpostproc    52.  0.100 / 52.  0.100
                                                      [NULL @ 0x2aeef3b0] Unable to find a suitable output format for 'ffmpeg'
                                                      ffmpeg: Invalid argument

我正在使用 hiteshsondhi88 的 FFMPEG 库
任何帮助,将不胜感激。
谢谢

最佳答案

而不是您当前的:

ffmpeg.execute("ffmpeg -f concat -i " + list + " -c:v copy " + mergedVideo.getAbsolutePath(), new FFmpegExecuteResponseHandler() {

尝试像这样使用它:
ffmpeg.execute("-f concat -i " + list + " -c:v copy " + mergedVideo.getAbsolutePath(), new FFmpegExecuteResponseHandler() {

关于android - FFMPEG合并两个视频(串联),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37821042/

相关文章:

javascript - 使用 Safari 隐藏视频文本轨道

php - 在ffmpeg文件名变量php中转义单引号

android - 如何根据api级别应用主题

android - Pjsip 在多线程中调用它的函数时在 android 上崩溃

android - Sketch 中的 Material Design 插件 : How do you export the generated theme?

java - 当 WiFi 断开且无法重新连接时,应用程序、服务和 mqtt 崩溃

jquery - 获取 <video> 的原始尺寸

bash - 在 Docker 镜像中运行 vlc 以通过 rtsp 协议(protocol)发送视频流

android - 如何在 Android 中使用 ffmpeg 库裁剪视频?

node.js - child_process.exec 在路径中找不到 cmd