rstp 转hls_将RTSP流转为浏览器播放

最近在工作中接触到了一个需求,需要在网页上进行摄像头的实施直播。经过研究,决定采用FFmpeg转RTSP为RTMP流,然后通过SRS转发为HLS流供浏览器播放。

前提条件

Linux服务器一台(用于搭建SRS环境)

FFmpeg(用于讲RTSP流转为RTMP流)

SRS(用于将RTMP流转为HLS流)

EasyPlayer.js(用于在HTML中播放HLS流)

安装SRS

第一步 获取SRS。详细参考GIT获取代码

git clone https://github.com/ossrs/srs

cd srs/trunk

或者使用git更新已有代码:

git pull

第二步 编译SRS。 这一过程比较耗时间

./configure && make

第三步可根据自己情况配置,此处我们不进行第三步

第三步 编写SRS配置文件。详细参考[HLS分发]HLS]和HTTP服务器

将以下内容保存为文件,譬如conf/http.hls.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

# conf/http.hls.conf

listen 1935; #监听RTMP端口

max_connections 1000;

http_server {

enabled on;

listen 8080; #HLS服务端口

dir ./objs/nginx/html;

}

vhost __defaultVhost__ {

hls {

enabled on;

hls_path ./objs/nginx/html;

hls_fragment 10;

hls_window 60;

}

}

第四步 启动SRS。详细参考HLS分发和HTTP服务器

./objs/srs -c conf/http.hls.conf

第五步 测试安装

访问 服务器IP:你配置的HLS服务端口访问,看到下图就安装成功了!

安装FFmpeg

第一步 下载源码并解压。

wget http://ffmpeg.org/releases/ffmpeg-4.2.tar.bz2 #可在官网找到最新的版本

tar -jxvf ffmpeg-4.2.tar.bz2

第二步 安装FFmpeg。

cd ffmpeg-4.2

./configure

如果出现 nasm/yasm not found or too old. Use –disable-x86asm for a crippled build.需要先安装yasm !如果没报上面的错跳过这一步

异常处理 安装yasm !如果没报上面的错跳过这一步

apt-get install yasm

安装好yasm后重新执行命令 !如果没报上面的错跳过这一步

./configure

编译安装,编译过程有点慢

make

make install

第三步 测试安装。

输入 ffmpeg 命令,出现下图表示成功

下载EasyPlayer.js

git clone https://github.com/tsingsee/EasyPlayer.js.git

开始转码

第一步 通过FFmpeg讲RTSP流转为RTMP流并推送到SRS中。

ffmpeg -re -i rtsp://admin:12345@10.10.10.105:554(替换为你的RTSP地址) -vcodec copy -acodec copy -f flv -y rtmp://10.10.110.212:1935(替换成你自己的服务器IP和配置的端口)/live/livestream

浏览器播放

编写HTML并引入EasyPlayer-element.min.js

EasyPlayer

参数说明类型默认值video-url视频地址String–

video-title视频右上角显示的标题String–

snap-url视频封面图片String–

auto-play自动播放Booleantrue

live是否直播, 标识要不要显示进度条Booleantrue

alt视频流地址没有指定情况下, 视频所在区域显示的文字String无信号

muted是否静音Booleanfalse

aspect视频显示区域的宽高比String16:9

isaspect视频显示区域是否强制宽高比Booleantrue

loading指示加载状态, 支持 sync 修饰符String–

fluent流畅模式Booleantrue

timeout加载超时(秒)Number20

stretch是否不同分辨率强制铺满窗口Booleanfalse

show-custom-button是否在工具栏显示自定义按钮(极速/流畅, 拉伸/标准)Booleantrue

isresolution是否在播放 m3u8 时显示多清晰度选择Booleanfalse

isresolution供选择的清晰度 “yh,fhd,hd,sd”, yh:原始分辨率fhd:超清,hd:高清,sd:标清–

resolutiondefault默认播放的清晰度Stringhd

最终效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络运输层的概述,计算机网络_运输层

运输层协议概述从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络…

ble 连接成功后找不到服务_闷声发大财的BLE芯片龙头

来源:内容由半导体行业观察(ID:icbank)原创,作者:邱丽婷,谢谢。你有多久没使用过蓝牙功能了?随着Wi-Fi和快传软件的普及,蓝牙(Bluethooth)这一每部…

计算机管理关机在哪,电脑点了关机为什么却关不了

近期,一些网友留言说明明电脑已经按照正常步骤关机,但显示屏却关了,但是主机似乎还在运行,这时该怎么办?针对此疑问,下面小编和大家详细说明一下电脑点了关机却关不了的处理方法,感兴趣的用户一…

foreach lambda写法_Java8新特性之forEach+Lambda 表达式遍历Map和List

这是Java8系列的第二篇&#xff0c;今天来说一下Java8中forEach的简单使用。我们使用对比的方式来看应该会看得更加清楚,更能理解&#xff1a;一、遍历MapJava8之前的方式Map items new HashMap<>();items.put("A", 10);items.put("B", 20);items.p…

吉大计算机学院刘淑芬,刘淑芬-吉林大学计算机科学与技术学院

学术论文&#xff1a;主要代表性学术论文&#xff1a;[1]Chi Meng, Liu Shufen, Hu Changhong. Self-adapting routing overlay network for frequently changing application traffic in content-based publish/subscribe system. Mathematical Problems in Engineering,2014 …

python与机械教育初探_Python公开课-机械学习之手写识别

