Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流
目录
演示视频
前期配置
Docker配置
ffmpeg配置
vlc配置
下载并运行 SRS 服务
推拉流流程实现
演示视频
2025-05-18 21-48-01
前期配置
Docker配置
运行 SRS 建议使用 Docker
配置 Docker 请移步:
一篇就够!Windows上Docker Desktop安装 + 汉化完整指南(包含解决wsl更新失败方案)_docker汉化-CSDN博客
按安装 Docker 及其汉化脚本:
Releases · asxez/DockerDesktop-CN · GitHub
成功下载 Docker 后:
记得先配置 wsl、ubuntu 和阿里云镜像
点击设置后,输入阿里云镜像:
集成 WSL2 并配置 Ubuntu:
对于 Docker 的使用说明及其介绍,强烈建议大家看看这个视频,讲解精确到位,没啥废话(不像b站老多 Docker 使用视频,都是一个小时起步的):2025最新Docker新手教程,10分钟小白Docker Desktop快速入门实战!_哔哩哔哩_bilibili
ffmpeg配置
建议下载编译好的文件:Builds - CODEX FFMPEG @ gyan.dev
解压到想要解压到的位置后,需要配置环境变量,将 ffmpeg 中的 bin 文件夹目录加到系统变量Path 中,使其能在控制台任何地方执行命令:
vlc配置
官网直接加载解压即可:官方下载:VLC media player,最棒的开源播放器 - VideoLAN
下载并运行 SRS 服务
进入终端管理员窗口,输入:wsl,进入 linux 命令行
输入 SRS 流媒体服务器下载命令(这里的 conf 文件用的镜像自带的,也可扩展配置其他功能):
docker run -it -p 1935:1935 -p 1985:1985 -p 8080:8080 --name srs registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
(linux)系统输入命令支持换行,用 "\" 即可
回车后会下载 SRS 镜像并运行
在 docker 端也能看见正在运行:
看到终端管理员一行行出现如下命令,则说明日志持续不断地被生成,这表明 SRS 服务正在运行中,并且它在定期记录其状态更新。若 SRS 服务上有任何业务或者错误,都会及时的显示在终端上:
同时,浏览器输入http://localhost:1985/api/v1/versions/,表明 SRS的 HTTP API 正常工作,并且返回了关于服务器状态、服务信息和可用的 API 路径等详细信息。这说明你的 SRS 服务器已经成功运行,并且可以通过 HTTP API 进行管理和监控。
推拉流流程实现
右键解压后的 vlc 文件夹中的 vlc.exe,选择以管理员页面打开。选择左上角媒体,选择以打开网络串流打开
网络 URL 要输入的地址即为拉流地址
保证 SRS 服务器已启动,并且无任何报错,可以在Docker desktop终端或者终端管理员输入 docker logs srs,(这里的 srs 是你的容器名)没有红色报错就行了。
打开 cmd 终端,输入以下命令用于 ffmpeg 推流(记得换成自己本地视频的路径):
ffmpeg -re -i "F:\car_van\4.mp4" -c:v libx264 -preset veryfast -b:v 500k -maxrate 500k -bufsize 1000k -c:a aac -b:a 128k -ar 44100 -f flv rtmp://localhost/live/livestream
若无报错,在刚才 vlc 网络串流中填写拉流地址:
rtmp://localhost/live/livestream
即可得到拉流视频!
延迟具体没看,但听说是一秒多,后面还会更新更快的 webrtc 推流。本解决方案最大亮点是使用了 Docker 配置 SRS 服务器,直接镜像下载、运行容器,不用像传统那样得配置 SRS 环境配置半天,相信 Docker 会让代码世界更加交融,项目共享更加方便!!!
当然,前面更新过一篇大疆无人机 rtmp 推流的,更换一下网络 ip 后,本方案应该也能适用:
大疆无人机(全系列,包括mini)拉流至电脑,实现直播_大疆无人机直播推流-CSDN博客
相关文章:

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流
目录 演示视频 前期配置 Docker配置 ffmpeg配置 vlc配置 下载并运行 SRS 服务 推拉流流程实现 演示视频 2025-05-18 21-48-01 前期配置 Docker配置 运行 SRS 建议使用 Docker 配置 Docker 请移步: 一篇就够!Windows上Docker Desktop安装 汉化完整指…...

一个stm32工程从底层上都需要由哪些文件构成
原文链接:https://kashima19960.github.io/2025/05/17/stm32/一个stm32工程从底层上都需要由哪些文件构成/ 前言 我最近因为做课设要用到stm32,所以去找了一些开源的stm32工程来看看,然后发现现在新版的keil mdk对于环境的配置跟以前 相比发…...

