繁体   English   中英

Android处理视频,YCrCb帧到视频

[英]Android processing a video, YCrCb frames to video

我想通过更改像素的颜色来处理我在Android手机上录制的视频。 我知道如何进行我想要的处理,但我不知道将所有内容放在一起的最佳方法。

到目前为止,我能做的事情是:

  • 从视频中获取单帧作为YCrCb(YUV)
  • 修改YCrCb中的字节我想要的
  • 将YCrCb转换为RGB数组
  • 将RGB数组转换为位图

如何将所有内容放在一起并将其保存为可以在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM