Search code examples
androidaudioffmpegmp3

Combine 2 mp3 files by using FFmpeg


I need to combine two mp3 files by using ffMpeg.
I use this code, but it doesn't work

I want to execute this

ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 output.mp3

Why isn't my code working?

and my complete output log , problem Unknown encoder 'libmp3lame'

        01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   built on Oct  7 2014 15:05:17 with gcc 4.8 (GCC)
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libavutil      54.  7.100 / 54.  7.100
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libavcodec     56.  1.100 / 56.  1.100
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libavformat    56.  4.101 / 56.  4.101
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libavdevice    56.  0.100 / 56.  0.100
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libavfilter     5.  1.100 /  5.  1.100
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libswscale      3.  0.100 /  3.  0.100
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libswresample   1.  1.100 /  1.  1.100
01-06 11:48:13.560 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   libpostproc    53.  0.100 / 53.  0.100
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout Input #0, mp3, from '/storage/emulated/0/a.mp3':
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   Metadata:
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     title           : Creep
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     album           : Pablo Honey
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     track           : 2/13
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     disc            : 1/1
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     artist          : Radiohead
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     genre           : Alternative
-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     publisher       : EMI Music Distribution
-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     album_artist    : Radiohead
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     composer        : Colin Greenwood/Ed O'Brien/Jonny Greenwood/Phil Selway/Thom Yorke
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     date            : 1993
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   Duration: 00:03:55.91, start: 0.025057, bitrate: 320 kb/s
01-06 11:48:13.572 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
01-06 11:48:13.573 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     Metadata:
01-06 11:48:13.573 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout       encoder         : LAME3.97 
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout [mp3 @ 0x2b403a90] Estimating duration from bitrate, this may be inaccurate
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout Input #1, mp3, from '/storage/emulated/0/b.mp3':
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   Metadata:
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     title           : This is Love                  
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     artist          : Chirs de Burgh                
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     album           : This Way Up                   
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     date            : 1994
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     comment         :                               
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout   Duration: 00:03:47.67, start: 0.000000, bitrate: 128 kb/s
01-06 11:48:13.577 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout     Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
01-06 11:48:13.579 6119-6472/com.uraroji.garage.android.mp3recvoice D/test: shellout Unknown encoder 'libmp3lame'
01-06 11:48:13.580 6119-6473/com.uraroji.garage.android.mp3recvoice D/dalvikvm: threadid=14: exiting
01-06 11:48:13.580 6119-6473/com.uraroji.garage.android.mp3recvoice D/dalvikvm: threadid=14: bye!
01-06 11:48:13.580 6119-6119/com.uraroji.garage.android.mp3recvoice D/test: processComplete 1
01-06 11:48:13.580 6119-6472/com.uraroji.garage.android.mp3recvoice D/dalvikvm: threadid=13: exiting
01-06 11:48:13.581 6119-6472/com.uraroji.garage.android.mp3recvoice D/dalvikvm: threadid=13: bye!

Solution

  • MP3 Encoder

    FFmpeg does not have a native MP3 encoder, so you have to use an external library (libmp3lame or libshine) for MP3 encoding support. However, your ffmpeg build was not compiled with --enable-libmp3lame or --enable-libshine. You will have to re-compile ffmpeg.

    libmp3lame is more common, but libshine is for fixed-point MP3 encoding which may be faster on your ARM device (but I've never performed any comparisons).

    amerge

    Your command uses the amerge filter to merge two stereo audio files. This will result in a 4-channel output. If you want to downmix the output to stereo then add -ac 2.