Android视频录制从不入门到入门系列教程(一)————简介

时间:2022-08-26 20:50:33

一、WHY

Android SDK提供了MediaRecorder帮助开发者进行视频的录制,不过这个类很鸡肋,实际项目中应该很少用到它,最大的原因我觉得莫过于其输出的视频分辨率太有限了,满足不了项目的需求。

二、HOW

所以实际项目如果需要实现视频录制这个需求,一般只有两条路可以走:

  • 找第三方视频录制SDK
  • 自己实现

如果你的产品经理选择了第一条路,那么恭喜你,你会少接触到很多坑。说到这里,目前能用的第三方视频录制SDK我知道的就下面两家:

  • 趣拍,视频录制功能是免费使用的,SDK包也不太大。
  • Vitamio,SDK企业需付费使用。

采用第三方SDK的最大缺点应该就是UI上没办法*的控制。不过如果你的产品经理不想走第一条路,你还是应该好好劝劝它,第二条路成本是较高的。

这篇博文主要是讲第二条路的。

三、START

先说下要实现的功能:

  1. 实现短视频的录制
  2. 视频的分辨率支持自定义
  3. 支持触摸对焦和测光
  4. 非功能性需求包括控制视频文件的大小,以及视频帧率至少大于24FPS等

其实视频录制的大步骤并不复杂:图像采集 + 编码。非常不建议这两个过程都自己去实现。

本片文章采用Camera + FFmpeg来实现上述需求,其中Camera用来采集视频数据,FFmpeg用来编码视频数据。

好了,真的开始了。

Android视频录制从不入门到入门系列教程(二)————显示视频图像

Android视频录制从不入门到入门系列教程(三)————视频方向

Android视频录制从不入门到入门系列教程(四)————Camera Parameter

未完待续。

Android视频录制从不入门到入门系列教程(一)————简介的更多相关文章

  1. Android视频录制从不入门到入门系列教程(三)————视频方向

    运行Android视频录制从不入门到入门系列教程(二)————显示视频图像中的Demo后,我们应该能发现视频的方向是错误的. 由于Android中,Camera给我们的视频图片的原始方向是下图这个样子 ...

  2. Android视频录制从不入门到入门系列教程(四)————Camera Parameter

    Camera提供了一个叫做setParameters的方法帮助开发者设置相机的相关参数. 通过Camera的getParameters方法可以获取到当前为相机设置的相关参数. 下面简单介绍下,视频录制 ...

  3. Android视频录制从不入门到入门系列教程(二)————显示视频图像

    1.创建一个空的工程,注意声明下列权限: <uses-permission android:name="android.permission.CAMERA"/> &lt ...

  4. 利用FFmpeg玩转Android视频录制与压缩(二)&lt&semi;转&gt&semi;

    转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...

  5. 办公软件Office PPT 2010视频教程从入门到精通系列教程&lpar;22课时&rpar;

    办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...

  6. android视频录制、另一部手机实时观看方案

    最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...

  7. &lbrack;大数据从入门到放弃系列教程&rsqb;在IDEA的Java项目里&comma;配置并加入Scala&comma;写出并运行scala的hello world

    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...

  8. &lbrack;大数据从入门到放弃系列教程&rsqb;第一个spark分析程序

    [大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 **** ...

  9. Android拓展系列&lpar;9&rpar;--Android视频录制screenrecord命令

    在Android4.4 Kitkat上集成了一个比较好用的视频录制功能.参考:http://forums.androidcentral.com/android-4-4-kitkat/329674-ho ...

随机推荐

  1. Foundation -----&gt&semi;NSSet

    1.集合类     NSString *s1 = @"zhangsan";     NSString *s2 = @"lisi";     NSString * ...

  2. shiro错误总结

    今天在做spring+mybatis+springmvc+shiro的时候,报这个错,刚开始以为是shiro登录验证出错,后来,观看一下错误,发现在别的xml中写错了代码,shiro接连着报错,记录一 ...

  3. 关于 try catch catch

    catch 和 finally 一起使用的常见方式是:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源. public class abc { st ...

  4. wMy&lowbar;Python ~储存相关~

    str,int,list,tuple,dict 是类型调用之后会产生一个 实例 >>> brand=["李宁",'耐克','阿迪达斯','鱼C'] >&gt ...

  5. EDK中如何使用ISE中生成的IP

    EDK中如何使用ISE中生成的IP: 网上上有说这个的文章,但是很复杂,也就是添加bdd文件,其实这些都不需要自己操作的,我们可以在EDK中import 中添加ngc文件,ngc文件就是core ge ...

  6. 手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用

    开发手机APP和 H5 应用经常需要在本地和线上环境分开测试,一般想到的操作都是修改hosts,我也一直这么干的,但手机上修改hosts是需要 ROOT权限的,这样太过麻烦,还有变砖头的风险,而且有些 ...

  7. &lbrack;BZOJ1012&rsqb; &lbrack;JSOI2008&rsqb; 最大数maxnumber &lpar;ST表&rpar;

    Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插 ...

  8. C&sol;C&plus;&plus;&sol;C&num;&sol;Python日志框架

    俗话说,打得一手好log才是一个优秀的程序员. **打log的目的是为了迅速排错或在有争议时拿出证据证明自己.基于这个目的,log不在多,只要抓住一切对自己有利的信息,就可以了.** 日志框架列表 C ...

  9. 关于Unity中的帧动画组件的编写

    一.帧动画 1: 美术准备好一个连续动作的离散图片;2: 程序在准确的时间来切换这个图片;3: 优点: 简单,速度快; 缺点:资源占用相对过大; 二.frame_anim组件编写 1: 代码里面强制要 ...

  10. 将display设置为inline-block之后产生间隙然后换行问题的解决方法

    在我们会用display的时候,inline-block肯定不陌生吧,我今天在做项目的时候,用了inline-block,使a标签可以自定义宽度,但是随之而来的问题就是换行的BUG,如下图 特地加了一 ...