小编Roh*_*ark的帖子

Android - 在MediaRecorder,MediaCodec和Ffmpeg之间进行选择

我正在为Android开发视频录制和共享应用程序.该应用程序的规格如下: -

  • 从应用程序内部录制10秒(最大)视频(不使用设备的相机应用程序)
  • 没有进一步编辑视频
  • 将视频存储在Firebase云存储(GCS)存储桶中
  • 其他用户下载和播放所述视频

从研究中我做了SO和其他人的来源,我发现了以下内容(如果我错了请纠正我): -

这三个选项及其各自的特点是: -

1. Ffmpeg

  • 无论如何能够实现上述目标,并在SO等网站上有广泛的答案和解释
  • APK大小增加20-30mb(大型图书馆)
  • 在某些64位设备上运行不正常的风险

2. MediaRecorder

  • 大多数设备可靠且支持
  • 将以.mp4格式存储文件(除非转换为h264)
  • 更易于播放(无需解码)
  • 添加mp4和3gp标头
  • 根据此问题增加延迟

3. MediaCodec

  • 低级
  • 将需要MediaCodec,MediaMuxer和MediaExtractor
  • 以h264输出(不使用MediaMuxer进行播放)
  • 适合视频操作(但在我的用例中不需要)
  • 4.3之前的(API 18)设备不支持
  • 更难以实现和编码(我的意见 - 如果我错了,请纠正我)
  • 没有广泛的信息,教程,答案或样本(Bigflake.com是唯一的例外)

花了好几天后,我仍然无法弄清楚哪种方法适合我的特定用例.请详细说明我应该为我的申请做些什么.如果有一种完全不同的方法,那么我也对此持开放态度.

我最大的标准是视频编码过程尽可能高效,并且要存储在云中的视频应该具有尽可能低的空间使用率,而不会影响视频质量.

另外,如果您可以建议在Firebase存储中保存和分发视频的相应格式,我将不胜感激,并指出我建议方法的教程或示例.

先感谢您!很抱歉长时间阅读.

video android ffmpeg mediarecorder mediacodec

11
推荐指数
1
解决办法
3370
查看次数

标签 统计

android ×1

ffmpeg ×1

mediacodec ×1

mediarecorder ×1

video ×1