Windows搭建流媒体服务并使用ffmpeg推流播放rtsp和rtmp流

文章目录

  • 搭建流媒体服务
  • 方式一
    • 安装mediamtx
    • 启动meidamtx
    • 关闭meidamtx
  • 方式二
    • 安装ZLMediaKit
    • 启动ZLMediaKit
    • 关闭ZLMediaKit
  • 安装FFmpeg进行推流
    • 使用FFmpeg进行rtmp推流
    • 使用VLC播放rtmp流
    • 停止FFmpeg的rtmp推流
    • 使用FFmpeg进行rtsp推流
    • 使用VLC播放rtmp流
    • 停止FFmpeg的rtsp推流

本文主要是使用Windows搭建流媒体服务器并使用ffmpeg推流播放rtsp和rtmp流。其中搭建流媒体服务器的方式有两种,一种是使用mediamtx进行搭建,另一种是使用ZLMediaKit进行搭建。具体看文章后面的内容,这两种方式都会写到这篇文章中。使用ffempeg进行推流,使用VLC作为流媒体播放器。本文用到的所有素材都可以从这里找到,如果图方便的小伙伴,可以直接从这里下载。
通过百度网盘分享的文件:midiaserver.zip
链接:https://pan.baidu.com/s/14GY97zeb8JJDPXriXQNbvA
提取码:8778
–来自百度网盘超级会员V5的分享

搭建流媒体服务

以下两种方式,任选其中一种即可。需要注意的是,下面两种方式因为都是搭建流媒体服务的,所以两种方式不能同时启用,否则会造成端口号冲突,除非改了端口号。所以建议不修改端口号,在使用是只使用两种方式种的其中一种即可,确保另一个没有在启动状态。

方式一

安装mediamtx

安装mediamtx可以到官网地址:https://github.com/bluenviron/mediamtx/releases。这里下载的是mediamtx_v1.9.3_windows_amd64这个版本。

在这里插入图片描述

下载成功之后,解压
在这里插入图片描述

启动meidamtx

双击mediamtx.exe启动,双击之后,可能会有一个弹窗。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关闭meidamtx

直接关闭mediamtx启动时的黑色命令窗口即可。
在这里插入图片描述

方式二

安装ZLMediaKit

这个在官网中并没有直接提供对应的运行程序,需要自己单独编译。不过放心,本文章会直接提供我已经编译好的Windows版本的安装包,可以直接使用的。如果想要了解编译的过程,请看我的另一篇文章Windows下编译安装ZLMediaKit流媒体服务框架_zlmediakit windows-CSDN博客,这里面有对应的编译过程。

这里需要注意的是,如果上面已经启动了mediamtx,需要先关闭mediamtx,免得造成端口号冲突,导致启动ZLMediaKit失败。

启动ZLMediaKit

将对应的压缩包解压之后,进入的文件夹中。
在这里插入图片描述
在这里插入图片描述

出现如下界面,说明启动成功了
在这里插入图片描述
从图片中可以发现,有好多个端口号,都是对应流服务的端口号。如rtmp的端口号为1935,rtsp的端口号为554,当然这里也可以到config.ini文件中修改端口号为8554,具体修改可以看后面的图片,里面有修改方法,如果要修改的话,修改的时候记得保存一下,然后再重新启动。这里就不修改了,保持默认。
在这里插入图片描述

关闭ZLMediaKit

直接关闭ZLMediaKit启动时的黑色命令窗口即可。
在这里插入图片描述

安装FFmpeg进行推流

https://ffmpeg.p2hp.com/,这里有关于FFmpeg的详细介绍和下载方式。
在这里插入图片描述
在这里插入图片描述
这里会直接跳转到一个GitHub的下载地址,https://github.com/BtbN/FFmpeg-Builds/releases,从这里可以直接下载了,如下图所示。
在这里插入图片描述
下载完成之后,解压就可以直接使用了,解压之后找到对应的bin目录,等下进行推流需要用到这个目录。我们这里先放一个视频到这bin目录下,视频格式建议是Open H.26 + ACC (.mp4)或者ISO MPEG-4 标准 (.mp4)的格式,因为在FFmpeg转换的时候,我发现如果视频格式出现问题,FFmpeg是会提示的,到时候根据提示进行进行解决即可。这里直接使用提供的视频进行测试吧,这样方便一些。
在这里插入图片描述
这是放了视频之后的bin目录
在这里插入图片描述

使用FFmpeg进行rtmp推流

这里注意了,在进行推流前,得保证rtmp服务是启动着的,也就是上面mediamtx或者ZLMediaKit的其中一个是启动着的,保证对应的流媒体服务是正常启动的。我这里启动的是mediamtx这个流媒体服务。
在这里插入图片描述
从图片中可以看出,对应的流媒体服务已经启动了。之后就是使用FFmpeg进行推流了,找到FFmpeg对应的bin目录。
在这里插入图片描述
在这里插入图片描述
输入

