FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机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的更多相关文章
- Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件
前言 上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤. 受限制 因为直接配置sample的vi比较麻烦 ...
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- .Net开发笔记(十九) 创建一个可以可视化设计的对象
阅读本篇博客之前需要了解VS窗体设计器的工作原理,详细可参见本系列博客(十).(十一).(十二).必须需要知道的一条结论就是:处于窗体设计器(Form Designer)中的任何组件(包含控件,下同) ...
- 论文阅读笔记四十九:ScratchDet: Training Single-Shot Object Detectors from Scratch(CVPR2019)
论文原址:https://arxiv.org/abs/1810.08425 github:https://github.com/KimSoybean/ScratchDet 摘要 当前较为流行的检测算法 ...
- Java开发笔记(十九)规律变化的for循环
前面介绍while循环时,有个名叫year的整型变量频繁出现,并且它是控制循环进出的关键要素.不管哪一种while写法,都存在三处与year有关的操作,分别是“year = 0”.“year<l ...
- 安卓开发笔记(十九):异步消息处理机制实现更新软件UI
主界面代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andr ...
- Java开发学习(四十九)----MyBatisPlus更新语句之乐观锁
1.概念 在讲解乐观锁之前,我们还是先来分析下问题: 业务并发现象带来的问题:秒杀 假如有100个商品或者票在出售,为了能保证每个商品或者票只能被一个人购买,如何保证不会出现超买或者重复卖 对于这一类 ...
- JBoss 系列四十九:JBoss 7/WildFly 中端口使用列表
JBoss 7中端口使用列表 JBoss 7中所有配置都在一个文件中(standaone*.xml, domain.xml),和之前的JBoss相比JBoss 7用到的端口变少,我们将以表格的形式列出 ...
- R语言学习笔记(十九):字符串处理中预定义字符组(表格介绍)
R中预定义的字符组 代码 含义说明 [:digit:]或\\d 数字; [0-9] [^[:digit:]]或\\D 非数字; 等价于[^0-9] [:lower:] 小写字母; [a-z] [:up ...
- FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
随机推荐
- 【ClickHouse】5:clickhouse集群部署
背景介绍: 有三台CentOS7服务器安装了ClickHouse HostName IP 安装程序 程序端口 centf8118.sharding1.db 192.168.81.18 clickhou ...
- windows安装PHP的redis
一定要先看vc版本和位 配置php的redis扩展 以php7.3 nts版为例,不同的php版本对应不通的redis扩展:下载扩展文件:https://windows.php.net/downloa ...
- JDBC第二天:防sql攻击
1 什么是SQL攻击 在需要用户输入的地方,用户输入的是SQL语句的片段,最终用户输入的SQL片段与我们DAO中写的SQL语句合成一个完整的SQL语句!例如用户在登录时输入的用户名和密码都是为SQL语 ...
- Odoo 基于Win10搭建基于Win10搭建odoo14开发环境搭建
实践环境 win10 Python 3.6.2 odoo_14.0.latest.tar.gz 下载地址: https://download.odoocdn.com/download/14/src?p ...
- Vue 基于vue-codemirror实现的代码编辑器
基于vue-codemirror实现的代码编辑器 开发环境 jshint 2.11.1 jsonlint 1.6.3 script-loader 0.7.2 vue 2.6.11 vue-codemi ...
- 最佳 AI 翻译工作流:全世界最信达雅的翻译
吴恩达老师提出了一种反思翻译的大语言模型 (LLM) AI 翻译工作流程--GitHub - andrewyng/translation-agent,具体工作流程如下: 提示一个 LLM 将文本从 s ...
- 【MySQL】MySQL 执行创建存储过程报错的解决方法
源码 创建使用while循环插入数据的存储过程 设置mysql分隔符为// delimiter // drop procedure if exists while1 ; create procedur ...
- Jmeter函数助手1-CSVRead
CSVRead函数适用于读取文件获取参数值. 用于获取值的CSV文件 | *别名:csv文件路径 CSV文件列号| next| *alias:读取列,0表示第一列,1表示第二列 1.首先我们需要一个文 ...
- 【Java】Collection 集合框架概述
Collection 集合框架概述 1.集合.数组都是为了存储数据而产生的 2.为什么需要集合?为了更灵活方便的存储数据,且集合能存储的容量比数组更大 3.存储的概念还停留在内存活动范围内,也只是短暂 ...
- 【Java】树状节点结构的数据
数据库的菜单,权限表是具有多层级结构,有ID和PARENT_ID两个关键性的字段 通过PARENT_ID和ID相等构建层级结构: 然后需要在Java中构建出层级的数据结构,然后输出成JSON返回给前端 ...