Объедините два файла.m4a или конвертируйте файл.wav в m4a

Я искал способ записи в mpeg-4 с возможностью паузы и возобновления, но казалось, что его нет. Поэтому я решил записать в сыром виде wave отформатировать и преобразовать в .m4a, Есть ли способ, которым я могу преобразовать .wav подать в .m4a в андроид. Я искал вокруг mencoder порт для андроида, но не нашел, там были некоторые посты о портировании ffmpeg на Android на linux но не совсем понятно, как я могу использовать его в Android, чтобы объединить два .m4a файлы или конвертировать .wav подать в .m4a,

2 ответа

Есть две возможные вещи, которые вы могли бы подразумевать под "объединением" аудиофайлов, и два разных способа сделать это с помощью ffmpeg:

Помещение двух отдельных звуковых дорожек в один файл

Как на DVD, где есть обычная звуковая дорожка и другая звуковая дорожка, такая как комментарий или дублированный язык. Чтобы сделать это с ffmpeg и двумя файлами m4a, используйте команду ffmpeg -i in-1.m4a -acodec copy out.m4a -i in-2.m4a -acodec copy -newaudio, Порядок опций важен, поэтому не связывайтесь с ним.

Объединение двух аудио файлов

Заставить второй файл воспроизводиться сразу после первого. Самый простой способ сделать это - использовать программу, предназначенную для манипулирования звуком, такую ​​как SoX. Похоже, что есть недавний, но нестабильный Android-порт SoX.

Если вы хотите выполнить конкатенацию строго в ffmpeg, то вы можете сделать следующее:

  1. ffmpeg -i in-1.m4a -f s16le in-1.raw
    Это выводит аудиофайл в необработанный PCM. Вам нужно обратить внимание на частоту дискретизации и количество каналов, потому что эта информация не будет сохранена в необработанном файле PCM, и она понадобится вам позже. ffmpeg покажет вам информацию о аудиопотоке во время перекодирования. Это будет выглядеть примерно так Audio: aac, 44100 Hz, stereo, s16, 63 kb/sЭто означает, что частота дискретизации составляет 44100, а количество каналов - 2 (стерео). Чаще всего вы будете иметь дело с частотой дискретизации 22050, 44100 или 48000; и 1 ("моно"), 2 ("стерео") или 6 ("5.1") каналов.

  2. ffmpeg -i in-2.m4a -f s16le in-1.raw
    Теперь декодируйте второй файл в необработанный PCM.

  3. ffmpeg -f s16le -ar 44100 -ac 2 -i 'concat:in-1.raw|in-2.raw' -acodec libfaac out.m4a
    Опять же, порядок вариантов очень важен. Изменить частоту дискретизации (-ar) и каналы (-ac) параметры в зависимости от вашего ввода.

Предполагая, что вы собираете ffmpeg с соответствующими форматами и кодеками, конвертируя wav в m4a так же просто, как:

ffmpeg -i in.wav out.m4a

Если вы работаете со звуком, вам лучше повезет с SoX.

Другие вопросы по тегам