当前位置: 首页 > news >正文

当下流行的直播技术demo演示

nginx-http-flv-module(更新不是很频繁)
SRS: https://ossrs.net/lts/zh-cn/(独立官网,目前最新稳定版version5)

基于SRS搭建直播demo演示:

一、搭建流媒体服务器

参见官网:https://ossrs.net/lts/zh-cn/docs/v6/doc/getting-started
vmware12 虚拟机一台**centos7服务器,内网ip:192.168.1.4**
运行SRS服务器:

#docker 启动并进去容器观看log启动日志
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
# ctrl + p + q 不杀死方式退出容器

docker ps 查看启动成功:
在这里插入图片描述
云服务器注意放开涉及到的端口。

二 、模拟推流

使用ffmpeg推流模拟,演示环境windows10,下载ffmpeg6.0
ffmpeg:https://github.com/BtbN/FFmpeg-Builds/releases
视频文件:dajiang.mp4
cenos7的ip:192.168.1.4
在这里插入图片描述

# livestream是你自己命名的字符串,也就是直播间的id
# 192.168.1.4替换成你自己的服务器ip,云服务器注意开放相关端口
P:\ffmpeg\ffmpeg-2023-09-04-git-f8503b4c33-full_build\bin>ffmpeg.exe -re -i dajiang.mp4 -vcodec libx264 -acodec aac -f flv rtmp://192.168.1.4/live/livestream

三 、模拟拉流

rtmp协议浏览器flash播放,flash已经是过去式,我们使用ffplay.exe播放测试。
flv、hls(m3u8)均使用ffplay.exe播放测试。

  • 实际项目使用浏览器端哔哩哔哩开源的flv.js支持flv播放
  • 实际项目使用hls.js支持m3u8播放

rtmp协议播放测试(先开启推流,同时开启拉流):

# livestream是你自己命名的字符串,也就是直播间的id
# 192.168.1.4替换成你自己的服务器ip,云服务器注意开放相关端口
# -x 500 表示500像素的窗口播放
P:\ffmpeg\ffmpeg-2023-09-04-git-f8503b4c33-full_build\bin>ffplay.exe -x 500 rtmp://192.168.1.4/live/livestream

flv协议播放测试(先开启推流,同时开启拉流):

# livestream是你自己命名的字符串,也就是直播间的id
# 192.168.1.4替换成你自己的服务器ip,云服务器注意开放相关端口
# -x 500 表示500像素的窗口播放
P:\ffmpeg\ffmpeg-2023-09-04-git-f8503b4c33-full_build\bin>ffplay.exe  -x 500 http://192.168.1.4:8080/live/livestream.m3u8

hls(m3u8)协议播放测试(先开启推流,同时开启拉流):

# livestream是你自己命名的字符串,也就是直播间的id
# 192.168.1.4替换成你自己的服务器ip,云服务器注意开放相关端口
# -x 500 表示500像素的窗口播放
P:\ffmpeg\ffmpeg-2023-09-04-git-f8503b4c33-full_build\bin>ffplay.exe  -x 500 http://192.168.1.4:8080/live/livestream.flv
http://www.lryc.cn/news/264923.html

相关文章:

  • Zabbix自动发现并注册已安装agent的主机
  • Jtti:linux搭建开源ldap服务器的方法
  • Gazebo GUI模型编辑器
  • pycharm运行正常,但命令行执行提示module不存在的多种解决方式
  • GBASE南大通用GBase 8a ODBC的安装文件
  • 重新配置torch1.8 cuda11.1 torchtext0.9.0虚拟Pytorch开发环境
  • 【动画图解】一次理清九大排序算法!面试官问到再也不慌!
  • 组播地址段及其作用
  • Vue+ElementUI前端添加展开收起搜索框按钮
  • 速盾网络:sdk游戏盾有什么作用?
  • 理解BeEF的架构
  • esp32-s3训练自己的数据进行目标检测、图像分类
  • 华为设备VRP基础
  • 论文笔记 | ICLR 2023 WikiWhy:回答和解释因果问题
  • LC24. 两两交换链表中的节点
  • 使用redis-rds-tools 工具分析redis rds文件
  • C# Onnx yolov8 plane detection
  • Oracle定时任务的创建与禁用/删除
  • Asp.Net Core 项目中常见中间件调用顺序
  • 【JVM】一、认识JVM
  • [SWPUCTF 2021 新生赛]Do_you_know_http已
  • hadoop01_完全分布式搭建
  • 【每日一题】得到山形数组的最少删除次数
  • 2023年,为什么汽车依然有很多小毛病?
  • yocto系列讲解[实战篇]93 - 添加Qtwebengine和Browser实例
  • Python实验报告十一、自定义类模拟三维向量及其运算
  • 机器学习 | 聚类Clustering 算法
  • IntelliJ IDEA 2023.3 新功能介绍
  • 2. 行为模式 - 命令模式
  • Java智慧工地源码 SAAS智慧工地源码 智慧工地管理可视化平台源码 带移动APP