получить звук из одного mp4 и использовать его в передискретизированном (меньшем) mp4 в android

Я нашел решение для передискретизации видео в формате .mp4, снятого камерой на устройстве, чтобы уменьшить его (изменение размера по разрешению, битрейту и частоте кадров). Проблема в том, что он не переносит звук.

Я рассмотрел несколько различных вариантов попытки получить звук из моего исходного (большого) mp4 и вставить его в мой меньший mp4, и мне кажется, что ни одна из этих процедур не работает правильно.

Я пробовал следующее: 1) извлечение звука PCM из источника с помощью: Как извлечь аудио в mp3 из mp4 с помощью java в Android? 2) преобразовать PCM в M4A, а затем добавить M4A в меньший MP4, используя: https://github.com/tqnst/MP4ParserMergeAudioVideo/blob/master/Mp4ParserSample-master/src/jp/classmethod/sample/mp4parser/MainActivity.java

это метод, к которому я подошел ближе всего, но звук был очень медленным и совсем не совпадал с видео в меньшем mp4.

Я также пробовал «прямую копию» из одного mp4 в другой с вариацией этого: Объедините несколько аудиофайлов mp4 с помощью MediaMuxer Android

это сделало мой меньший mp4 на самом деле больше (по размеру файла), чем мой исходный mp4, и на самом деле не переместил звук.

Документация Android для MediaMuxer довольно ужасна, и я не могу понять, что мне нужно сделать, чтобы это работало. Вроде бы задача должна быть довольно тривиальной ....

Любые предложения или советы будут приняты с благодарностью.

TIA


person Blair Holmes    schedule 15.08.2016    source источник


Ответы (1)


В итоге я просто использовал ffmpeg с этим решением:

https://github.com/WritingMinds/ffmpeg-android-java

person Blair Holmes    schedule 15.08.2016