跳转至

05 需求分析:如何确定在线视频平台的核心功能模块?

你好,我是Barry。

学习Python前后端开发,关键抓手就是项目实践。只有在真实项目中历练,你才能收获最有价值的提升。那什么样的项目适合我们呢?在我看来,项目在精不在多。就拿面试来说,面试官尤其关注的是你是否具备丰富的项目经验,以及对技术的掌握程度。因此,我们要在项目的精度和广度方面下功夫。

为了让你充分锻炼能力,拓宽自己的业务领域,我选择了当下热度非常高的在线视频平台。经历这样一个实操项目,你将接触更多元的功能开发,在工作里更加自如地应对各类项目。无论你是否做过项目开发都不要担心,跟着我的节奏学习,我会带你综合应用前后端技术,增强你的技术硬实力。

在项目实战开始前,这节课我们先来对视频平台进行需求分析和架构设计,规划好我们要实现一个怎样的平台,这是我们项目开发的必经之路。

功能架构梳理

只有对平台的需求足够了解,我们后期的开发工作才能顺利展开。我们应该如何设计平台的功能呢?

第一,我们要规划好平台做多“大”。这个大是一个空间单位,我们要考虑哪些功能可以满足用户的核心诉求,能给用户带来什么。

第二,明确每一个模块我们该做哪些功能。项目都是一步步迭代出来的,无法一次性做出一个“顶级”,这不现实,因为你总会遇到一些新的问题和新的需求,这一定是一个不断更新的过程。所以,你可以先考虑小范围地解决模块的基本功能诉求,之后再慢慢迭代升级。

第三,考虑好各个模块的关联性。各个模块是否需要有一些必然联系,能否让用户的体验更好?例如:在视频列表我是否可以直接发起直播?

你会发现这是一个活命题,你的选择有很多。这个问题可以回归到你想满足怎样的用户需求上来评估。所以,我们在前期设计阶段一定要留“口子”,避免之后花更多精力返工、重构,这也是让开发更高效的秘诀。

好,结合这3点我们一起来分析一下。

在我看来,视频平台的核心价值包括两个方面。其一,人们可以通过视频快速获取自己需要的内容,这种模式比其他媒介更加高效、便捷、更前沿;其二,视频平台也是用户展示自己的平台,大家都希望可以在平台上展示自己,所以肥沃的流量之地,一定会是必争之地。

我们作为这个平台的设计者,想让平台受到更多的喜爱和推崇,就需要保证平台资源丰富多彩,面向前面说的两方面价值,提供相应的功能支持。

下面是我为你整理好的平台功能模块架构图,结合当下各类视频社区的功能需求,我们要尽可能满足用户对视频平台的需求,这样才更具实用性。在这一部分我们主要考虑功能上的需求,至于技术应用方面,我们会在后面的课程中进行详细讲解,毕竟我们要一起实现这样一个平台,不能光考虑华丽的外表,还要充分重视技术的应用能力。

从上图可以看出,我们将平台功能需求分为四大模块,前三个模块很好理解,那为什么要将数据统计作为单独模块呢?

这是非常重要的一点。首先,数据中心服务的是平台的创作者,帮助创作者清晰观测自己作品的数据,有利于创作者更好地去把控作品,从而更好地去创作;其次,数据统计是多维数据的集合,需要综合计算众多关键指标才能得出最终的结果。

而指标的数据来源各不相同,需要从不同的维度考量,以单个视频为例,我们需要知道它一定周期内的播放量、点赞量、收藏量等信息,经过综合分析才能给到用户更精准的分析结果,所以把这个模块独立出来更合理。

清楚了数据模块的独立原因之后,我们接着来看看具体每个模块都有哪些功能。

视频模块功能梳理

视频平台的核心就是视频模块,毕竟用户在平台的核心诉求就是通过视频获取信息,以及成为创作者发布自己的视频,所以搭建好视频模块是非常重要的一步。那视频模块具体功能需求有哪些呢?

首先,我们从平台登录后的首页开始设计,这里需要用到视频分区。它的目的是将视频的类别进行分类展示,让用户更快锁定自己的热区。当然类别越多,就可以满足更多用户的需求。此外,首屏分区视频主要展示优秀的视频作品,这也是对创作者的一种激励和鼓励。

除了为高质量内容提供首页展示的机会,排行榜这个功能也很重要。它在推荐热榜内容的同时,激励着创作者们产出更优质的作品。

排行榜的功能价值与前面说的分区首屏视频有异曲同工之处,只是排行榜是根据全站进行排名的,而分区可能我们只关注垂直领域的。

现在,整体的规划已经有了轮廓,我们还得考虑视频在不同页面应该呈现哪些信息。接下来我们继续往下看,来到我们的视频详情页面。

对于每个页面展示的信息,我们需要分情况讨论。第一,在首屏界面,我们要呈现的信息有:播放量、点赞数、视频时长、视频标题、创作者;第二,当点击了视频详情之后,我们需要展示更全面的信息,其中包括作者信息、视频内容、播放器操作、收藏数、关注与点赞功能、评论功能、评论列表以及同类视频列表。