[Mac] 开发环境部署工具ServBay 1.12.2
[Mac] 开发环境部署工具ServBay 链接:https://pan.xunlei.com/s/VOQS0LDsC_J6XU4p-R6voF6YA1?pwdnbyg# 非常给力的本地 Web 开发/测试环境工具:ServBay。之前我们本地搭个 PHP MySQL Nginx 环境,或者搞个 PHP web 环境啥的,不…...

商城小程序源码介绍
今天要为大家介绍一款基于ThinkPHP、FastAdmin以及UniApp开发的商城小程序源码,这款源码在设计和功能上都有不俗的表现,非常适合想要搭建线上商城的开发者。 该源码采用了ThinkPHP作为后端框架,利用其强大的性能和灵活性,保障了系…...
鸿蒙OSUniApp 实现图片上传与压缩功能#三方框架 #Uniapp
UniApp 实现图片上传与压缩功能 前言 在移动应用开发中,图片上传是一个非常常见的需求。无论是用户头像、朋友圈图片还是商品图片,都需要上传到服务器。但移动设备拍摄的图片往往尺寸较大,直接上传会导致流量消耗过大、上传时间过长&#x…...

科技项目验收测试对软件产品和企业分别有哪些好处?
科技项目验收测试是指在项目的开发周期结束后,针对项目成果进行的一系列验证和确认活动。其目的是确保终交付的产品或系统符合预先设定的需求和标准。验收测试通常包括功能测试、性能测试、安全测试等多个方面,帮助企业评估软件在实际应用中的表现。 科…...
javascript和vue的不同
1. 数据绑定方式 JavaScript(原生) 手动操作 DOM:通过document.querySelector()等方法获取 DOM 元素,然后直接修改其属性或内容。 示例: <div id"counter">0</div> <button onclick"i…...
duxapp 2025-01-06更新 CLI新增帮助支持,优化基础模块结构
CLI 新增帮助命令 yarn duxapp -h yarn duxapp --helpyarn duxapp icon -h yarn duxapp icon create -h基础库 完善所有函数和组件的Types移除 Detail 组件移除 checkLocationPermission 方法移除 duxapp/utils/app.js 有关于模块的方法移除 Queue 队列功能移除 recursionSe…...

汽车零部件冲压车间MES一体机解决方案
在当前制造业升级的大背景下,提升生产效率、实现精细化管理已成为企业竞争力的关键。特别是在汽车零部件制造领域,冲压车间作为生产流程中的重要一环,其生产数据的实时采集与分析对于确保产品质量、优化生产节拍、降低运营成本至关重要。今天…...

hysAnalyser 从MPEG-TS导出ES功能说明
摘要 hysAnalyser 是一款特色的 MPEG-TS 数据分析工具。本文主要介绍了 hysAnalyser 从MPEG-TS 中导出选定的 ES 或 PES 功能(版本v1.0.003),以便用户知悉和掌握这些功能,帮助分析和解决各种遇到ES或PES相关的实际问题。hysAnalyser 支持主流的MP1/MP2/…...

家里wifi不能上网或莫名跳转到赌博及色情网站就是域名被劫持、DNS被污染了
文章目录 定义上网过程域名被劫持可能阶段案例排查工具 解决方法清除系统DNS缓存查看DNS缓存清除DNS缓存 登录路由器,设置DNS可用的DNS地址: 找网络运营商报警 定义 DNS(Domain Name System,域名系统)劫持,…...

基于SSM实现的健身房系统功能实现十六
一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升,健身行业也在迅速扩展。越来越多的人加入到健身行列,健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂,传统的手工或部分自动化的管…...

