【开源项目】集成环信IM开发的一款社交app---共享影院
项目介绍
该项目旨在嵌入当今已经较为成熟的视频播放行业,让用户可以创建一个观影房,与远端的其他用户进行视频通讯并且同时观看同一视频。做到相隔万里,依然可以零距离互动,感受视频所带来的乐趣。
项目结构
- share-cinema: 共享影院前端源码
- video-backend: 共享影院后端源码
- 演示视频.mp4: 共享影院功能演示视频
相关技术
- Agora Video SDK :实现高清、稳定、流畅的及时通讯
- 环信IM SDK :实现安全、简单的文字聊天
- Socket.io :实现聊天室中同步播放、暂停以及拖动进度条
- Celery + Flower : 实现后台的用户画像及模型更新
- 图计算 :生成用户推荐模型
作品背景
《共享影院》项目的设计灵感来自当下非常流行的一种视频形式:Reaction Video(反应视频)。反应视频,顾名思义,就是记录下人们对事情做出反应的视频。在表现形式上,画面由两个部分组成,包括观看的视频资源,以及观看者本人的反应。这有点像观看体育比赛时电视台邀请的实况解说。
2013年,美剧《权利的游戏》第三季热播,大量的油管网友录制自己或朋友看剧时的激烈反应,引发了全球观众的集体共鸣,反应视频由此走入大众视野。目前,这类反应视频已经在多个视频平台成为了一类发展成熟且庞大的分支。Youtube上最火的Reaction类频道,目前已累积90亿次播放量,收获了1970万订阅。
Reaction Video之所以会如此成功,有以下两部分的因素:
- 认同感:对于观众来说,他们希望在看视频的时候可以找到与自己有相同关注点的人,也期待着他人在看视频时会不会产生与自己相近的反应。
- 分享感:对于反应视频的制作者来说,他们希望与大家分享自己在看视频时的喜怒哀乐。
这两种心理因素同样适应于如今非常流行的弹幕文化,但是其中仍然存在一些缺点。对于反应视频的制作者,或者发送弹幕的人来说,他们发表了自己的观点,收获了分享的满足感,却很难得到及时的反馈;对于观众而言,他们看到了弹幕或视频制作者的反应,从中找到了认同感,却难以与其分享自己的感受。
同时我们注意到,从以前“看完视频写评论”到“看视频时发弹幕”、“直播互动聊天”等新型视频形式,随着现在人们生活节奏的加快,人们越来越需要在相同的时间内获得更多的信息。
因此,我们提出《共享影院》这个项目,从“视频+音视频通讯+文字聊天”的形式上,将认同感与分享感合二为一,为看视频的用户提供及时地、双向地、新颖地视频娱乐体验。
创新性
- 2020年,网易云音乐推出了《一起听音乐》,可以与好友一起同步听歌曲。
- 2020年,BiliBili推出了《一起看》功能,提供了同步观影,语音消息等功能。
- 2021年,抖音推出了《一起看》功能,提供和好友一起刷短视频的功能。
- 我们的《共享影院》不但提供了与好友一起看视频的功能、实现了聊天室内的同步观影,而且与这些产品不同的是,首次结合了视频通讯,将Reaction Video的理念加入进来。不仅可以让已经观看过视频的人,将感兴趣的视频推荐给好友,再次观看进而与好友更加深入的交流;还可以在赛事直播以及新品发布时,与好友第一时间面对面见证历史时刻。此外,我们还引入了“陌生人匹配”,在孤独的时候为用户推荐最符合用户画像的“熟悉的陌生人”。
一起看时进行音视频通讯
一起看时进行文字聊天
观看精彩影视作品
观看赛事直播与发布会
陌生人匹配
潜在商业价值
反应类视频所带来的市场需求
- 给用户带来认同感与分享感
- 为用户提供一个私密的共享空间
- 彼此之间的互动体验
文化推广,促进营销
该项目为用户之间提供了更多的讨论机会,这种“一起观看”的形式并不只停留在用户的首次观影,许多用户会为了与他人分享而将同一作品进行多次观看。同时,用户邀请和分享给好友视频资源,这对视频本身的内容营销有着颇多利好。可以快速带动视频内容的宣传,同时增加点播数,创造更多收益。
会员制度
部分电视剧、电影、综艺,需要开通会员才能观看。共同观影要求所有用户都满足权限才能进行观看。因此,在视频得到推广的同时,视频平台也将从中获益。
快速接入 《共享影院》的核心内容简单,可变性强
可以快速与已经成熟的视频平台对接,迅速投入商业化使用。视频资源不但可以是影视剧集,还可以是实况球赛、网络直播、新品发布会等各式各样的视频类型,上升空间大。
趣味性
借助音视频通讯来吸引用户观看视频。使用Agora Video SDK可以快速提升音视频通讯技术,提供美颜、变声、AR Face等多种玩法,增加视频生活的趣味性,提高用户黏性。
运行说明
前端
- 《共享影院》项目前端由vue.cli 4.x搭建,启动前请按以下步骤执行
- 安装依赖
npm install
- 本地启动
npm run serve
运行后通过 https://localhost:8020/ 进行访问
后端
- 《共享影院》项目后端由python3+ Flask框架搭建,运行前请按以下步骤操作
- 请在requirements.txt所在目录下执行
- 请在环信IM管理控制台手动创建一个名为superadmin的管理员用户,用于在后台创建聊天室
- 请在环信IM管理控制台手动将用户注册方式修改为开放注册,用于实现用户注册
pip install -r requirements.txt
- 添加声网RTC所需的相关配置
在app.py同一路径下创建config.py文件
文件中添加agora_token相关信息# 声网SDK配置
appid = ""
appsecret = ""#
环信IM配置
url = "http://a1.easemob.com/"
orgname = ""
appname = ""
clientid = ""
clientsecret = ""
- 启动后端
python app.py
操作指南
- 前后端均正常运行之后,使用https://localhost:8020进入主页
- 用户A选择主页中的任一视频,将自动创建观影房,观影房将有一个独立的房间号
- 用户B从主页左上角的输入框输入用户A的房间号,将进入用户A的房间
- 此时双方在观影房内的播放、暂停、拖动进度条均保持同步
- 观影房中右侧的三个按钮分别是:禁止麦克风、退出房间、禁止摄像头
注意事项
- 部分后台数据与模型储存在服务器上,为方便用户浏览项目中的全部功能,我们提供了本地运行版本,部分数据已经进行了模拟。
- 视频资源因空间较大,我们只上传了部分视频资源,方便演示播放功能。
- 项目中的图片以及视频资源均来源于网络。