最后别忘了权限功能,其实它在我们日常项目开发中这也算是必备的功能,不同的权限可以看到不同的界面,操作不同的功能,拥有不同的数据。

在视频模块里,权限功能的应用很广泛。举个最直观的例子,用户是否需要在登录状态下观看视频。如果有了登录限制,好处是可以促进用户增长,但风险是可能降低用户体验,所以要做好权衡。

以上就是我们视频模块的所有功能设计与概览,有了这些功能,就能满足用户观看视频的需求。

用户模块功能梳理

除了围观欣赏视频,我们还希望用户主动输出,以创作者身份来发布自己的视频。

这就要说到与我们“亲密度”最高的用户模块了,就算你自己没开发过用户管理相关项目,你也一定使用过别人的平台吧?

所以这一模块你可以把自己代入用户的身份,想象一下通过我们的平台都要做哪些事儿:注册账号、编辑个人信息,然后再加入视频社区、浏览各种视频。好,现在我们切换回平台开发设计的视角,根据上述需求,我们继续规划用户模块的必备功能。

第一项就是登录注册模块。平台的用户量,一直算是对平台“好”与“坏”的一个考量方式,所以,你得让用户在简单的输入之后便可以注册和登录。用户在首次访问平台时,需要先注册自己的账号。完成注册之后,用户就能通过自己注册的手机号、密码进行平台登录,成为平台用户,享用平台的权限。

第二项是个人信息管理。每个人都希望彰显个性,充分展示自己。为了满足这个需求,就需要设计个人信息管理页面,个人信息包括头像上传、昵称、签名、性别、出生日期等等。另外还需要为用户提供登录密码的更改服务,以增强平台灵活性。

第三项是视频互动功能。就像我们刚才梳理功能时提到的,用户需要一个展示自己的平台,需要表达自己的观点。在视频平台不能互动,那不如不来。所以当用户观看平台视频时,就需要具备互动操作权限,包括对视频的操作、点赞、评论、收藏权限,让优秀的作品能涌现出来。同时创作者也能对自己生产的内容越来越有信心和动力,让平台更好地服务用户。

为了能够让平台内容越来越丰富,视频创作发布功能也相当关键。为了满足用户在平台内发布自己视频的需求,我们要提供上传素材的界面,方便用户用直接上传的模式发布自己的作品。

当用户完成视频标题、封面、视频上传、描述、类别选择、视频标签之后,就可以申请发布,让自己的作品在平台中发光发热了。

好了,现在基础的登录注册、信息编辑以及视频互动、发布都有了,我们再追加一个亮点模块,这也是现实中热度比较高的一个真实需求。

有了它,用户就能在平台内直接发起直播了。注意,这一环节需要对用户的身份进行验证,其中信息包括真实姓名、证件类型、证件号码、证件照片,完成申请之后,用户可以申请创建自己的直播,这里我们对用户不做硬性条件的考核,重点在于技术代码上的应用实践。

申请通过之后,用户才能在直播操作台发起自己的直播,直播信息中包括频道名称、频道类型、频道描述、设置是否生成回放、频道封面等。用户完成直播的所有配置后就能开启直播啦。

直播功能模块

接下来我们就来聊聊最让人关注的直播模块。我们在设计直播模块时,要明确它的核心在于用户该怎样发起直播,以及怎样去做直播视频的推流。

首先要有一个流程功能。为什么把流程叫一个功能呢?其实发起直播的过程,你就可以把它理解为一个完整流程,要有先做什么,再做什么,然后直播才能运转起来。

我们的平台上会支持用户在平台观看其他人的直播,同时用户自己也可以发起直播。这个流程具体是这样的:在完成信息验证、录入完成之后,我们在这里会进行信息审核,通过之后用户就具备了直播的权限。

用户有了直播权限之后,即可发起直播。这时平台采用的是借助OBS推流实现的直播方式。用户在点击直播按钮之后,平台中会返回服务器地址和串流码,通过对OBS进行配置发起直播推流,这样就可以在平台内直播了。

数据统计模块

最开始我们已经了解了为什么要把数据统计独立出来了,那这一模块在独立之后做了哪些事情呢?

数据统计模块,主要服务于创作者,它可以让创作者看到自己视频相关数据的分析和可视化。其中关键的信息包括点赞数、评论数、关注量、播放量等等。平台还会给用户的视频做个排行,用户能清晰知道自己哪一类型的内容更受用户青睐,方便规划自己之后的内容方向。

当然这一模块也是非常开放的,你一定还有更多的有趣的想法,在跟着课程实现了数据统计功能之后,相信你自己想要去实现一些指标的观测也是非常容易的。

到这里,我们完成了对平台所有功能模块的需求分析,平台功能全面,并且形成完整的闭环,也希望你通过这些梳理,对平台整体规划做到心中有数。

小结

这节课我们通过平台功能架构梳理,除了想让你对课程项目有更清晰的了解,还想让你明白,其实技术的学习过程就是组装的过程,我们可以随意组合,实现不同的需求平台。当然,前提是你对其中每一个“齿轮”都了如指掌。为此,我们对平台核心模块进行了详细的拆解。