授课讲师讲师尹强职务高级讲师、项目经理多年互联网开发经验与授课经验&#xff0c;曾参与某知名家具电商网站、车友商城、物流系统的开发设计&#xff0c;善于使用多种技术解决技术问题和优化网站的性能和提高网站速度&#xff0c;开发经验丰富。擅长学习方式的培养和锻炼&…

工业计算机远程控制,基于SOCKET技术的计算机远程控制实现

摘要&#xff1a;时至今日&#xff0c;计算机网络已经成为了人类社会生活中必不可少的组成部分&#xff0c;其中计算机的远程控制系统更是为整个社会的进步起到推动作用。除了在工业自动化生产之外&#xff0c;计算机远程控制系统还广泛的应用于办公、技术支持等方面。在本文中…

efi分区咋移动到c盘里_如何移动的EFI系统分区

如何安全找回丢失数据的方法1. 下载并安装B计划数据恢复软件。2. 运行恢复软件&#xff0c;点击“深度扫描”。深度扫描是绕过文件系统直接从硬盘、U盘、SD卡等设备底层恢复数据&#xff0c;因此使用深度恢复能找回更多完整数据。同时我们要搞清楚物理硬盘和逻辑硬盘的区别。物…

东北农业大学考研计算机大纲,东北农业大学(专业学位)计算机技术研究生考试科目和考研参考书目...

考研真题资料优惠价原价选择东北农业大学(专业学位)计算机技术教材&#xff0c;也叫东北农业大学(专业学位)计算机技术考研参考书、指定书目等等&#xff0c;是考验专业课复习过程中最重要的资料。考研是一种针对性很强的考试项目&#xff0c;参考书目由报考院校的研究生院制定…

matlab 功率谱密度 汉宁窗_[振动与测试 2] 什么是PSD(功率谱密度)

上接前章&#xff08;数字信号处理的基本概念&#xff09;&#xff0c;今天给大家介绍下振动测试中最常见的一个概念PSD&#xff0c;即所谓的功率谱密度&#xff08;Power Spectral Density&#xff09;,以及其与Autopower&#xff08;自功率谱&#xff09;的区别。自功率谱现在…

gsm模块网站服务器,gsm模块是什么_gsm模块工作原理_gsm模块的应用

描述gsm模块是什么GSM模块&#xff0c;是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上&#xff0c;具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块具有发送SMS短信&#xff0c;语音通话&#xff0c;GPRS数据传输等基于GS…

exec go 重启_如何用 Go 实现热重启

热重启热重启(Zero Downtime)&#xff0c;指新老进程无缝切换&#xff0c;在替换过程中可保持对 client 的服务。原理父进程监听重启信号在收到重启信号后&#xff0c;父进程调用 fork &#xff0c;同时传递 socket 描述符给子进程子进程接收并监听父进程传递的 socket 描述符在…

计算机关闭窗口可以使用alt,禁止使用Alt+F4关闭窗口完整代码

声明&#xff1a;Private Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPositio…

df添加一行 python_Python为输出的数据绘制表格

在Python开发环境中&#xff0c;输出数据时没有表格、没有对齐&#xff0c;当数据较多的情况下看起来非常的凌乱&#xff0c;估计很多人像我一样为这个事情而烦恼。左图是我在PyCharm开发环境下输出的数据。下面我们通过Python的Texttable模块为数据添加表格框线&#xff0c;对…

交换机指定外部DHCP服务器,H3C交换机DHCP服务器设置步骤

H3C交换机DHCP服务器设置步骤一 DHCP服务器设置步骤如下&#xff1a;1)安装好Linux操作系统&#xff0c;我用的发行版本是CentOS 5.2。2)设置服务器的网络参数如下IP地址:192.168.6.7子网掩码:255.255.255.0网关:192.168.6.254DNS:192.168.6.103)安装DHCP服务CentOS和Red Hat …

echarts 折线上写数值_前端ECharts数据可视化图表案例与介绍

什么是ECharts&#xff1f;ECharts&#xff0c;一个使用 JavaScript 实现的开源可视化库&#xff0c;可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器(IE8/9/10/11&#xff0c;Chrome&#xff0c;Firefox&#xff0c;Safari等)&#xff0c;底层依赖轻量级…

计算机里的及格率和有优秀率怎么算,excel表格计算优秀及格率的教程

Excel中的优秀率具体该如何计算呢?下面是由学习啦小编分享的excel表格计算优秀及格率的教程&#xff0c;以供大家阅读和学习。excel表格计算优秀及格率的教程计算优秀及格率步骤1&#xff1a;打开EXCEL软件&#xff0c;使用手动创建一些基础数据&#xff0c;如图。完成该函数的…

concat合并的数组会有顺序么_超全的JS常用数组方法整理

前言常用数组方法汇总方法解析1&#xff1a;concat();2&#xff1a;join();3&#xff1a;pop();4&#xff1a;shift();5&#xff1a;unshift();7&#xff1a;reverse();8&#xff1a;sort();9&#xff1a;slice();10&#xff1a;splice();11&#xff1a;toString();12&#xff…

css如何插入动态图,css动态图(作业)

loading动画.box{width: 300px;height: 135px;border: 2px solid #000;margin: 200px auto 0;}.box p{text-align: center;width: 100%;}.box div{width: 30px;height: 70px;float: left;background-color: gold;margin: 15px;border-radius: 10px;}.box div:nth-child(1){back…

in ms sql 集合参数传递_mybatis从入门到精通,第三篇《动态SQL》,干货满满

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼接时要确保不能忘记添加必要的空格&#xff0c;还要注意去掉列表最后一个列名的逗号。利用动态 SQL&#xff0c;可以彻底…