В приложении для Android я использую фильтр amix для слияния двух mp3-файлов. Теперь, иногда это работает, и когда-то оно дает ошибку «из памяти» в зависимости от того, какая пара mp3-входов требуется. Я вставляю здесь журнал FFmpeg для двух разных исполнений, слияние двух разных mp3-файлов.фильтр amix в FFmpeg не работает в зависимости от mp3-входов
Это не удается, ибо из памяти:
Input #0, mp3, from '/storage/emulated/0/beatmachine/esplode/1.mp3':
Duration: 00:00:00.37, start: 0.000000, bitrate: 137 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
[mp3 @ 0xb5b9f600] Skipping 0 bytes of junk at 417.
Input #1, mp3, from '/storage/emulated/0/beatmachine/esplode/7.mp3':
Duration: 00:00:01.78, start: 0.000000, bitrate: 129 kb/s
Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Output #0, mp3, to '/storage/emulated/0/beatmachine/esplode/8.mp3':
Metadata:
TSSE : Lavf57.25.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp (default)
Metadata:
encoder : Lavc57.24.102 libmp3lame
Stream mapping:
Stream #0:0 (mp3) -> amix:input0
Stream #1:0 (mp3) -> amix:input1
amix -> Stream #0:0 (libmp3lame)
Press [q] to stop, [?] for help
Error while filtering: Out of memory
size= 5kB time=00:00:00.36 bitrate= 105.0kbits/s speed=1.51x
video:0kB audio:4kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 5.548245%
Это работает нормально:
Input #0, mp3, from '/storage/emulated/0/beatmachine/esplode/2.mp3':
Duration: 00:00:01.36, start: 0.025057, bitrate: 195 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 195 kb/s
[mp3 @ 0xb5c5f600] Skipping 0 bytes of junk at 417.
Input #1, mp3, from '/storage/emulated/0/beatmachine/esplode/4.mp3':
Duration: 00:00:00.21, start: 0.000000, bitrate: 143 kb/s
Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Output #0, mp3, to '/storage/emulated/0/beatmachine/esplode/8.mp3':
Metadata:
TSSE : Lavf57.25.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp (default)
Metadata:
encoder : Lavc57.24.102 libmp3lame
Stream mapping:
Stream #0:0 (mp3) -> amix:input0
Stream #1:0 (mp3) -> amix:input1
amix -> Stream #0:0 (libmp3lame)
Press [q] to stop, [?] for help
size= 7kB time=00:00:00.73 bitrate= 79.6kbits/s speed=1.45x
size= 13kB time=00:00:01.33 bitrate= 77.0kbits/s speed=1.76x
video:0kB audio:12kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.010969%
И это те параметры, я передаю в FFmpeg:
[-i, input1, -i, input2, -filter_complex, amix=inputs=2:duration=longest[aout], -map, [aout], -ac, 2, -c:a, libmp3lame, -q:a, 9, outputmp3]
Что такое разные в двух парах файлов, так что один не работает, а другой работает?
1. Предоставьте полный вывод/журнал консоли из команды, которая не работает. 2. Предоставьте два входа, которые не работают. 3. Попробуйте использовать последнюю версию 'ffmpeg' из ветви git master. – LordNeckbeard