​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。

不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样万年不变的增删改查软件,也有电子商务APP那样炫动各种界面特效的美工佳作。那么就编程类大作业而言,怎样才算是让人耳目一新的毕业设计呢?

以手机APP为例,现在APP开发技术很成熟了,若想做一个鹤立鸡群的毕业设计APP,就要在代码中运用最新的开发技术,尤其是和5G时代密切相关的音视频技术,比如音视频的基础框架FFmpeg、火爆一时的RTMP/SRT视频直播技术、音视频实时通讯技术WebRTC等等。

对于毕业设计来说,应用了音视频技术的流行APP主要有以下三类:

一、具备视频剪辑功能的短视频分享APP

短视频分享APP早已成为国内外最流行的APP,不管是国内的抖音,还是国外的TikTok,都向广大用户提供了丰富多彩的视听盛宴。那么短视频的创作者正是来自于群众的自媒体人,他们以一部手机作为创作工具,再把录制好的视频各种剪裁编辑,最终输出上传制作好的短视频。

对于普通用户来说,他们只用到了短视频APP的观看功能,那么实现短视频的播放功能比较简单,具体参见《Android Studio开发实战:从零基础到App上线(第3版)》的“第14章 多媒体”,该书同时给出了短视频APP的实战项目,也就是“14.4 实战项目:仿抖音的短视频分享”。

对于自媒体从业者来说,他们还需要短视频APP的剪辑功能,也就是对视频文件进行切割、合并、添加字幕、添加背景音乐、添加转场特效等等编辑操作。这些视频剪辑技术的具体实现可参考《FFmpeg开发实战:从零基础到短视频上线》这本书,比如该书的第7章给出了添加字幕的实战项目“7.4  实战项目:卡拉OK音乐短片”,第9章给出了转场特效的实战项目“9.4  实战项目:翻书转场动画”,还有第12章介绍了如何给App工程集成FFmpeg,并给出了仿剪映APP的实战项目如“12.4  实战项目:仿剪映的视频剪辑”。

对于毕业设计来说,这款短视频分享APP的亮点在于集成了音视频框架FFmpeg,并基于FFmpeg实现了各种视频剪辑功能。

二、具备直播带货功能的电商购物APP

电商购物APP现在是人们日常生活中不可获取的实用工具,大到家具电器,小至各种日用品,都能在电商购物APP中解决。不过若想让丈母娘们痛快掏钱,往往需要卖家真人出镜,在直播间中口若悬河,或者载歌载舞,充分展示商品的外观及其效用,方能成功带货拉动销量。

倘若是简单的APP图文商品展示,可参考《Android Studio开发实战:从零基础到App上线(第3版)》第9章的“9.5 实战项目:电商首页”和第6章的“6.6 实战项目:购物车”,至于与后端服务器交互部分,则是另一块WEB开发范畴,其中Java后端编程可学习《好好学Java:从零基础到项目实战》一书。

然而直播带货功能用到的直播系统相关技术,那可就复杂得多。既包括后端的流媒体服务器,参见之前的文章《Linux环境安装ZLMediaKit实现视频推流》和《Linux环境安装SRS实现视频直播推流》;又包括流媒体传输协议,参见之前的文章《利用RTMP协议构建电脑与手机的直播Demo》和《利用SRT协议构建手机APP的直播Demo》,更详细的直播技术文章可参考《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》。

对于毕业设计来说,这款电商购物APP的亮点在于集成了直播相关技术,既运用了传统RTMP协议的视频直播,又运用了最新SRT协议的视频直播。

三、具备视频通话功能的同城生活APP

同城生活APP基于用户所在城市开展生活娱乐,涵盖了同城交友、同城美食、同城出行等方方面面。可是这些同城生活APP通常仅提供对方的电话号码,简单的通讯方式毕竟不如直观的视频通话那样令人信任,如果能给这些同城APP添加视频通话功能,对于提升商家的业绩不无裨益。

那么视频通话功能的难点在于给双方手机传输音视频的通话信号,其中可运用时新的WebRTC技术,要知道WebRTC在2021年1月被W3C和IETF发布为Web实时通信的正式标准。在手机APP中引入WebRTC可参考《Android Studio开发实战:从零基础到App上线(第3版)》一书的“20.2  给App集成WebRTC”,具体的实战项目参见该书第20章的“20.3 实战项目:仿微信的视频通话”。如果同城生活APP推出了视频通话功能,再也不用担心对方是不是持证上岗了。