ffmpeg -re -stream_loop -1 -i 测试视频.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/test

在这里插入图片描述
在这里插入图片描述
推流成功之后,我们可以查看上面启动的mediamtx窗口,可以看到对应流媒体服务的推流信息。
在这里插入图片描述

使用VLC播放rtmp流

找打对应的VLC安装目录
在这里插入图片描述
就不要更新了,不然后面启动就是一堆广告。
在这里插入图片描述
在这里插入图片描述
因为上面使用FFmpeg进行rtmp推流的命令是这样的

ffmpeg -re -stream_loop -1 -i 测试视频.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/test

所以这里的rtmp流的播放地址就是命令的后面那一段

rtmp://127.0.0.1:1935/live/test

在这里插入图片描述
在这里插入图片描述
点击播放之后,需要等几秒钟,才能出视频,因为在转换流中。
在这里插入图片描述
到这里说明适用VLC播放rtmp流成功了。至于停止播放rtmp流,直接关闭VLC即可。

停止FFmpeg的rtmp推流

找到上面步骤进行的推流窗口,直接关闭窗口就是了。
在这里插入图片描述

使用FFmpeg进行rtsp推流

这里注意了,在进行推流前,得保证rtsp服务是启动着的,也就是上面mediamtx或者ZLMediaKit的其中一个是启动着的,保证对应的流媒体服务是正常启动的。我这里启动的是mediamtx这个流媒体服务。
在这里插入图片描述
从图片中可以看出,对应的流媒体服务已经启动了。之后就是使用FFmpeg进行推流了,找到FFmpeg对应的bin目录。
在这里插入图片描述
在这里插入图片描述
输入

ffmpeg -re -stream_loop -1 -i 测试视频.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/video

这里需要注意的是,如果启动的是mediamtx这个流媒体服务,rtsp的端口号就是8554,如果启动的是ZLMediaKit这个流媒体服务,端口号就是554,这个在文章前一部分ZLMediaKit安装那里有提到。因为我这里启动的是mediamtx这个流媒体服务器,所以使用的是8554这个端口号。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
推流成功之后,我们可以查看上面启动的mediamtx窗口,可以看到对应流媒体服务的推流信息。
在这里插入图片描述

使用VLC播放rtmp流

找打对应的VLC安装目录
在这里插入图片描述
就不要更新了,不然后面启动就是一堆广告。
在这里插入图片描述
在这里插入图片描述
因为上面使用FFmpeg进行rtsp推流的命令是这样的

ffmpeg -re -stream_loop -1 -i 测试视频.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/video

所以这里的rtsp流的播放地址就是命令的后面那一段

rtsp://127.0.0.1:8554/video

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

点击播放之后,需要等几秒钟,才能出视频,因为在转换流中。
在这里插入图片描述
到这里说明适用VLC播放rtsp流成功了。至于停止播放rtsp流,直接关闭VLC即可。

停止FFmpeg的rtsp推流

找到上面步骤进行的推流窗口,直接关闭窗口就是了。
在这里插入图片描述

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

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

相关文章

Polybase要求安装orcale jre 7

在安装SQL SERVER时,遇到以下情况:polybase要求安装orcale jre 7更新 51或更高版本 不想安装JDK7。可通过不安装polybase的功能来实现下一步的安装。 1. 点击上一步,回到功能选择的设置界面中。 2. 然后在功能选择窗口中,取消勾选…

深入理解计算机系统 3.7 缓冲区溢出

3.7.1 数据对齐 许多计算机系统对基本数据类型的合法地址做出了一些限制,要求某种类型对象的地址必须是某个值K(通常是2、4或8)的倍数。这种对齐限制简化了形成处理器和内存系统之间接口的硬件设计。例如,假设一个处理器总是从内存中取8个字节&#xff…

代码随想录刷题记录(二十七)——55. 右旋字符串

(一)问题描述 55. 右旋字符串(第八期模拟笔试)https://kamacoder.com/problempage.php?pid1065字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数&…

QT打包应用程序文件步骤

QT应用程序(.exe)打包复制到其他电脑 在QT程序在自己电脑编译好了后,需要打包给其他人。这里介绍一下详细步骤: 确定编译器 搜了很多相关的打包教程,但是还是会出现“应用程序无法正常启动(0xc000007b)”这类错误。经过…

我谈维纳(Wiener)复原滤波器

Rafael Gonzalez的《数字图像处理》中,图像复原这章内容几乎全错。上篇谈了图像去噪,这篇谈图像复原。 图像复原也称为盲解卷积,不处理点扩散函数(光学传递函数)的都不是图像复原。几何校正不属于图像复原&#xff0c…

10款音频剪辑推荐!!你的剪辑好帮手!!

在如今的数据化浪潮中,工作已经采用了线上线下相结合。我的工作就需要借助一些剪辑工具,来实现我对音频工具的剪辑。我初次接触到音频剪辑也是因为工作需求,从起初我只是一个音频剪辑的小白,这些工具的协助。吸引着我。对于这些工…

Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本v9版

Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本 Shell脚本源码地址: Gitee:https://gitee.com/raymond9/shell Github:https://github.com/raymond999999/shell脚本可以去上面的Gitee或Github代码仓库拉取。 支持的功能和系统&am…

