2016-06-14 10 views
0

Ich habe versucht, zwei mp4 Videos mit der gleichen Höhe und Breite zusammenzuführen, aber ein Fehler tritt auf. Der Code ist:FFMPEG zwei Videos zusammenführen (Verkettung)

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); 
      } 

Logcat:

/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 

Ich verwende hiteshsondhi88 ‚s FFMPEG Bibliothek Jede Hilfe würde geschätzt. Dank

+0

'kann nicht für ein geeignetes Ausgabeformat finden‚ffmpeg'' sollte alles sagen. 'ffmpeg' ist das Programm, kein Dateiformat. versuchen Sie etwas wie '.mp4' –

+0

@MarcB jetzt zeigt es Kann nicht finden, ein geeignetes Ausgabeformat für '[email protected]' –

+1

0.1136 ist alt und nicht unterstützt. Sie verschwenden Ihre Zeit und unsere mit einer so alten Version. – LordNeckbeard

Antwort

0

Statt der aktuellen:

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

Probieren Sie es wie folgt aus:

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

Unbekanntes Eingabeformat: 'concat' In OnFailure –

+0

FFMPEG DEVICE VERSION: 0.11.1built FFMPEG BIBLIOTHEKSVERSION: n2.4.2 –

+0

Das ist seltsam. Es sollte nicht davon ausgegangen werden, dass "concat" ein Dateiformat ist ... Um sicher zu sein, dass alles in Ordnung ist, versuchen Sie es mit einem einfachen Konvertieren eines Videos in mp3-Sound: 'ffmpeg.execute (" -y -i /storagepath/yourvideo.mp4/storagepath/testoutput.mp3 ", neuer FFmpegExecuteResponseHandler() {' wo ** storagepath ** ist die wo Videodatei befindet (SD-Karte? internen Speicher? etc), erhalten Sie eine mp3-Datei namens ** testoutput.mp3 ** und es ist spielbar? –

Verwandte Themen