RTMP 入门指南

1. RTMP 基础概念​

  • ​核心角色​​:

    • ​推流端(Publisher)​​:将音视频数据推送到服务器的设备(如OBS、手机APP)。
    • ​服务器(RTMP Server)​​:接收推流并分发给观众的中间节点(如Nginx-RTMP、SRS)。
    • ​播放端(Player)​​:从服务器拉取流并播放的设备(如VLC、网页播放器)。
  • ​协议特点​​:

    • ​基于TCP​​:保证数据完整性,但延迟较高(3-5秒)。
    • ​默认端口​​:1935(推流和拉流均通过此端口)。
    • 2. 快速搭建 RTMP 服务器​
    • 以 ​​Nginx-RTMP​​ 为例(支持Linux/Windows):

      ​步骤1:安装 Nginx-RTMP​
      步骤2:配置 RTMP 服务​

      编辑配置文件 /etc/nginx/nginx.conf,添加以下内容:

    • rtmp {server {listen 1935;chunk_size 4096;application live {live on;record off;# 允许所有IP推流(生产环境需限制)allow publish all;}}
      }
      步骤3:重启 Nginx​
    • sudo systemctl restart nginx

3. 推流与拉流操作​

​推流端(以 OBS 为例)​
  1. ​下载 OBS​​:https://obsproject.com/

  2. ​配置推流地址​​:

    • 服务器:rtmp://你的服务器IP:1935/live
    • 流密钥:自定义唯一标识(如 test
    • 完整推流URL:rtmp://你的服务器IP:1935/live/test
  3. ​开始推流​​:点击“开始推流”。

​拉流播放(以 VLC 为例)​
  1. 打开 VLC → 媒体 → 打开网络串流 → 输入地址:
    rtmp://你的服务器IP:1935/live/test
  2. 点击“播放”。

​4. 进阶功能​

​转码与多协议分发​

在 nginx.conf 中添加转码配置:

application live {live on;exec ffmpeg -i rtmp://localhost:1935/live/$name-c:v libx264 -preset ultrafast -tune zerolatency -g 20 -r 30 -b:v 1000k -f flv rtmp://localhost:1935/hls/$name;
}application hls {live on;hls on;hls_path /tmp/hls;hls_fragment 2s;hls_playlist_length 6s;
}

通过HLS协议播放:http://你的服务器IP:8080/hls/test.m3u8

​录制直播流​
application live {live on;record all;record_path /var/rec;record_unique on;
}

5. 常见问题与解决​

​问题1:推流失败​

​问题3:浏览器无法播放RTMP​
  • ​原因​​:服务器防火墙未开放1935端口。
  • ​解决​​:
    sudo ufw allow 1935/tcp
    sudo systemctl restart nginx
    问题2:播放卡顿​
  • ​原因​​:网络带宽不足或服务器性能瓶颈。
  • ​解决​​:
    • 降低推流码率(OBS设置 → 输出 → 视频比特率)。
    • 使用CDN分发或升级服务器配置。
  • ​原因​​:现代浏览器已废弃Flash,需转用HLS/WebRTC。
  • ​解决​​:
    • 使用基于HLS的播放器(如Video.js、hls.js)。
    • 将RTMP流转码为HLS/DASH(参考进阶功能)。

      6. RTMP 的替代方案​

    • ​SRT(Secure Reliable Transport)​​:低延迟、抗丢包,适合不稳定网络。
    • ​WebRTC​​:超低延迟(<1秒),适合实时互动场景。
    • ​HLS/DASH​​:基于HTTP的流媒体,兼容所有浏览器和设备。

    • ​总结​

    • ​适用场景​​:传统直播推流、视频监控、简单直播系统。

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

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

相关文章

Java Stream流 常用方法

Map 修改 用于修改集合里的值 public void findData(){ArrayList<String> list new ArrayList<>();list.add("张三");list.add("李四");List<String> collect list.stream().map(s -> s "a").collect(Collectors.toLi…

巧记英语四级单词 Unit5-上【晓艳老师版】

count 数&#xff0c; counter n.计算器&#xff0c;柜台 a.相反的 数数的东西就是计算器&#xff0c;在哪数&#xff0c;在柜台里面数&#xff1b;你和售货员的关系就是相反的(一个买货&#xff0c;一个卖货account n.账户&#xff0c;账号 一再的数accountant n.会计 一再的…

Git多人协作与企业级开发模型

目录 1.多人协作一 2.多人协作二 3.远程分⽀删除后&#xff0c;本地gitbranch-a依然能看到的解决办法 4.企业级开发模型 4.1.Git的重要性 4.2.系统开发环境 4.3.Git 分⽀设计规范 1.多人协作一 ⽬前&#xff0c;我们所完成的⼯作如下&#xff1a; 基本完成Git的所有本…

大众点评 mtgsig1.2 分析 mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向过程 部分代码 params[yodaRead…

(三) Trae 调试C++ 基本概念

调试C基本概念 一、调试基础概念1.1 调试信息格式1.2 DWARF格式和PDB格式生成(图解)1.3.典型工具链和调试信息 二、各工具链深度解析1. Clang 与 G 的 DWARF 差异 三 调试工具3.1 调试工具3.2 调试插件(Trae) 一、调试基础概念 1.1 调试信息格式 格式类型适用系统存在形式DWA…

Flink部署与应用——部署方式介绍

引入 我们通过Flink相关论文的介绍&#xff0c;对于Flink已经有了初步理解&#xff0c;这里简单的梳理一下Flink常见的部署方式。 Flink 的部署方式 StandAlone模式 介绍 StandAlone模式是Flink框架自带的分布式部署模式&#xff0c;不依赖其他的资源调度框架&#xff0c…

【智慧城市】新中地GIS开发实训:基于 Vue 框架的武汉智慧旅游系统

首页 地球自转页 控制台页 景点信息页 天气预报页 路线规划页 查询页 AI问答页 热力图页 测量页 来源&#xff1a; 【智慧城市】新中地GIS开发实训&#xff1a;优秀学生项目作品&#xff08;58&#xff09;基于 Vue 框架的武汉智慧旅游系统

C++入侵检测与网络攻防之网络嗅探以及ARP攻击

目录 1.tcpdump基本使用 2.tcpdump条件过滤 3.wireshark介绍 4.wireshark的介绍 5.tcp握手挥手分析 6.telnet服务的介绍和部署 7.复习 8.telnet服务的报文嗅探 9.网络嗅探基础 10.arp协议的解析 11.arp攻击原理以及试验环境 12.arp实验以及防御方式 1.tcpdump基本使…

【数据可视化-28】2017-2025 年每月产品零售价数据可视化分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

系统与网络安全------弹性交换网络(3)

资料整理于网络资料、书本资料、AI&#xff0c;仅供个人学习参考。 STP协议 环路的危害 单点故障 PC之间的互通链路仅仅存在1个 任何一条链路出现问题&#xff0c;PC之间都会无法通信 解决办法 提高网络可靠性 增加冗余/备份链路 增加备份链路后交换网络上产生二层环路 …

广州 3D 展厅开启企业展示新时代​

为了突破传统展厅的局限&#xff0c;满足企业日益增长的展示需求&#xff0c;3D 展厅应运而生。3D 展厅是利用虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和三维建模等先进技术&#xff0c;构建出的一个高度逼真的数字化展示空间 。它打破了传统展…

C++初登门槛

多态 一、概念 多态是指不同对象对同一消息产生不同响应的行为。例如&#xff0c;蓝牙、4G、Wi-Fi 对“发送数据”指令有不同的具体实现。 二、核心理解 本质&#xff1a;通过基类指针或引用操作子类对象&#xff0c;实现运行时动态绑定。 表现形式&#xff1a; 接口统一&a…

文件上传详细版

文件上传造成因素&#xff1a; 文件路径过滤不严格&#xff0c;可能通过遍历目录来获得文件&#xff0c;也可能通过文件上传对重要文件案进行覆盖&#xff0c;还可能对文件拓展名和文件类型过滤不严格&#xff0c;可以上传任意文件到web公开目录上&#xff0c;进而远程控制服务…

华为网路设备学习-19 IGP路由专题-路由策略

一、 二、 注意&#xff1a; 当该节点匹配模式为permit下时&#xff0c;参考if else 当该节点匹配模式为deny下时&#xff1a; 1、该节点中的apply子语句不会执行。 2、如果满足所有判断&#xff08;if-match&#xff09;条件时&#xff0c;拒绝该节点并跳出&#xff08;即不…

智能指针之设计模式4

前面的文章介绍了使用工厂模式来封装智能指针对象的创建过程&#xff0c;下面介绍一下工厂类 enable_shared_from_this的实现方案。 4、模板方法模式 在前面的文章分析过&#xff0c;enable_shared_from_this<T>类是一个工厂基类&#xff0c;提供的工厂方法是shared_f…

【Nova UI】十、打造组件库第一个组件-图标组件(下):从.svg 到 SVG Vue 组件的高效蜕变✨

序言 在组件库开发的精彩旅程中&#x1f680;&#xff0c;我们已经成功打造并完善了图标组件体系&#xff0c;赋予其强大的功能和丰富的表现力&#x1f389;。然而&#xff0c;随着业务版图的不断扩张&#x1f310;&#xff0c;手动逐个编写 SVG Vue 组件的传统方式&#xff0…

Golang | 倒排索引

文章目录 倒排索引的设计倒排索引v0版实现 倒排索引的设计 通用搜索引擎 v.s. 垂直搜索引擎&#xff1a; 通用搜索引擎&#xff1a;什么都可以搜索&#xff0c;更加智能化垂直搜索引擎&#xff1a;只能搜自家数据库里面的内容&#xff0c;一般都带着搜索条件&#xff0c;搜索一…

Windows 10 上运行 Ollama 时遇到 llama runner process has terminated: exit status 2

在 Windows 10 上运行 Ollama 时遇到 llama runner process has terminated: exit status 2 错误&#xff0c;可能是由多种原因引起的。以下是逐步解决方案&#xff1a; 1. 检查 Ollama 服务状态 按 Win R 输入 services.msc&#xff0c;找到 Ollama 服务&#xff0c;确保其状…

PCI 总线学习笔记(五)

PCI 总线学习系列&#xff0c;参考自 技术大牛博客&#xff1a; PCIe 扫盲系列博文连载目录篇 书籍&#xff1a;王齐老师的《PCI Express 体系结构导读》 下面的文章中加入了自己的一些理解和实际使用中遇到的一些场景&#xff0c;供日后查询和回忆使用 PCI 总线定义了两类配置…

Spring Cloud Alibaba VS Spring Cloud

​​Spring Cloud Alibaba 与 Spring Cloud 组件对比​ ​​服务发现与注册中心​ 功能​​​Spring Cloud​​​Spring Cloud Alibaba​对比说明​​核心组件​EurekaNacosNacos 支持动态配置管理、健康检查更灵活&#xff0c;且提供 DNS 服务发现能力。​​​​健康检查​​…