我正在构建一个应用,该应用将图像流或图像阵列编码为Xamarin形式的MP4视频。我找不到适用于xamarin表单的任何内容,并且我已经尝试过这些方法:
1。 FFmpeg-(不适用于xamarin本机,需要.netCore(安装任何相关的NuGet软件包时出现错误)2。 libvlc-我认为它没有任何转换或编码功能。3。在google,此处和xamarin论坛中搜索了解决方案。4。 skiasharp-显然仅用于绘制2D,而不用于视频编码。5。 Nreco-需要许可证。6。 AviSharp / Aforge / Mediacodec / etc-仅用于iOS \ Android7。从头开始对MP4进行编码-注意工作量过多。
没有任何方法可以在每个特定于平台的视频上不对视频进行编码吗?
提前感谢!
正如您已经从研究中注意到的那样,在尝试执行此类操作时,您根本无法绕过特定于平台的层。从技术上讲,您可以在C#核心层上几乎完成所有工作,而只是文件加载和保存是特定于平台的,但这当然需要您自己编写编码代码。
我可能会通过以下方式进行处理:
Android上的FFmpeg
iOS上的AVAssetWriter
iOS具有由AVFoundation框架提供的用于创建,播放和编辑mp4(和其他)视频文件的现成支持。使用它是有道理的,因为它已经得到了充分的文档记录,测试和作为核心组件可用(没有麻烦的开源库许可等)。
同样,您应该在iOS项目上实现代码,并使用DependencyService从核心调用它。关于如何使用AVAssetWriter编码来自流或一堆图像的mp4文件,有很多示例。
[如果您想了解编码过程涉及哪些不同的类,也许看看Xamarin的PhotoFilter示例。