从一个 mp4 获取音频并将其用于 android 中的重新采样(较小)mp4

get audio from one mp4 and use it in resampled (smaller) mp4 in android

我找到了一种解决方案,可以对使用设备上的相机拍摄的 .mp4 视频进行重采样以使其更小(按分辨率、比特率和帧率调整大小)。问题是,它没有把音频传过来。

我已经研究了几种不同的方法来尝试从我的源(大)mp4 中提取音频并将其推送到我的较小的 mp4 中,但我似乎无法使这些程序中的任何一个正常工作。

我试过以下方法: 1) 使用以下方法从源中提取 PCM 音频:How do I extractor audio to mp3 from mp4 using java in Android? 2) 将 PCM 转换为 M4A,然后使用以下方法将 M4A 添加到较小的 MP4:https://github.com/tqnst/MP4ParserMergeAudioVideo/blob/master/Mp4ParserSample-master/src/jp/classmethod/sample/mp4parser/MainActivity.java

这是我最接近的方法,但音频真的很慢,而且与较小的 mp4 中的视频完全不匹配。

我还尝试了 "direct copy" 从一个 mp4 到另一个的变体:Concatenate multiple mp4 audio files using android´s MediaMuxer

这使得我的小 mp4 实际上比我的源 mp4 大(文件大小)并且它实际上并没有移动声音。

MediaMuxer 的 android 文档非常糟糕,我无法弄清楚我需要做什么才能让它工作。看起来这应该是一个非常微不足道的任务....

如有任何建议或建议,我们将不胜感激。

TIA

我最终只在这个解决方案中使用了 ffmpeg:

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