Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Nginx-rtmp、FFmpeg实现直播效果并在web页面播放「建议收藏」

Nginx-rtmp、FFmpeg实现直播效果并在web页面播放「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-10 08:04:39
发布于 2022-11-10 08:04:39
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

本文参考链接:https://blog.csdn.net/u011424614/article/details/113420000

前情提示:本文使用的是windows10系统

主要流程讲解

1.本文选择的路线是 视频文件–>FFmpeg–>nginx–>web播放 2.FFmpeg是一个强大的视频编辑软件,基本干视频,音频的多多少少都会用到这个软件。本文中FFmpeg的作用是将视频整成视频流的形式。 3.nginx的作用主要是将FFmpeg的视频流进行发布,供web进行访问。 4.web访问我选择了video标签,参考文章中还出现了一种div形式的,也是很好的。

第一步:下载FFmpeg

百度链接:https://pan.baidu.com/s/1isTdobOaDEcQXcNAs_f9fw 提取码:0ohe 官网:https://ffmpeg.org/download.html 安装教程就是解压完了然后配置一下环境变量就行了。path里面配到bin目录

第二步:安装nginx

这个更简单,下载完了解压一下,然后把rtmp的放在nginx的总目录下就行了,主要是配置文件的书写。 nginx百度链接:https://pan.baidu.com/s/1V9kcE8KmD8JdlI-fvXe0bQ 提取码:z70m nginx官网下载:https://nginx.org/en/download.html

rtmp模块github下载:https://github.com/illuspas/nginx-rtmp-win32/tree/master rtmp模块百度下载:https://pan.baidu.com/s/1gP165PFQOm4POgJFeT8jBw 提取码:4psx

nginx解压,把rtmp模块放在他的总目录下,下面是截图

在conf目录下新建一个nginx-rtmp.conf文件,把下面这段代码复制进去 下文中的注意事项,要建好 C://m3u8//liveC://m3u8//show 这两个文件夹,视频被直播时是会被处理的,这两个就是处理时需要用来存储处理材料的文件夹。当然,名字和位置你可以自己定义。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
worker_processes  1;
events { 

worker_connections  1024;
}
# # RTMP configuration
rtmp { 

server { 

listen 1935; # Listen on standard RTMP port
chunk_size 4000;
application livetv { 

live on;
# Turn on HLS
hls on;
hls_path C://m3u8//live;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
deny play all;
}
application file { 

live on;
# Turn on HLS
hls on;
hls_path C://m3u8//show;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
deny play all;
}
}
}
http { 

sendfile off;
tcp_nopush on;
# aio on;
directio 512;
default_type application/octet-stream;
server { 

listen 8080;
location /live { 

# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') { 

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types { 

application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias C://m3u8//live;
# root E://m3u8;
}
location /show { 

# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') { 

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types { 

application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias C://m3u8//show;
# root E://m3u8;
}
}
}

第三步:写好代码

此处我只写出我用的video那段,另外一种div的请到页首的参考链接里面学习

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>直播</title>
<link href="https://cdn.bootcss.com/video.js/7.6.5/alt/video-js-cdn.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/video.js/6.6.2/video.js"></script>
<script src="https://cdn.bootcss.com/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js"></script>
</head>
<body>
<video id="liveVideo" class="video-js vjs-default-skin vjs-big-play-centered" autoplay muted>
<source id="source" src="http://127.0.0.1:8080/show/stream.m3u8" type="application/x-mpegURL">
</video>
</body>
<script> var liveVideo = videojs('liveVideo',{ 
 bigPlayButton : true, textTrackDisplay : false, posterImage: false, errorDisplay : false, }) // let li = document.getElementById("liveVideo"); // li.style.display = 'none'; </script>
</html>

第四步:启动

个人建议启动顺序:nginx,web页面,ffmpeg 启动nginx:先到nginx文件夹中,打开cmd,使用下面命令 该命令是让nginx按照指定配置文件进行启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx -c conf/nginx-rtmp.conf

启动web页面:双击 启动ffmpeg:先到你要发布的视频文件夹中,打开cmd,使用下面命令 0169.flv替换成你的视频,其他的我建议你不要乱动,如果你是新手的话

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -re -i 0169.flv -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://127.0.0.1:1935/file/stream

第五步:看页面啊,还看我的博客干啥。

成功的请三连谢谢,没成功的出门左转,再见。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184808.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月7日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
搭建直播系统并实现h5播放rtmp
推流只能用rtmp协议,拉流可以使用rtmp协议和hls协议。rtmp协议时adobe公司开发的开放协议,hls是苹果公司推出的直播协议。我们使用nginx的rtmp插件来搭建推流服务器
我的小熊不见了丶
2020/07/09
8.1K0
搭建直播系统并实现h5播放rtmp
Nginx+FFmpeg打造自己的视频直播服务
现在很多项目都有视频实时播放的功能需求,例如监控,直播等,原始的摄像头采集的视频流协议一般都是 rtsp 协议,在旧版的浏览器中使用
ruochen
2021/11/24
6K0
ubuntu搭建推流服务器Nginx+rtmp
****前言**** 最近这两年直播平台及其流行,然而我呢? 也要玩玩推流服务器~~~ 实现服务器推流/PC客户端观看/浏览器客户端查看 ---- ****简介**** 对于Nginx的优点呢就不多说了,两句话: 1)并发量高 2)可负载均衡 重点谈谈rtmp吧! RTMP全称是Real Time Messaging Protocol(实时消息传输协议),rmtp是一种通讯协议。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种
AlicFeng
2018/06/08
4.2K0
开源流媒体服务器SRS学习笔记(2) - rtmp / http-flv / hls 协议配置 及跨域问题
对rtmp/http-flv/hls这三种协议不熟悉的同学,强烈建议先看看网友写的这篇文章科普下:理解RTMP、HttpFlv和HLS的正确姿势 。
菩提树下的杨过
2019/09/12
4.8K0
openresy+nginx-rtmp-module搭建点播直播服务器
一般点播或者直播服务器都是使用nginx-rtmp-module作为服务器,然后使用ffmpeg或者obs来进行推流,客户端使用rtmp、http-flv、hls或者dash协议拉取转码后的数据,进行播放。
golangLeetcode
2024/04/10
5390
openresy+nginx-rtmp-module搭建点播直播服务器
教你如何搭建自己的直播服务器-简易
 在项目中有没有遇见过要对接直播接口的需求?我想大家都是有的。但是怎么说呢,对接第三方的缺点也很明显,除去那不可避免的一些事故。最大的缺点就是要钱!!!要钱!!!要钱!!!