对于毕业设计来说,这款同城生活APP的亮点在于集成了WebRTC技术,并通过WebRTC实现了视频通话的功能。

FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP的更多相关文章

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

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

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

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

  3. .Net开发笔记(十九) 创建一个可以可视化设计的对象

    阅读本篇博客之前需要了解VS窗体设计器的工作原理,详细可参见本系列博客(十).(十一).(十二).必须需要知道的一条结论就是:处于窗体设计器(Form Designer)中的任何组件(包含控件,下同) ...

  4. 论文阅读笔记四十九:ScratchDet: Training Single-Shot Object Detectors from Scratch(CVPR2019)

    论文原址:https://arxiv.org/abs/1810.08425 github:https://github.com/KimSoybean/ScratchDet 摘要 当前较为流行的检测算法 ...

  5. Java开发笔记(十九)规律变化的for循环

    前面介绍while循环时,有个名叫year的整型变量频繁出现,并且它是控制循环进出的关键要素.不管哪一种while写法,都存在三处与year有关的操作,分别是“year = 0”.“year<l ...

  6. 安卓开发笔记(十九):异步消息处理机制实现更新软件UI

    主界面代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andr ...

  7. Java开发学习(四十九)----MyBatisPlus更新语句之乐观锁

    1.概念 在讲解乐观锁之前,我们还是先来分析下问题: 业务并发现象带来的问题:秒杀 假如有100个商品或者票在出售,为了能保证每个商品或者票只能被一个人购买,如何保证不会出现超买或者重复卖 对于这一类 ...

  8. JBoss 系列四十九:JBoss 7/WildFly 中端口使用列表

    JBoss 7中端口使用列表 JBoss 7中所有配置都在一个文件中(standaone*.xml, domain.xml),和之前的JBoss相比JBoss 7用到的端口变少,我们将以表格的形式列出 ...

  9. R语言学习笔记(十九):字符串处理中预定义字符组(表格介绍)

    R中预定义的字符组 代码 含义说明 [:digit:]或\\d 数字; [0-9] [^[:digit:]]或\\D 非数字; 等价于[^0-9] [:lower:] 小写字母; [a-z] [:up ...

  10. FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)

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

随机推荐

  1. python 转换PDF 到 EPS

    from win32com.client.dynamic import ERRORS_BAD_CONTEXT as ebc from win32com.client import DispatchEx ...

  2. 树莓派安装OpenCv

    树莓派安装OpenCv 更换树莓派软件源 我们选择将树莓派的软件源切换到清华大学镜像站,据笔者亲测,通过此站可以顺利安装openCV. 切换软件源需要修改两个软件源配置文件的内容. 第一个需要修改是「 ...

  3. JS --函数进阶 --手稿

  4. weui weui-switch 开关取值,设置默认状态

    html <div class="weui-cell__ft"> <input class="weui-switch" type=" ...

  5. oeasy教您玩转vim - 16 跳到某行

    跳到某行 回忆上节课内容 上下行 向 下 是 j 向 上 是 k 上下行首 向 下 到行首非空字符 + 向 上 到行首非空字符 - 这些 motion 都可以加上 [count] 来翻倍 首尾行 首行 ...

  6. C练习_1005

    题自:题目 1009: [编程入门]数字的处理与判断_C语言网 题目描述 给出一个不多于5位的整数,要求 1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出各位数字,例如原数为321,应输出1 ...

  7. 题解:CF1985E Secret Box

    设长宽高分别为 \(a,b,c\). 由题意可轻松的得到以下求方案数公式. \((x-a+1)(y-b+1)(z-c+1)\) 然后根据这个公式模拟即可. AC Code

  8. 题解:CF1957A Stickogon

    CF1957A Stickogon 题意 题意十分简单,给予你 \(n\) 个棍子,问这些棍子可以构成多少个正多边形. 思路 说是可以构成多少个正多边形,所以我们可以用边最少的正多边形等边三角形来计数 ...

  9. 9、IDEA集成Github

    9.1.登录Github账号 9.1.1.打开IDEA的Settings界面 如上图所示,打开IDEA的 Settings(设置)界面. 9.1.2.使用账号密码登录(方式一) 如上图所示,在&quo ...

  10. 1、Git简介

    1.1.概述 Git 是一个开源免费的分布式版本控制系统,用于快速高效地管理各种小型或大型项目的代码. Git 不仅容易学习.占用空间小,而且性能快如闪电. Git 具有廉价的本地分支.方便的暂存区域 ...