安装并使用srs直播

news/2024/12/24 1:42:23/

一、安装srs

sudo docker run -d -p 1935:1935 -p 1985:1985 -p 8080:8080 --name srs registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.34

二、vue展示

1、引入库

npm install --save flv.js

2、导包

import flvjs from "flv.js";

3、完整案例

<template><div><video ref="videoElement" controls autoplay muted></video></div>
</template><script>
import flvjs from "flv.js"export default {name: 'App',mounted() {this.$nextTick(() => {this.initVideo();});},methods: {initVideo() {const videoElement = this.$refs.videoElement;if (flvjs.isSupported()) {const flvPlayer = flvjs.createPlayer({type: 'flv',url: 'http://{ip}:8080/live/livehime.flv' // 注意使用 HTTP-FLV 协议});// 监听播放器的关闭事件flvPlayer.on(flvjs.Events.ERROR, (errorType, errorDetail) => {if (errorType === flvjs.ErrorTypes.NETWORK_ERROR) {// 直播关闭时弹出提示框window.alert('直播已结束');}});flvPlayer.attachMediaElement(videoElement);flvPlayer.load();flvPlayer.play();}}}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>
   restartVideo() {// 停止播放并销毁之前的播放器实例if (this.flvPlayer) {this.flvPlayer.pause();this.flvPlayer.unload();this.flvPlayer.detachMediaElement();this.flvPlayer.destroy();}// 重新初始化并播放视频this.initVideo();}

三、推流

推流地址为:rtmp://{ip}:8080/live
推流码为:zhk_123

四、srs配置

1、配置文件

cat /usr/local/srs/conf/srs.conf

在这里插入图片描述

1985地址是再打开nginx页面的:http://{ip}:{port}/console/ng_index.html#/connect

在这里插入图片描述
在这里插入图片描述

2、获取直播ts分片文件

cd /usr/local/srs/objs/nginx/html/推流直播的密钥前面的一截

zhk_123是你的推流密钥
在这里插入图片描述

ts分片文件可以再本地观看15秒一个分片,zhk_123.m3u8为你的ts信息

其中m3u8中结束的话#EXT-X-DISCONTINUITY为这个表示此次推流断了

3、合并上面的分片

编辑文件

vim filelist.txt

文件内容

file 'zhk_123-213.ts'
file 'zhk_123-214.ts'

使用ffmpeg命令

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

http://www.ppmy.cn/news/1080716.html

相关文章

寻找峰值

寻找峰值&#xff0c;OJ链接 一、描述二、方法一三、方法二四、总结 一、描述 给定一个长度为n的数组nums&#xff0c;请你找到峰值并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回任何一个所在位置即可&#xff0c;本题OJ链接 1、峰值元素是指其…

Greenplum-segment镜像分布策略

Greenplum作为一款基于PostgreSQL的OLAP分布式MPP架构&#xff0c;其内部的角色可以通过配置冗余来保证高可用性&#xff0c;无论是管理节点还是计算节点。管理节点可以为Master配置一个Standby来保证高可用&#xff0c;而计算节点则可以为每个Primary segment配置一个对应的Mi…

R3LIVE源码解析(7) — R3LIVE中LiDAR_front_end.cpp文件

目录 1 LiDAR_front_end.cpp简介 2 LiDAR_front_end.cpp程序解析 1 LiDAR_front_end.cpp简介 激光点云首先在LiDAR_front_end节点中提取特征点&#xff0c;将处理完的信息通过/laser_cloud_flat完成节点的发送出去&#xff0c;与FAST-LIO2相同R3LIVE也只用到了面特征作为ESI…

JavaScript安全性最佳实践:如何保护你的Web应用程序

在如今的数字时代&#xff0c;网页应用程序的安全性至关重要。恶意攻击者不断寻找机会来入侵你的应用程序。为了帮助你保护你的网页应用程序&#xff0c;我们将介绍一些关键的JS安全性知识点&#xff0c;并提供示例代码来演示如何实施它们。 1. 跨站点脚本 XSS攻击是一种常见…

Qt树形控件QTreeView使用——复选框的设置(setCheckable)(setTristate)(关联根的三态子节点两态)

参考代码 关于子节点 : 选中 /不选中 会影响 根节点的状态 关于根节点: 全选/部分全选/不选 会影响子节点的状态 根节点有三态setTristate ,qt5.6版本建议舍去,可通过判断item是否存在父节点判断当前点击是否是根节点,变相的判断是否是三态 demo下载地址&#xff1a;https://…

天地图pc端显示正常,app不能显示

问题&#xff1a;天地图在pc端显示正常&#xff0c;但是app端不能显示 原因&#xff1a;天地图官网区分服务端key和客户端key 更换一下key就可以了 app端需要申请服务端key, pc端和h5使用客户端key

Bert和LSTM:情绪分类中的表现

一、说明 这篇文章的目的是评估和比较 2 种深度学习算法&#xff08;BERT 和 LSTM&#xff09;在情感分析中进行二元分类的性能。评估将侧重于两个关键指标&#xff1a;准确性&#xff08;衡量整体分类性能&#xff09;和训练时间&#xff08;评估每种算法的效率&#xff09;。…

Vue组件之间进行传值的两种方式

在 Vue 中&#xff0c;组件之间传值是一个常见的操作&#xff0c;通常有两种方式来传递数据&#xff1a;props 和事件&#xff08;Event Bus&#xff09;。下面我将详细介绍这两种方式。 1. 通过 Props 传递数据 Props 是一种用于从父组件向子组件传递数据的方式。在子组件中…