Scrapy搭配Selenium爬取豆瓣电影250排行榜动态网页数据

参考CSDN博客:https://blog.csdn.net/qq_43213783/article/details/113063557 2024年11月11日实现。 创建movie_douban爬虫项目: scrapy startproject movie_douban 进入spiders: cd movie_douban/movie_douban/spiders 创建doubanMovieSpi…

想定制RK3566/3568安卓11开机logo吗?触觉智能Purple Pi OH来教你

本文介绍瑞芯微RK3566/RK3568主板/开发板安卓Android11系统替换开机Logo的方法,使用触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566芯片,4核1.8Ghz1T算力NPU;类树莓派设计,Laval社区主荐,已适配全…

【AliCloud】ack + ack-secret-manager + kms 敏感数据安全存储

介绍 ack-secret-manager支持以Kubernetes Secret实例的形式向集群导入或同步KMS凭据信息,确保您集群内的应用能够安全地访问敏感信息。通过该组件,您可以实现密钥数据的自动更新,使应用负载通过文件系统挂载指定Secret实例来使用凭据信息&a…

网页设计平台:6个技术亮点

想要创建个人或商业网站来分享知识或推广商品吗?这篇文章将为你介绍6个免费的网页制作平台,帮助你即使没有编程基础也能快速、轻松地搭建出专业且引人注目的网站。让我们一起探索这些平台,发现它们的特色和优势。 即时设计 即时设计是一个云…

构造,CF 2029D - Cool Graph

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 D - Cool Graph 二、解题报告 1、思路分析 我们对每条 <u, v>&…

uniapp—android原生插件开发(1环境准备)

本篇文章从实战角度出发&#xff0c;将UniApp集成新大陆PDA设备RFID的全过程分为四部曲&#xff0c;涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程&#xff0c;轻松应对安卓原生插件开发与打包需求&#xff01; 项目背景&#xff1a; UniApp集成新大陆P…

第2章2.3立项【硬件产品立项的核心内容】

硬件产品立项的核心内容 2.3 硬件产品立项的核心内容2.3.1 第一步&#xff1a;市场趋势判断2.3.2 第二步&#xff1a;竞争对手分析1.竞争对手识别2.根据竞争对手分析制定策略 2.3.3 第三步&#xff1a;客户分析2.3.4 第四步&#xff1a;产品定义2.3.5 第五步&#xff1a;开发执…

常见计算机网络知识整理(未完,整理中。。。)

TCP和UDP区别 TCP是面向连接的协议&#xff0c;发送数据前要先建立连接&#xff1b;UDP是无连接的协议&#xff0c;发送数据前不需要建立连接&#xff0c;是没有可靠性&#xff1b; TCP只支持点对点通信&#xff0c;UDP支持一对一、一对多、多对一、多对多&#xff1b; TCP是…

突破性能瓶颈,几个高性能Python网络框架,高效实现网络应用

引言 随着互联网和大数据时代的到来&#xff0c;高性能网络应用的需求日益增加。Python作为一种流行的编程语言&#xff0c;在高性能网络编程领域也具有广泛的应用。本文将深入探讨基于Python的几种高性能网络框架&#xff0c;分析它们各自的优势和适用场景&#xff0c;帮助开发…

中国智能网联汽车技术规程(C-ICAP-2024版)之基础行车辅助测试介绍及文档分享24年7月1号实施

C-ICAP(2024 版)对辅助驾驶测评单元(行车辅助项目、泊车辅助项目)、智慧座舱测评单元、隐私保护测评单元开展测试评价。 1 行车辅助评价项目 行车辅助项目包括基础行车辅助和领航行车辅助。其中,基础行车辅助部分为必测项,包括跟车能力、组合控制能力、紧急避险能力和驾…

一文详解MacOS使用VSCode搭建SpringBoot+Gradle开发环境

开发后端Java应用时&#xff0c;大多数开发者使用的是IntelliJ IDEA&#xff0c;但该软件是一个付费软件&#xff0c;所以希望可以使用开源且免费的VSCode来创建和开发后端项目。本文为本人在 Mac 上使用 Visual Studio Code&#xff08;简称 VSCode&#xff09;集成开发环境来…

创建者模式之【建造者模式】

建造者模式 概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某个对象的构建过程复杂的情况。由于实现了构建和…

pyspark入门基础详细讲解

1.前言介绍 学习目标&#xff1a;了解什么是Speak、PySpark&#xff0c;了解为什么学习PySpark&#xff0c;了解课程是如何和大数据开发方向进行衔接 使用pyspark库所写出来的代码&#xff0c;既可以在电脑上简单运行&#xff0c;进行数据分析处理&#xff0c;又可以把代码无缝…