​一年一度的毕业季就要到了,毕业设计算是大学生毕业前的最后一个大作业,尤其是计算机相关专业的毕业设计,通常要通过编程开发一个软件,比如开发一个图书馆管理系统,开发一个电商APP等等。

一个好的毕业设计可以给作者加分,可以评优,还能获得编程开发的实战经验,所以很有必要认真去做毕业设计。那么就计算机相关专业来说,怎样算是一个好的毕业设计呢?

以手机APP为例,毕业设计做APP就要结合行业发展趋势。现在5G技术已经很普及了,很多商用APP都在音视频方面深根细作,有短视频APP比如抖音、快手等等,有聊天APP比如微信、畅联等等,有播音APP比如酷狗、喜马拉雅等等,有视频剪辑APP比如剪映等等。那么毕业设计做个音视频相关APP无疑是个热门方向,不但自带高科技,还能拉满颜值。

适合毕业设计的音视频相关APP有以下三类:

一、包含视频通话功能的即时通信APP

即时通信APP就是聊天APP,包括常见的微信和QQ,聊天形式包括私聊(一对一)和群聊(多对多),聊天内容包括文本和图片。适用于毕业设计的即时通信技术包含SocketIO和WebSocket,相关的APP编程技术参见《Android Studio开发实战:从零基础到App上线(第3版)》第13章的“13.4 即时通信”,该书第13章同时给出了仿微信聊天项目,即“13.5 实战项目:仿微信的私聊和群聊”。

当然,仅仅图文形式的即时通信不够高科技,最好加上视频通话功能才显得遥遥领先。那么视频通话用到了WebRTC技术,WebRTC的APP编程参见《Android Studio开发实战:从零基础到App上线(第3版)》的“第20章 在线直播”,具体的实战项目参见该书第20章的“20.3 实战项目:仿微信的视频通话”。

对于毕业设计来说,这款即时通信APP的亮点在于用到了WebRTC技术,并通过WebRTC实现了视频通话的功能。

二、包含在线直播功能的短视频分享APP

短视频分享APP的使用率很高,不管是录制短视频还是播放短视频,都用到了音视频相关技术,有关的音视频技术参见《Android Studio开发实战:从零基础到App上线(第3版)》的“第14章 多媒体”,具体的实战项目参见该书第14章的“14.4 实战项目:仿抖音的短视频分享”。

当然,仅仅录制短视频或者播放短视频,本身不算太难的技术,最好加上实时直播功能才显得遥遥领先。那么直播技术又是一个庞大的知识体系,后端的流媒体服务器说明参见之前的文章《Linux环境安装ZLMediaKit实现视频推流》和《Linux环境安装SRS实现视频直播推流》,流媒体传输协议的说明参见之前的文章《利用RTMP协议构建电脑与手机的直播Demo》和《利用SRT协议构建手机APP的直播Demo》,更详细的直播技术文章可参考《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》。

对于毕业设计来说,这款短视频分享APP的亮点在于运用了直播技术,并通过RTMP/SRT协议实现了视频直播的的功能。

三、包含动画特效功能的视频剪辑APP

视频剪辑APP常用于配合短视频分享,比如剪映已成为自媒体从业者的必备工具,相关的剪映教程更是大卖。视频剪辑功能以FFmpeg为基础,详细的FFmpeg编程参见《FFmpeg开发实战:从零基础到短视频上线》一书,该书由浅入深讲解了音视频的理论基础与开发实战,其中第12章的“12.4  实战项目:仿剪映的视频剪辑”更是通过把FFmpeg集成到APP工程中实现了一款仿剪映的视频剪辑APP。

不要小看这个视频剪辑,因为各大视频剪辑软件有种种限制,并不总能如人意。比如国外的Adobe Premiere Pro,它仅支持把SRT字幕导入视频,不支持把ASS字幕导入视频,也就无法实现卡拉OK的动态歌词效果。再如国产的剪映,虽然提供了丰富多样的转场动画,但是部分高级转场动画需要付费使用(仅面向VIP用户)。所以如果能够自己打造一款不受功能限制的视频剪辑软件,无疑能让众人眼前一亮,那么掌握视频剪辑技术推荐学习《FFmpeg开发实战:从零基础到短视频上线》这本书。

