​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机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. Solo 开发者周刊 (第7期):Sora出世,或许又一行业将会消失?

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 sor ...

  2. Nginx 可视化配置神器NginxConfig

    Nginx 是前后端开发工程师必须掌握的神器.该神器有很多使用场景:比如反向代理.负载均衡.动静分离.跨域等等. 把 Nginx 下载下来打开 conf 文件夹的 nginx.conf 文件,Ngin ...

  3. 基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】

    感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 一. 前言介绍: 近年来,我国的社会经济迅猛发展,社会对于房屋租赁的需求也在不断增多.在房屋租赁企业中面对繁琐而 ...

  4. TIER 1: Crocodile

    TIER 1: Crocodile nmap 在前几次练习中,我们已经熟悉 nmap 扫描,我们在本次靶机中使用继续使用 nmap 进行扫描. 扩充我们的知识库:-sC 选项启用了 Nmap 的默认脚 ...

  5. java小技巧~修改对象的属性名

    今天联调的时候,有个功能是在初始化的时候将图片路径回显到vant组件的上传组件上,但是vant组件需要图片路径名叫url,而后端返给我的路径名叫filePath,而且是双层嵌套.一个个遍历老麻烦了,下 ...

  6. 「模拟赛」暑期集训CSP提高模拟4(7.21)

    很祭的一次比赛,啥也不会. 题目列表: A.White and Black B.White and White C.Black and Black D.Black and White A.White ...

  7. 2023/4/19 SCRUM个人博客

    1.我昨天的任务 初步了解了pandas库,对series和dataframe有了初步的学习使用 2.遇到了什么困难 对PYQT5的概念没有定义,准备进行学习 3.我今天的任务 学习了PYQT5的部分 ...

  8. 【Java】部门集合树状顺序展示

    一.需求效果: 表单的部门下拉选择时,可以展示部门的层级: 按照这个效果展示,但是不是树,还是原来的集合 二.实现方案: 用Java代码实现两个部分 1.展示Label效果处理 2.处理集合的树状排序 ...

  9. 为什么要使用工业仿真软件? —— CAE(Computer Aided Engineering)工程设计中的计算机辅助工程

    CAE技术: 引自: https://baike.baidu.com/item/CAE技术/18884456?fr=ge_ala 引自: https://www.mscsoftware.com.cn/ ...

  10. 最新版gym-0.26.2下Atari环境的安装以及环境版本v0,v4,v5的说明

    强化学习的游戏仿真环境可以分为连续控制和非连续控制两类,其中连续控制的以mujoco为主,而非连续控制的以Atari游戏为主,本文对gym下的Atari环境的游戏环境版本进行一定的介绍. 参考:[转载 ...