安卓系统在上传到服务器之前对视频进行压缩

8 人关注

在上传到远程服务器之前,我如何在安卓系统中压缩一个视频文件?我不是在寻找压缩文件,因为我认为这不会有什么帮助。我想压缩视频并以较低的比特率或分辨率重新编码。我们的想法是要从每个设备上得到一个标准的360х480,30 FPS的视频文件。这样我可以避免拥有更好的相机的用户被迫上传巨大的视频文件。

我知道iOS让强制视频文件分辨率变得相当简单。在iPhone 4上录制的10秒视频。

  • high (1280х720) = ~14MB = ~11Mbit/s
  • 640 (640х480) = ~4MB = ~3.2Mbit/s
  • medium (360х480) = ~1MB = ~820Kbit/s
  • low (144х192) = ~208KB = ~170Kbit/s
  • 有什么简单的方法可以在安卓系统中做到这一点吗?我是否需要找到一些外部库,让我重新编码视频文件,然后将其保存到SD卡(或覆盖旧的视频文件),然后上传该文件? 在这里主要是寻找一般的方向,而不是复制和粘贴的代码,尽管任何东西都是有帮助的。

    3 个评论
    这看起来确实很有帮助。我去看看。谢谢。
    @Kyle 如果你找到了解决方案,那么请把你的源代码放上来。
    android
    video
    compression
    Kyle Clegg
    Kyle Clegg
    发布于 2012-07-03
    5 个回答
    user1859771
    user1859771
    发布于 2016-09-07
    已采纳
    0 人赞同

    我遇到了一个类似的问题。我不得不在服务器上上传大小在5.4mb以内的视频。但由于不同手机的摄像头分辨率不同,出现了问题。这些是我选择的解决方案

    mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
    mediaRecorder.setVideoEncodingBitRate(690000 );
    

    Hope these will help you

    这就是我们要压缩任何视频的全部内容吗?
    VIVEK CHOUDHARY
    VIVEK CHOUDHARY
    发布于 2016-09-07
    0 人赞同

    我之前做的一个应用有这样的要求,即在压缩视频文件后发送。以下是我遵循的步骤,这些步骤很有效。

  • 压缩文件,使用 Silicompressor 安卓系统中的库。在一个后台线程上运行压缩任务。

  • 输出的文件格式将具有mime类型 "video/raw"。你可以在logcat中检查。因此,你需要在你的服务器中添加这种mime类型,以便成功上传压缩文件格式。

  • 完成这些工作后,尝试发送压缩文件,它应该可以工作。

  • 确保你上传到服务器的文件的mime类型被服务器接受。

    Sillicompressor在java(androi studio)中工作吗。因为这个库是在kotlin中,而我在android studio中使用Java。我应该怎么做?
    是的,它在java android studio中工作。在我使用它的时候,该库是在java中,也许他们现在已经迁移到kotlin中了。
    这个库有很多bug。
    FFmpeg是一个更好的选择。
    Osama Ibrahim
    Osama Ibrahim
    发布于 2016-09-07
    0 人赞同

    阅读关于这个图书馆,它是拥有全高清摄像头的新手机的最佳选择。

    为Java和Kotlin高质量地压缩视频

    嘿,伙计,我试过你的资料库。对于我的oneplus 7设备,压缩的视频只有音频。
    Kyle Clegg
    Kyle Clegg
    发布于 2016-09-07
    0 人赞同