其中最为核心的模块是视频模块,我们通过这一块的技术应用,可以解决各类与视频应用的工程问题。而用户模块在我们日常使用的应用软件中也相当通用。然后我们还追加了两个重要的特色功能,即“创作者数据中心”和“直播”。可能你之前很少接触到这部分内容,刚好可以借机拓展视野。

在日常的项目中,我们会发现很多数据可视化的应用,将数据清晰地呈现给用户。数据中心是整个平台的指南针,把这个模块开发出来,可以提升你的可视化应用开发能力。至于直播模块,它算是我们整个项目的亮点,到了后面直播模块实现的部分我们再详细讲解。

下节课,我会带你一起配置好环境,正式开始 Python前后端的探索之旅,敬请期待。

思考题

你觉得一个视频平台还应该具备哪些功能?这些功能能够解决用户的哪些需求呢?

欢迎你在留言区和我交流互动。如果这节课对你有启发的话,也欢迎你转发给朋友、同事,说不定就能帮他解决疑惑。

精选留言(8)
  • 安静点 👍(3) 💬(1)

    从整体设计上来看,我觉得这就是个小B站

    2023-05-05

  • 贾维斯Echo 👍(1) 💬(2)

    1.视频推荐模块,设置个人喜好,2.创作者粉丝画像画像生成.3 用户消息推送,点赞,关注等,4.视频弹幕功能,这些功能加起来这个项目应该就完整了,大家一起加油啊,奥利给!

    2023-05-08

  • 👍(1) 💬(2)

    自建直播平台如果加收费功能,怎么获取流量消费情况,比如cdn或者网络按照流量收费 对流量怎么控制?控制用户的占用的资源,避免一个客户直接搞垮整个服务 直播平台搭建完毕之后,怎么测试能顶住,多少客户同时观看,同时开直播。如果普通的网站访问可以用工具测试URL就行。

    2023-05-06

  • GAC·DU 👍(1) 💬(1)

    觉得还少一个推荐模块,无论是长视频平台还是短视频平台都不能缺失的功能。

    2023-05-03

  • 好困啊 👍(0) 💬(1)

    1. **评论与互动模块**: * 需求:用户在观看视频后可能会有想法和反馈,或者希望与其他用户进行交流。 * 功能:允许用户在视频下方发表评论、回复他人的评论、为评论点赞或反对。 2. **推荐算法模块**: * 需求:为用户推荐他们可能感兴趣的内容,提高用户的观看体验。 * 功能:根据用户的观看历史、搜索历史和互动行为,为用户推荐相关视频。 3. **搜索引擎优化模块**: * 需求:用户希望通过关键词快速找到他们想看的内容。 * 功能:提供强大的搜索功能,包括关键词提示、相关视频推荐等。 4. **播放列表与收藏夹模块**: * 需求:用户希望保存他们感兴趣的视频,以便日后观看。 * 功能:允许用户创建播放列表、添加视频到收藏夹。 5. **社交分享模块**: * 需求:用户希望将他们喜欢的视频分享给朋友或社交平台。 * 功能:提供分享按钮,允许用户快速分享到各种社交平台。 6. **字幕与翻译模块**: * 需求:跨文化的观众希望理解视频内容。 * 功能:提供字幕功能,并为热门视频提供多种语言的翻译。 7. **视频编辑与创作工具模块**: * 需求:内容创作者希望在平台上编辑和完善他们的视频。 * 功能:提供视频剪辑、滤镜、音效等编辑工具。 8. **广告与营销模块**: * 需求:商家希望在平台上推广他们的产品或服务。 * 功能:允许商家投放广告,提供广告数据分析功能。 9. **学习与教育模块**: * 需求:用户希望通过视频学习知识和技能。 * 功能:提供课程结构、进度跟踪、证书颁发等教育功能。 10. **云存储模块**: * 需求:内容创作者需要一个地方存储他们的原始视频文件。 * 功能:提供云存储服务,允许用户上传、下载和管理他们的视频文件。

    2023-08-27

  • ZENG 👍(0) 💬(1)

    在直播的模块中,还可以增加语音通话,刷礼物这样的需要,增加与用户的互动。

    2023-06-03

  • Geek_840593 👍(0) 💬(1)

    1、弹幕功能 2、会员充值续费功能

    2023-05-05

  • peter 👍(0) 💬(1)

    请教老师几个问题: Q1:“亮点模块”是什么意思? 文中有“好了,现在基础的登录注册、信息编辑以及视频互动、发布都有了,我们再追加一个亮点模块,这也是现实中热度比较高的一个真实需求”,这里提到的“亮点模块”是什么意思? 模块的名字叫“亮点模块”?还是用“亮点”来强调某个模块很重要? Q2:项目的终端是手机还是PC?前端用Vue开发,感觉是PC端,即用户通过PC访问网站,是这样吗? Q3:视频直播是用什么实现的?FFMPEG吗?

    2023-05-03