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许可和法律注意事项