对于毕业设计来说,这款视频剪辑APP的亮点在于能够给视频添加卡拉OK歌词字幕,并通过转场技术实现了定制转场动画的功能。

FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP的更多相关文章

  1. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  2. 树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口

    前言   上一篇说明了必须要使用研华自带的8G卡的系统,通过沟通拿到了相关的系统,购买的时候会带8GB的卡,请自行备份一份镜像.本篇对uno-220套件的相关研华配套的额外接口做测试,篇幅较长,重点讲 ...

  3. Java开发笔记(十四)几种运算符的优先级顺序

    到目前为止,我们已经学习了Java语言的好几种运算符,包括算术运算符.赋值运算符.逻辑运算符.关系运算符等基础运算符,并且在书写赋值语句时都没添加圆括号,显然是默认了先完成算术.逻辑.关系等运算,最后 ...

  4. .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)

    上一篇中说到了“泵”在编程中的作用以及一些具体用处,但没有实际demo,可能不好理解,这篇文章我分享一个UDP通信的demo,大概实现了类似“飞鸽传书”在局域网中文本消息和文件传输的功能.功能不全也不 ...

  5. Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件

    前言   上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤.   受限制   因为直接配置sample的vi比较麻烦 ...

  6. FFmpeg开发笔记(四):ffmpeg解码的基本流程详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重

    为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都 ...

  8. Chrome浏览器扩展开发系列之十四

    Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59      阅读:1361      评论:0      收藏:0    ...

  9. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  10. Python学习笔记(十四)

    Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...

随机推荐

  1. VIVO IQOO 5G 开关

    VIVO IQOO 5G 开关 在拨号盘输入*#*#2288#*#*,然后点击网络模式选择. -

  2. 容器docker技术

    我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机. 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统 ...

  3. Scrapy框架(九)--分布式爬虫

    分布式爬虫 - 概念:我们需要搭建一个分布式的机群,让其对一组资源进行分布联合爬取. - 作用:提升爬取数据的效率 - 如何实现分布式? - 安装一个scrapy-redis的组件 爬取到的数据自动存 ...

  4. 硬件开发笔记(十九):Altium Designer 21软件介绍和安装过程

    前言   AD硬件设计软件之一,前面说了allego,但是allego对项目的管理.原理图生成PCB,PCB反向原理图等方面比较复杂,对于一般的硬件(非多个高速电路),选择AD能够加大的节省开发工作量 ...

  5. C++与Unity C#交互

    C++与Unity C#交互 C++转C#小工具:https://github.com/jaredpar/pinvoke-interop-assistant C++ Custom.h #pragma ...

  6. spring-事务案例

    spring的案例场景 同一个事务中使用并发操作导致更新获取锁失败 @Autowired Service service1; @Transactional public void methodA(){ ...

  7. JSONPATH-阿里和jayway的实现测试

    业务业务的需要,所以想找一个从对象中获取属性的工具. 搜了搜发现由阿里和jayway的实现,又花费了一些时间了解和练习,总结了一些要点: 阿里的可能快一些,但考虑到完备性,也许选择jayway更好一些 ...

  8. 高通mm-camera平台 Camera移植

    高通Cam-X平台 Camera移植 注:此文档以在高通8916平台移植OV5648为例,给大家讲解Android SOC的底层Camera. Reference: https://blog.csdn ...

  9. MAPREDUCE中的序列化

    Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系....),不便于在网络中高效传输: 所以,hadoo ...

  10. Java中的栈、堆和常量池

    Java程序是运行在JVM(Java虚拟机)上的,因此Java的内存分配是在JVM中进行的,JVM是内存分配的基础和前提. Java程序的运行会涉及以下的内存区域: 寄存器:JVM内部虚拟寄存器,存取 ...