2017年度总结-2018总体规划

作为一个安卓工程师,2017年主要做了一些不务正业的音视频功能。加上去年的半年,整了一年半才上线了一个要死不活的app,上线才几天老板就给咔嚓了,说多了都是泪。
既然是个人总结就应该偏重总结下个人的得与失,没毛病啊,公司的总结就应该偏重对项目的贡献,个人发挥的价值。

2017年度总结——完成的项目

  • 短视频录制(基于硬编码),优化思考(以下功能总结一下可分为四个点:视频采集与预览、音频采集、编码、混合。等有空一定要仔细再整理一下代码,功能模块化)

    • 主要基于Camera/GLES,使用了开源项目GPUImage来实现了视频的预览、人像美颜、滤镜功能。
    • 使用了Android自带的Camera实现视频采集,从Opengl拿到滤镜渲染后的数据并使用MediaCodec编码后可生成视频文件。
    • 使用Android自带的AudioRecord实现音频采集,同样使用MediaCodec编码后可生成音频文件,使用MediaMuxer可混合音视频生成mp4文件。
  • 短视频编辑与录制(基于ffmpeg),优化思考(以下功能总结一下可分为五个点:视频采集与预览、音频采集、编码、解码、混合。相对于第一个项目需要在采集与预览的时候做功能扩充,编解码应该各有一个数据待处理队列,各类后期效果应该是在解码队列往编码队列去的过程中被做了相应处理)

    • 视频的预览、美颜、滤镜还是使用的Camera/GPUImage/GLES,但是流程与前面似乎有了些微差别。(具体差别待整理)
    • 视频录制过程会有不同倍速的选择,若为加速录制则计算相应的时间与速度对应关系,每隔相应帧数就丢弃掉一定帧数。若为减速录制则每隔相应帧数就重复插入之前的帧一次。音频的倍速设置通常是通过ffmpeg的滤镜来实现(ffmpeg的滤镜使用还有待深入理解)。
    • 视频编码应该是要支持两种编码方式、但是据传大家都在朝着硬编码的方式走,软编码都在被嫌弃。
    • 视频后期特效,视频的后期特效都涉及到了重新解码再编码的过程,主要特效有:片段加减速、片段重复(鬼畜)、视频剪辑、倒播;倒播的实现会要求在视频一开始被编码时设置关键帧间隔为1(每一帧都是关键帧),然后帧序列重新排列来实现。
    • 音视频合并封装成mp4,理论上使用MediaMuxer或者ffmpeg都可以,毕竟这一步的耗时相对很少。
  • 短视频社交项目,短视频相关的技术点应该在上两个项目总结的时候就都差不多了,这个项目剩下比较值得说的有两点:

    • 音视频的边下边播,用到了一个安卓的开源项目,具体名字可能是叫AndroidVideoCache,原理就是创建一个Socket代理请求,每次将视频播放的请求播到代理上,代理把请求转发到该视频服务器,视频服务器返回来的数据代理都保存在一个文件中,并同时写回给本地播放器。(这个项目详细细节也可以再整理一下。)
    • 即时聊天1:基于环信,没啥可说的,就是调用环信的api,换个api就没用的知识,纯粹被业务牵着鼻子走做出来的。
    • 即时聊天2:基于消息队列(kafka),客户端发送消息通过http短链接来发布到队列,同时客户端与服务端建立长链接来接收推送,kafka的具体实现不太清楚。这也是一个可以再研究的点。主要说说客户端的开发“android简单即时聊天sdk”,im的具体研究还得再看看xmpp类的项目或者直接研究下xmpp协议。

2018总体规划

2018年做一个不纠结的人,坚持做跟音视频相关的项目,谁劝都没用,不给干就走人。

  • 工欲善其事,必先利其器,针对android studio的专项研究
  • 完成遗留的问题,总结完以上三个项目(前两个为重点必须完成,第三个侧重kafka实现方式的理解)
    • 预计2月底之前完成
  • 真真项目尽量维持运行,改变自己拖拉的习惯,对于估期问题要慎重回答。
  • 英语学习,每周六、周日晚上7点到8点半。
  • 健身,晚上9点到10点,每周至少两次。
  • 看完《android内核剖析》
  • 每周起码花半小时在github上
  • 工作必须认真对待,事关饭碗的事放在所有事情第一位,建立一个自己的关于kugou/fanxing的相关文档系统,每周起码更新进入一篇文章,时间可以在每天10点以前的时间段,同时要养成在10点以前整理自己一天大概计划的习惯,可以预测也可以回顾,时间在半小时左右,做一个聪明的懒人。

总结:

  • 稍稍总结下以上所述,以上其实关于两个系统的建立,一个是代码系统,另一个是文档系统:
    • 代码系统需要整理从视频采集-视频预览-视频编码-视频解码-视频加减速-视频边下边播-音频采集-音频边下边播-音频加减速-音视频合成等等一系列流程,最终应该形成一套完整的集软硬编解码能力于一身的音视频编辑sdk,明年应该主要是建立并完善这个代码。
    • 文档系统基本与代码系统配合说明。
    • 具体代码与文档的结合手段可以先搜一搜网上别人的做法,找一个简单易操作,优雅又舒适的方式来操作。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSP-J(China Software Cup-Java组)是一个全国级的编程竞赛,每年都会举办复赛。复赛的题目通常在算法、数据结构、程序设计等方面,要求选手提供高效的解决方案。下面是对各年度CSP-J复赛真题的回答。 CSP-J复赛真题每年都有不同的主题和难,涵盖了各种计算机科学相关领域的知识。它们旨在考察选手在问题建模、算法设计和实现能力上的综合素质。 对于每一年的真题,选手都需要理解题目要求,分析问题特点,提出合适的解题思路。然后,他们需要实现算法,编写代码,并进行测试以确保解决方案的正确性和效率。最后,选手需要在规定的时间内,提交他们的解答。 CSP-J的真题经过层层筛选,旨在选拔出具有优秀编程技巧和创新思维的选手。参加CSP-J真题的选手必须具备扎实的编程基础知识,并能够迅速的学习和运用新的技术。通过参加CSP-J竞赛,选手不仅可以提升自己的技术水平,还能够锻炼团队合作和问题解决的能力。 CSP-J复赛真题的发布旨在鼓励学生独立思考和创新,培养他们在实际问题中运用计算机知识解决问题的能力。它不仅对参赛选手有很大的挑战,也对其他编程爱好者提供了学习的机会。 总之,CSP-J复赛真题是一项计算机编程竞赛,通过解答真实的问题,考察参赛选手在算法设计和执行能力上的综合素质。参加这项竞赛可以锻炼选手的编程能力,并提供展示才能的平台。它对于促进计算机科学领域的创新发展和人才培养起到了积极的促进作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值