[英]Android processing a video, YCrCb frames to video
我想通过更改像素的颜色来处理我在Android手机上录制的视频。 我知道如何进行我想要的处理,但我不知道将所有内容放在一起的最佳方法。
到目前为止,我能做的事情是:
如何将所有内容放在一起并将其保存为可以在Android上播放的视频? 我可以直接从YCrCb信息中获取信息吗? 或者我是否需要先转换为RGB或其他格式?
我不需要实时执行此操作,目的是录制视频,保存视频,然后处理视频并保存已处理的视频。 不过我的确有速度。 我可以使用他们的库来加快这个过程吗? 我知道Android提供了OpenGL的使用,我读到了关于ffmpeg但我不确定最佳路径。
如果有人能指出我正确的方向,我将不胜感激! = d
谢谢!! = d
从相机获得的帧是未压缩的。 这通常不是视频的存储方式,因为未压缩的帧太大而无法由播放器实时读取和显示。 相反,您希望对yuv或rgb帧进行编码,以使帧更小并且播放期间的I / O负载很小。
您应该使用的编码格式必须是您的设备可以在硬件中解码的格式,因为CPU中的解码也非常昂贵。 如今,如果您使用H.264作为视频和AAC作为音频,那么您应该很好,并使用MP4容器。 不幸的是,如果你在你的应用程序中包含H.264 / AAC编码器(甚至是开源编码器)并计划从中赚钱,那么你可能会从MPEG LA那里获得访问,因为他们都希望收集你。 264和AAC需要许可。 我相信如果您使用已经许可并安装在设备中的编解码器(例如相机应用程序用于记录的编解码器),则可以避免这种情况。 我不知道Android平台是否允许您访问相机编解码器。
至于库,我认为来自ffmpeg项目的libavcodec和libavformat是最完整的。 使用这些库,您可以编码H.264 / AAC / MP4文件,假设许可问题不会影响您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.