2016-04-06 2 views
0

Я работаю над приложением, которое принимает два аудиофайла и объединяет их в уважаемые каналы. То, как они выравниваются, не так хорошо, как я надеялся, поэтому я хочу настроить громкость каждого файла во время фазы смешивания. Я видел несколько примеров в Интернете, например, this, this и [this][3] .. но ни один из них не работает для меня. Может ли кто-нибудь направить меня в правильном направлении? Очень благодарен!Слияние двух аудиофайлов в Android с использованием FFMPEG

Я использую эту библиотеку, чтобы выполнить: https://github.com/WritingMinds/ffmpeg-android-java

Вот мой код (EDIT)

String files = "-i " + mVoiceFile.getAbsolutePath() + " -i " + mBeatFile.getAbsolutePath(); 
String filter = "-filter_complex [0:a]volume=0.99[a1];[1:a]volume=0.3[a2][a1][a2]amerge=inputs=2,volume=1.3,pan=stereo|c0<c0+c2|c1<c1+c3[aout]"; 
String output = " -map [aout] -strict -2 \" + mRapFile.getAbsolutePath()"; 
String cmd = files+filter+output;` 

введите код здесь

и вот мои ошибки от работы.

04-06 12:17:34.079 30975-30975/me.rapchat.rapchat E/Studio Process: WARNING: linker: /data/user/0/me.rapchat.rapchat/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix. 
04-06 12:17:34.306 30975-30975/me.rapchat.rapchat E/Studio Process: ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers 
04-06 12:17:34.306 30975-30975/me.rapchat.rapchat E/Studio Process: built on Oct 7 2014 15:08:46 with gcc 4.8 (GCC) 
04-06 12:17:34.306 30975-30975/me.rapchat.rapchat E/Studio Process: 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-neon --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 -mfpu=neon' --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= 
04-06 12:17:34.307 30975-30975/me.rapchat.rapchat E/Studio Process: libavutil  54. 7.100/54. 7.100 
04-06 12:17:34.307 30975-30975/me.rapchat.rapchat E/Studio Process: libavcodec  56. 1.100/56. 1.100 
04-06 12:17:34.307 30975-30975/me.rapchat.rapchat E/Studio Process: libavformat 56. 4.101/56. 4.101 
04-06 12:17:34.307 30975-30975/me.rapchat.rapchat E/Studio Process: libavdevice 56. 0.100/56. 0.100 
04-06 12:17:34.308 30975-30975/me.rapchat.rapchat E/Studio Process: libavfilter  5. 1.100/5. 1.100 
04-06 12:17:34.308 30975-30975/me.rapchat.rapchat E/Studio Process: libswscale  3. 0.100/3. 0.100 
04-06 12:17:34.308 30975-30975/me.rapchat.rapchat E/Studio Process: libswresample 1. 1.100/1. 1.100 
04-06 12:17:34.308 30975-30975/me.rapchat.rapchat E/Studio Process: libpostproc 53. 0.100/53. 0.100 
04-06 12:17:34.372 30975-30975/me.rapchat.rapchat E/Studio Process: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/me.rapchat.rapchat/cache/recording.m4a': 
04-06 12:17:34.373 30975-30975/me.rapchat.rapchat E/Studio Process: Metadata: 
04-06 12:17:34.373 30975-30975/me.rapchat.rapchat E/Studio Process:  major_brand  : mp42 
04-06 12:17:34.373 30975-30975/me.rapchat.rapchat E/Studio Process:  minor_version : 0 
04-06 12:17:34.374 30975-30975/me.rapchat.rapchat E/Studio Process:  compatible_brands: isommp42 
04-06 12:17:34.374 30975-30975/me.rapchat.rapchat E/Studio Process:  creation_time : 2016-04-06 19:17:33 
04-06 12:17:34.374 30975-30975/me.rapchat.rapchat E/Studio Process: Duration: 00:00:01.56, start: 0.000000, bitrate: 144 kb/s 
04-06 12:17:34.375 30975-30975/me.rapchat.rapchat E/Studio Process:  Stream #0:0(eng): Audio: aac (mp4a/0x6134706D), 44100 Hz, mono, fltp, 128 kb/s (default) 
04-06 12:17:34.375 30975-30975/me.rapchat.rapchat E/Studio Process:  Metadata: 
04-06 12:17:34.375 30975-30975/me.rapchat.rapchat E/Studio Process:  creation_time : 2016-04-06 19:17:33 
04-06 12:17:34.375 30975-30975/me.rapchat.rapchat E/Studio Process:  handler_name : SoundHandle 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process: Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/me.rapchat.rapchat/cache/beats/d3c37d60-ed50-4c00-b454-4e399a7858ff.m4a': 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process: Metadata: 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  major_brand  : mp42 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  minor_version : 0 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  compatible_brands: mp42isom 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  creation_time : 1993-11-24 14:46:42 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  encoder   : Max 0.9.1 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  iTunSMPB  : 00000000 00000840 000003c0 000000000035dc00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process:  date   : 2015 
04-06 12:17:34.401 30975-30975/me.rapchat.rapchat E/Studio Process: Duration: 00:01:20.04, start: 0.047891, bitrate: 129 kb/s 
04-06 12:17:34.402 30975-30975/me.rapchat.rapchat E/Studio Process:  Stream #1:0(eng): Audio: aac (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) 
04-06 12:17:34.402 30975-30975/me.rapchat.rapchat E/Studio Process:  Metadata: 
04-06 12:17:34.402 30975-30975/me.rapchat.rapchat E/Studio Process:  creation_time : 1993-11-24 14:46:42 
04-06 12:17:34.404 30975-30975/me.rapchat.rapchat E/Studio Process: [NULL @ 0xb5e4fc00] Unable to find a suitable output format for '[a1][a2]amerge,pan=stereo|c0<c0+c1|c1<c2+c3[aout]' 
04-06 12:17:34.404 30975-30975/me.rapchat.rapchat E/Studio Process: [a1][a2]amerge,pan=stereo|c0<c0+c1|c1<c2+c3[aout]: Invalid argument 
04-06 12:17:34.407 30975-30975/me.rapchat.rapchat E/Studio Status Failed: WARNING: linker: /data/user/0/me.rapchat.rapchat/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix. 
                      ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers 
                      built on Oct 7 2014 15:08:46 with gcc 4.8 (GCC) 
                      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-neon --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 -mfpu=neon' --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= 
                      libavutil  54. 7.100/54. 7.100 
                      libavcodec  56. 1.100/56. 1.100 
                      libavformat 56. 4.101/56. 4.101 
                      libavdevice 56. 0.100/56. 0.100 
                      libavfilter  5. 1.100/5. 1.100 
                      libswscale  3. 0.100/3. 0.100 
                      libswresample 1. 1.100/1. 1.100 
                      libpostproc 53. 0.100/53. 0.100 
                      Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/me.rapchat.rapchat/cache/recording.m4a': 
                      Metadata: 
                       major_brand  : mp42 
                       minor_version : 0 
                       compatible_brands: isommp42 
                       creation_time : 2016-04-06 19:17:33 
                      Duration: 00:00:01.56, start: 0.000000, bitrate: 144 kb/s 
                       Stream #0:0(eng): Audio: aac (mp4a/0x6134706D), 44100 Hz, mono, fltp, 128 kb/s (default) 
                       Metadata: 
                       creation_time : 2016-04-06 19:17:33 
                       handler_name : SoundHandle 
                      Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/me.rapchat.rapchat/cache/beats/d3c37d60-ed50-4c00-b454-4e399a7858ff.m4a': 
                      Metadata: 
                       major_brand  : mp42 
                       minor_version : 0 
                       compatible_brands: mp42isom 
                       creation_time : 1993-11-24 14:46:42 
                       encoder   : Max 0.9.1 
                       iTunSMPB  : 00000000 00000840 000003c0 000000000035dc00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
                       date   : 2015 
                      Duration: 00:01:20.04, start: 0.047891, bitrate: 129 kb/s 
                       Stream #1:0(eng): Audio: aac (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) 
                       Metadata: 
                       creation_time : 1993-11-24 14:46:42 
                      [NULL @ 0xb5e4fc00] Unable to find a suitable output format for '[a1][a2]amerge,pan=stereo|c0<c0+c1|c1<c2+c3[aout]' 
                      [a1][a2]amerge,pan=stereo|c0<c0+c1|c1<c2+c3[aout]: Invalid argument 

ответ

2

Весь фильтр комплекс должен быть одна строка, без пробелов, или заключено в кавычки ", если они есть. Прямо сейчас, ffmpeg считает, что комплекс заканчивается после фильтра 2-го тома и пытается разобрать остальную часть комплекса в качестве выходного токена.

+0

Hi @Mulvya, Спасибо, что привлекли это к моему вниманию. Я скорректировал свой оригинальный код, чтобы он соответствовал вашим предложениям, и теперь я получаю «Нет выходной панели, которая может быть связана с меткой ссылки a1 .. Я пропустил что-то еще? – Jeremy

+1

Вам нужна полуколона после фильтра 2-го тома. – Mulvya

+0

СПАСИБО SO MUCH @Mulvya – Jeremy

Смежные вопросы