Xamarin Android C#video大小调整

我需要将video发送到服务器。 video大小随机不同,有些可能是Meg,有些可能是900Mb ..如何将video调整为较小的尺寸?

我可以获得iOS示例,但没有找到任何Android版本。

很大程度上取决于你缩小它的意思:

  • 修剪video的长度(运行时间)
  • 更改播放速率(FPS)
  • 调整为较小的分辨率
  • 将比特率更改为较低比特率
  • 使用不同的编解码器或相同的编解码器重新压缩/转码video,但使用更高的压缩比。

Android的MediaCodec库可以改变很多东西,但不会给用户提供很多关于它如何做的选项:

  • 分辨率1080P,720P,480P,360P,QVGA,QCIF
  • BitRates 2Mbps,1Mbps,500Kbps,56Kbps
  • FrameRates = 30fps。 15fps的
  • FrameIntervals = 1,5,10

(这只是MediaCodec能力的快速抽样)

MediaCodec用法:

您使用Android MediaCodec进行“转码”的方式是使用解码器处理原始video(关闭屏幕),将这些帧传递给编码器(使用与原始编码选项不同的编码选项)并将结果保存到文件中…

Android上最流行的videoresize/转码/等等方法似乎是使用ffmpeg因为有大量可用选项以及应用程序的知名度。

有可用于Android的Java包装器(和几个C#包装器),我只通过Binding项目使用了基于Java的包装器。 (谷歌是你找到这些的朋友)。

使用FFmpeg时存在许多许可“问题”,您应该查看他们的许可证:

FFmpeg许可和法律注意事项