前端实现直播功能_前端直播功能怎么实现

在这里插入图片描述

通过上图我们可以大致的看到。直播一共分为三个步骤

  • 视频/图像采集
  • 流媒体服务器(做推流拉流的中转服务器)
  • 拉流/播放

二、具体操作

流媒体服务器搭建

这里我们用的是nodejs+node-media-server来做我们的视频中间件。

你只需要建立一个文件夹,然后在这个文件夹做如下操作:

一、npm i node-media-server下载流媒体服务器包

二、创建一个app.js文件并输入以下内容

三、最后node app.js

服务成功启动之后,也可以在127.0.0.1:8000/admin访问流媒体服务的后台系统。

// app.js
const NodeMediaServer = require('node-media-server');

 const config = {
  // 接受推过来的流量
   rtmp: {
     port: 1935,
     chunk_size: 60000,
     gop_cache: true,
     ping: 30,
     ping_timeout: 60
   },
  // 转发推流的信息
   http: {
     port: 8000,
     allow_origin: '\*'
   }
 };
 
 var nms = new NodeMediaServer(config)
 nms.run();
 

推流

一、传输的流媒体传输协议

常用的流媒体传输协议有RTMP, RTSP,HLS和HTTP-FLV。

  • RTMP (可用于推流端和拉流端)
    Real Time Messaging Protocol,实时消息传输协议。RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。因为RTMP协议传输的基本是FLV格式的流文件,必须使用flash播放器才能播放。
  • RTSP (用于推流端)
    Real-Time Stream Protocol,RTSP实时效果非常好,适合视频聊天、视频监控等方向。
  • HLS (用于拉流端)
    Http Live Streaming,由Apple公司定义的基于HTTP的流媒体实时传输协议。传输内容包括两部分:1.M3U8描述文件;2.TS媒体文件。TS媒体文件中的视频必须是H264编码,音频必须是AAC或MP3编码。数据通过HTTP协议传输。目前video.js库支持该格式文件的播放。
  • HTTP-FLV (用于拉流端)
    本协议就是http+flv,将音视频数据封装成FLV格式,然后通过http协议传输到客户端,这个协议大大方便了浏览器客户端播放直播视频流。目前flv.js库支持该格式的文件播放。

二、推流工具

推流我们通过ffmpeg这个工具来进行推流,推给我们的中间件1935端口

下载:brew install ffmpeg

ffmpeg,它是一个用来记录、转换数字音视频,并将其转化为流的开源软件,通过它可以进行视频的采集封装成流,并推送到流媒体服务器,例如在mac上面安装了这个软件之后,可以通过它调用摄像头,并将摄像头数据封装成流后推送到流媒体服务器,这个过程就是推流。ffmpeg还可以推送本地的视频文件到流媒体服务器。

三、具体操作

新建一个命令行选择并输入以下命令开始推送资源(其中的ip就是你电脑自己的ip)

推送视频:xm0525$ ffmpeg -re -i 视频名称 -c copy -f flv rtmp://ip:1935/live/STREAM_NAME

推送摄像头:ffmpeg -f avfoundation -video_size 640x480 -framerate 30 -i 0:0 -vcodec libx264 -preset veryfast -f flv rtmp://ip:1935/live/STREAM_NAME

推送屏幕:ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://ip:1935/live/STREAM_NAME

拉流

新建一个index.html页面来接受推送过来的数据

我们通过flv.js来接受推过来的流量,注意里写的是转发过来的端口号8000端口

前端起一个http-server并访问自己的ip进入index.html页面

<!-- index.html -->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title></title>
  </head>


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/b158b1d4415346b68e0c80a23f12f912.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/42d487a3a26f66ca08c9fee6e1a54663.png)
![img](https://img-blog.csdnimg.cn/img_convert/6acaeaaab30a383ca32c032cef0f0a5e.png)
![img](https://img-blog.csdnimg.cn/img_convert/ed707706ba2e0f315add68bcc7f49558.png)
![img](https://img-blog.csdnimg.cn/img_convert/81620b45e63b081955e06a8435a483d6.png)
![img](https://img-blog.csdnimg.cn/img_convert/96fd2e5f39762246bf6455ee91364f6d.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)**
![img](https://img-blog.csdnimg.cn/img_convert/1223473139655bd6cdb002baf46a18ff.png)



### 文末

逆水行舟不进则退,所以大家要有危机意识。

同样是干到35岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。



这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师核心知识笔记》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。



**269页《前端大厂面试宝典》**

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。



![](https://img-blog.csdnimg.cn/img_convert/b98713ee557d94286de8afe404cb51d1.png)

**前端面试题汇总**

![](https://img-blog.csdnimg.cn/img_convert/1d691ca297c9016828aff783a701e065.png)

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
![img](https://img-blog.csdnimg.cn/img_convert/c8c6818974e034fa53a29cf765f37c31.png)

/1d691ca297c9016828aff783a701e065.png)

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-fe3OFOhl-1712905319589)]

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值