全栈程序员站长
2022/09/07
3.1K0
教你如何搭建自己的直播服务器-简易
nginx服务器添加rtmp模块支持视频推流
注:Nginx服务器默认安装完成,只添加nginx-rtmp-module模块和nginx-http-flv-module模块,如果没有安装nginx服务,请参考 nginx安装
请叫我师哥
2021/10/25
4K3
nginx服务器添加rtmp模块支持视频推流
流媒体HLS传输协议的直播加密播放解决方案
HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。
Tinywan
2024/03/11
3370
流媒体HLS传输协议的直播加密播放解决方案
如何开发一款 H5 小程序直播?
大前端这几年算是一个热词,对于前段来说如果不是大前端,技术相对来说就已经算是落后了。如果还停留在对ES6,Vue这些基本技能的学习只能说处于一个及格线。
Nealyang
2021/01/14
3.7K0
如何开发一款 H5 小程序直播?
Nginx-rtmp+ FFmpeg +Docker + vue.js 直播系统搭建
进入docker 开启推流服务器  docker run -it -p 1935:1935 -p 8000:80 --rm alfg/nginx-rtmp
星哥玩云
2022/07/27
2K0
Nginx-rtmp+ FFmpeg +Docker + vue.js 直播系统搭建
如何搭建自己的流媒体直播带货系统
首先,你需要选择一台高性能的服务器来承载你的流媒体直播系统。服务器的配置应该能够满足你预计的用户量和带宽需求。
Tinywan
2024/03/02
6010
如何搭建自己的流媒体直播带货系统
FFmpeg推流到Nginx并使用播放器播放
如今直播很火,下面就简单分享下我是如何直播的。必备工具:FFmpeg,Nginx,还有一个播放器。之前在实例解析中分享过如何用FreeSWITCH来做直 播,这次分享下如何用FFmpeg配合Nginx做直播。
杜金房
2020/12/21
1.9K0
Nginx学习之配置RTMP模块搭建推流服务
写在开始 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能。同时提供按需加载、自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求。 为更高效地连接用户与商家,小程序提供了实时音视频录制及播放组件。符合类目要求的小程序自助开通后,可自建或使用云服务,实现单向、双向甚至多向的音视频功能,如在线授课、远程咨询、视频客服,以及多人会议等。 2017-12-26微信小程序推送了这样一条消息,文档,代码也是简单的一笔带过,用户需要自建或使用云服务,实
小柒2012
2018/04/13
3.7K0
Nginx学习之配置RTMP模块搭建推流服务
快速学习-视频播放器解决方案
视频编码后要使用播放器对其进行解码、播放视频内容。在web应用中常用的播放器有flash播放器、H5播放器或 浏览器插件播放器,其中以flash和H5播放器最常见。
cwl_java
2020/01/14
4.7K0
快速学习-视频播放器解决方案
Nginx 搭建RTMP视频点播 直播 HLS服务器
安装Nginx --下载nginx-rtmp-module模块 git clone https://github.com/arut/nginx-rtmp-module.git --安装依赖 yum install -y wget gcc gcc-c++ make pcre pcre-deve zilib zlib-devel openssl-devel --下载Nginx源码包并解压 wget http://nginx.org/download/nginx-1.18.0.tar.gz tar zxvf
剧终
2020/12/15
5.2K0
Nginx 搭建RTMP视频点播 直播 HLS服务器
nginx实现最简单的直播平台
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
6450
nginx实现最简单的直播平台
搭建流媒体服务器 PingOS 平台搭建
近期由于工作原因需要更换公司原有 RTMP 协议推流,由于 Flash 插件今年年底就淘汰使用,并且一直在寻找一种并发好、延时低、同时便于回放功能的应用,在网上找到了基于Nginx + FFmpeg 推流的解决方案,可以实现 HLS 协议推流,看项目介绍可以实现 HLS+ 协议,这个工具安装比较便捷。
Meng小羽
2020/04/08
4.8K0
用FFmpeg+nginx+rtmp搭建环境实现推流
链接:https://pan.baidu.com/s/1c2LmIHHw-dwLOlRN6iTIMg 提取码:g7sj 2、解压文件:
JQ实验室
2022/02/09
1.4K0
网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件
使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来。下面我们来看一下具体实施步骤:
EasyNVR
2020/05/20
2.4K0
利用nginx搭建RTMP视频点播、直播、HLS服务器「建议收藏」
配置并编译nginx 使用nginx的默认配置,添加nginx的rtmp模块。
全栈程序员站长
2022/07/01
3.5K0
利用nginx搭建RTMP视频点播、直播、HLS服务器「建议收藏」
推荐阅读
相关推荐
搭建直播系统并实现h5播放rtmp
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验