【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言设计一个共享数据中心选择数据模型键值对设计 数据可靠性设计持久化快照 (…...
[Harmony]大文件持久化
1.添加权限 在module.json5文件中添加权限 "requestPermissions": [{"name": "ohos.permission.READ_WRITE_USER_FILE", // 读写用户数据"reason": "$string:read_write_user_file_reason","usedScene": {"…...
pgsql14自动创建表分区
最近有pgsql的分区表功能需求,没想到都2025年了,pgsql和mysql还是没有自身支持自动创建分区表的功能 现在pgsql数据库层面还是只能用老三样的办法来处理这个问题,每个方法各有优劣 1. 触发器 这是最传统的方法,通过创建一个触发…...

cursor/vscode启动项目connect ETIMEDOUT 127.0.0.1:xx
现象: 上午正常使用cursor/vscode,因为需要写前端安装了nodejs16.20和vue2,结果下午启动前端服务无法访问,浏览器一直转圈。接着测试运行最简单的flask服务,vscode报错connect ETIMEDOUT 127.0.0.1:xx,要么…...
Leetcode 3553. Minimum Weighted Subgraph With the Required Paths II
Leetcode 3553. Minimum Weighted Subgraph With the Required Paths II 1. 解题思路2. 代码实现 题目链接:3553. Minimum Weighted Subgraph With the Required Paths II 1. 解题思路 这一题很惭愧,并没有自力搞定,是看了大佬们的解答才有…...

兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统
作者:Fei Lin 1 ^{1} 1, Yonglin Tian 2 ^{2} 2, Tengchao Zhang 1 ^{1} 1, Jun Huang 1 ^{1} 1, Sangtian Guan 1 ^{1} 1, and Fei-Yue Wang 2 , 1 ^{2,1} 2,1单位: 1 ^{1} 1澳门科技大学创新工程学院工程科学系, 2 ^{2} 2中科院自动化研究所…...
springboot踩坑记录
之前运行好端端的项目,今天下午打开只是添加了一个文件之后 再运行都报Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class Action: Conside…...
SparkSQL基本操作
以下是 Spark SQL 的基本操作总结,涵盖数据读取、转换、查询、写入等核心功能: 一、初始化 SparkSession scala import org.apache.spark.sql.SparkSession val spark SparkSession.builder() .appName("Spark SQL Demo") .master("…...
Web 架构之动静分离
文章目录 一、引言二、动静分离的原理2.1 什么是动静分离2.2 为什么要进行动静分离 三、动静分离的实现方式3.1 基于 Nginx 的动静分离3.2 基于 CDN 的动静分离 四、常见问题及解决方法4.1 缓存问题4.2 跨域问题4.3 性能监控问题 五、思维导图六、总结 一、引言 在当今的 Web 应…...

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤
20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤 2025/5/15 19:55 百度:intel 集成显卡 NVIDIA 配置成为 总是用独立显卡 百度为您找到以下结果 ?要将Intel集成显卡和NVIDIA独立显卡配置为总是使用独立显卡,可以通过以下步骤实现?ÿ…...

sparkSQL读入csv文件写入mysql
思路 示例 (年龄>18改成>20) mysql的字符集问题 把user改成person “让字符集认识中文”...

大涡模拟实战:从区域尺度到街区尺度的大气环境模拟
前言: 随着低空经济的蓬勃发展,无人机、空中出租车等新型交通工具正在重塑我们的城市空间。这场静默的革命不仅带来了经济机遇,更对城市大气环境提出了全新挑战。在距离地面200米以下的城市冠层中,建筑物与大气的复杂相互作用、人…...
centos安装方式的aarch64架构下的kylinv10安装docker23.0.0
以下通过压缩包方式安装docker 因为yum方式配置各种依赖仓库太麻烦了,如果你不想执行 yum repolist yum clean all yum makecache那可以按照以下压缩包的方式安装任何版本的docker 1.查看glibc版本 ldd --version我这里显示2.28,安装docker23.0.0没问…...

单目测距和双目测距 bev 3D车道线
单目视觉测距原理 单目视觉测距有两种方式。 第一种,是通过深度神经网络来预测深度,这需要大量的训练数据。训练后的单目视觉摄像头可以认识道路上最典型的参与者——人、汽车、卡车、摩托车,或是其他障碍物(雪糕桶之类…...
鸿蒙OSUniApp 实现一个精致的日历组件#三方框架 #Uniapp
使用 UniApp 实现一个精致的日历组件 前言 最近在开发一个约会小程序时,需要实现一个既美观又实用的日历组件。市面上虽然有不少现成的组件库,但都不太符合我们的设计需求。于是,我决定从零开始,基于 UniApp 自己实现一个功能完…...
【爬虫】DrissionPage-3
安装:4.1最新版本 pip install drissionpage --upgrade 官方文档:🛰️ 连接浏览器 | DrissionPage官网 1 Chromium对象 Chromium对象用于连接和管理浏览器。标签页的开关和获取、整体运行参数配置、浏览器信息获取等都由它进行。 1.1 默认…...

Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包
知识点: 1、安全开发-JavaEE-WAR&JAR打包&反编译 2、安全开发-JavaEE-SnakeYaml反序列化&链 一、演示案例-WEB开发-JavaEE-项目-SnakeYaml序列化 常见的创建的序列化和反序列化协议 • (已讲)JAVA内置的writeObject()/readObje…...

项目复习(2)
第四天 高并发优化 前端每隔15秒就发起一次请求,将播放记录写入数据库。 但问题是,提交播放记录的业务太复杂了,其中涉及到大量的数据库操作:在并发较高的情况下,会给数据库带来非常大的压力 使用Redis合并写请求 一…...