FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
一年一度的毕业季就要到了,毕业设计算是大学生毕业前的最后一个大作业,尤其是计算机相关专业的毕业设计,通常要通过编程开发一个软件,比如开发一个图书馆管理系统,开发一个电商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的更多相关文章
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- 树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口
前言 上一篇说明了必须要使用研华自带的8G卡的系统,通过沟通拿到了相关的系统,购买的时候会带8GB的卡,请自行备份一份镜像.本篇对uno-220套件的相关研华配套的额外接口做测试,篇幅较长,重点讲 ...
- Java开发笔记(十四)几种运算符的优先级顺序
到目前为止,我们已经学习了Java语言的好几种运算符,包括算术运算符.赋值运算符.逻辑运算符.关系运算符等基础运算符,并且在书写赋值语句时都没添加圆括号,显然是默认了先完成算术.逻辑.关系等运算,最后 ...
- .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)
上一篇中说到了“泵”在编程中的作用以及一些具体用处,但没有实际demo,可能不好理解,这篇文章我分享一个UDP通信的demo,大概实现了类似“飞鸽传书”在局域网中文本消息和文件传输的功能.功能不全也不 ...
- Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件
前言 上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤. 受限制 因为直接配置sample的vi比较麻烦 ...
- FFmpeg开发笔记(四):ffmpeg解码的基本流程详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重
为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都 ...
- Chrome浏览器扩展开发系列之十四
Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59 阅读:1361 评论:0 收藏:0 ...
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
- Python学习笔记(十四)
Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...
随机推荐
- BC5-牛牛学说话之-字符
题目描述 会说浮点数之后,牛牛开始尝试字符.输入一个字符,输出这个字符. 输入描述 输入一个字符,范围在 ascii 范围内 输出描述 输出这个字符 示例 1 输入:a 输出:a 解题思路 方案一 字 ...
- 重学前端 - react 项目第一节:创建react 项目
重学前端 - react 项目第一节:创建react 项目 简介:之前一直使用的都是 vue 全家桶开发项目,现在在新的项目上开始使用react开发. 现在开始在重新学习一下 react 相关技术. ...
- logback日志格式模板,基于TraceId搜索完整的请求链路日志
logback日志格式模板,基于TraceId搜索完整的请求链路日志 日志打印格式:(可以基于TraceId:4d484c2a110eae9d来搜索完整的请求链路日志2023-08-28 15:06: ...
- spring boot jpa 进行通用多条件动态查询和更新 接口
原因: jpa 没有类似于mybatis的那种 拼接sql的方式 想动态更新 需要使用 CriteriaUpdate的方式 去一直拼接,其实大多数场景只要传入一个非空实体类,去动态拼接sql 1.定义 ...
- FFmpeg GL-transition转场的简单使用体验
写在前面 最近在处理视频,遇到两个视频之间的转场用原生的 xfade写起来很痛苦,实现成本高,难度大:我这里主要用的FFmpeg,就想找一个插件专门干转场这个事:搜索了一翻后找到 GL-transit ...
- 解决Vue中使用history路由模式出现404的问题
背景 vue中默认的路由模式是hash,会出现烦人的符号#,如http://127.0.0.1/#/. 改为history模式可以解决这个问题,但是有一个坑是:强刷新.回退等操作会出现404. Vue ...
- Nuxt3 的生命周期和钩子函数(三)
title: Nuxt3 的生命周期和钩子函数(三) date: 2024/6/27 updated: 2024/6/27 author: cmdragon excerpt: 摘要:概述了Nuxt3的 ...
- Java 把多个音频拼接成一个
在Java中,将多个音频文件拼接成一个通常需要使用一些专门的音频处理库,因为Java标准库并不直接支持音频文件的合并.一个常用的库是JAVE2(Java Audio Video Encoder)或JL ...
- windows中运行nicegui官网内容
内容受到bilibili视频nicegui官网访问不了?教你本地部署文档,我写python终于有界面启发,其余部分由chatgpt协助生成. 1. 在本地新建目录如 nicegui_web 2. 从g ...
- ubuntu insight卸载
最近需要进行gdb调试,但感觉gdb命令行方式不够直观,于是按照教程下载安装了insight,期间各种出错和bug,好不容易安装完成,却发现安装后的gdb版本变成了6.8-1,与gcc版本不兼容. 无 ...