首页 > 解决方案 > Android使mp4视频文件更小

问题描述

有没有办法快速实现 mp4 视频文件的大小缩减?比如说,我在设备摄像头上录制了一个全高清视频,我需要通过网络传输它,所以我需要使视频尺寸更小。

我已经阅读了一堆关于MediaCodec, MediaExtractor,MediaMuxer等的文档,但是所有的例子都像几百行代码!我不敢相信没有高级 API 可以做到这一点。

这是一个如何在 iOS 中完成的示例:

    let urlAsset = AVURLAsset(url: inputURL, options: nil)
    exportSession = AVAssetExportSession(asset: urlAsset, presetName: AVAssetExportPresetMediumQuality)
    exportSession.outputURL = outputURL
    exportSession.outputFileType = AVFileType.mp4
    exportSession.shouldOptimizeForNetworkUse = true
    exportSession.exportAsynchronously { // DONE! }

就是这样,6行代码!Android中是否有类似的东西?

标签: androidandroid-mediacodecmediamuxermediaextractor

解决方案


此时,您想要在 AOSP 中实现的目标没有更高的抽象级别。如果您不想尝试MediaCodec等,则可以使用一些库。

例如, Transcoder看起来是一个很有前途的项目。它使用我自己使用的策略。就像让编解码器失败而不是事先假设会发生什么。它还提供了许多非标准操作。

我不隶属于该项目,我自己也没有使用它


推荐阅读