如何在 Xamarin 中压缩来自 PCL 的视频

How to compress video from a PCL in Xamarin

我正在做一个类似 "Whatsapp" 的应用程序,我需要发送用户视频(来自 camera/gallery)。

我需要将视频从 ios 发送到 android 以及从 android 发送到 ios (将来 windows phone) .

我首先想到的是使用相机参数以低分辨率录制视频,但这对已经存储在 phone 中的录制视频没有帮助。

第二个想法是压缩视频文件,但我想这对于非常大的文件来说还不够。

第三种:实际压缩视频文件生成一个新文件,然后压缩后再通过网络发送。

这就是我在实际发送视频之前需要的:

  1. 压缩视频文件,生成一个可以很好播放的新文件 两个平台(ios 和 android)
  2. 将压缩过程设置为 aysnc(因为我不想阻止 UI 讨论了很长时间)
  3. 压缩它(这是简单的部分,仅供记录)

如有任何想法或帮助,我们将不胜感激

  1. 您最好还需要使用您的平台框架来利用现有的硬件编码支持(主要是 h.264 硬件编码)。 PCL 解决方案会消耗大量电池,因为它需要在 CPU 上 运行 只会给你带来糟糕的性能甚至最差的电池寿命。

  2. 这与 1 相关。只需使用您的平台本机方法异步执行框架方法。

  3. 跳过这部分。它将增加开销并禁止视频流在已经压缩的视频流上使用 zip 算法几乎没有任何好处。

只要确保您最终使用的是跨平台兼容的视频格式,例如 H264。