TrimmerVideoView (仿照微信视频剪切&压缩功能)

前言:

github 链接: TrimmerVideoView

效果图:这里写图片描述

讲真,这个控件断断续续写了两个星期,到现在 0.0.X 的版本,也只能说是可以用了,但是功能还不够完善,而且包括效果都还没有完全达到 微信 的那种效果,不过之后会陆续完善,包括 剪切和压缩的功能。也算是对之前项目这块功能的一个总结,以及封装(为了以后会使用)。

遗憾:代码写到最后的时候发现有些东西,还是脱离了掌控,我原本的想法是希望组成整个 TrimmerVideoView 的子控件,由各自的 Control 来控制,我竭力避免耦合,希望代码逻辑一眼能看得懂,但是,写到最后,发现,还是不可避免的让它们之间互相有了依赖,甚至导致了代码的一定程度的混乱,这个大概就是传说中的代码内功范畴了,功力还是不够呀。


后续:

0.X.X 系列作为 TrimmerVideoView 的纯自定义控件完善 release 版本系列,不掺杂 视频剪切等其他一系列复杂的功能

1.X.X 系列作为 TrimmerVideoView 的 release 版本系列,掺杂 视频剪切等其他一系列复杂的功能,将使用 FFMEPG 作为视频处理的技术 (demo 已经完成,正在编写可用的扩展代码!)

2.X.X 系列作为 TrimmerVideoView 的 release 版本系列,掺杂 视频剪切等其他一系列复杂的功能,有别于 1.X.X 系列,将使用原生的硬编/解码处理视频(demo 学习中…原生的有好多限制!)

视频的处理和播放主要是视频的清晰度、观看流畅度方面的体验。在这方面来讲,可以采用“窄带高清”技术,在节省码率的同时能够提供更加清晰的观看体验,经过测试,同等视频质量下最高可以节省20-40%带宽。除了带宽之外,短视频内容的存储和CDN优化也尤为重要,通常我们需要上传到云存储服务器的内容是短视频内容和封面内容。 而CDN优化带给短视频平台的则是进一步的短视频首次载入和循环播放方面的体验。比如针对首播慢的问题,像阿里云播放器支持QUIC协议,基于CDN的调度,可以使短视频首次播放秒开的成功率达到98%,此外在循环播放时还可以边播放边缓存,用户反复观看某一短视频时就不用耗费流量了。 在Android系统当中,如果需要一台Android设备来获取到一个MP4这样的视频文件的话,主流的方式一共与三种:MediaRecorder、MediaCodec+MediaMuxer、FFmpeg。 MediaRecorder:是Android系统直接提供给我们的录制类,用于录制音频和视频的一个类,简单方便,不需要理会中间录制过程,结束录制后可以直接得到音频文件进行播放,录制的音频文件是经过压缩的,需要设置编码器,录制的音频文件可以用系统自带的播放器播放。 优点:大部分以及集成,直接调用相关接口即可,代码量小,简单稳定; 缺点:无法实时处理音频;输出的音频格式不是很多。 MediaCodec+MediaMuxer: MediaCodec 与 MediaMuxer结合使用同样能够实现录制的功能。MediaCodec是Android提供的编解码类,MediaMuxer则是复用类(生成视频文件)。从易用性的角度上来说肯定不如MediaRecorder,但是允许我们进行更加灵活的操作,比如需要给录制的视频添加水印等各种效果。 优点: 与MediaRecorder一样低功耗速度快,并且更加灵活 缺点: 支持的格式有限,兼容性问题 FFmpeg: FFmpeg(Fast forword mpeg,音视频转换器)是一个开源免费跨平台的视频和音频流方案,它提供了录制/音视频编解码、转换以及流化音视频的完整解决方案。主要的作用在于对多媒体数据进行解协议、解封装、解码以及转码等操作 优点:格式支持非常的强,十分的灵活,功能强大,兼容性好; 缺点:C语言些的音视频编解码程序,使用起来不是很方便。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值