【媒体开发】利用FFMPEG进行推拉流

目录

1. 下载并启动媒体服务

2. 使用 FFMPEG 拉流并推送到指定服务地址

3. 客户端拉流


1. 下载并启动媒体服务

MediaMTX,也即之前的rtsp-simple-server,是一个即用型、零依赖的实时媒体服务器和媒体代理,允许发布、读取、代理和记录视频和音频流。

从Releases · bluenviron/mediamtx · GitHub找到最新版,下载对应平台的软件包,如 linux x86-64 选绿色框那个,windows x86-64 则选红色框那个:

解压后,运行即可:

# linux x86-64:
./mediamtx mediamtx.yml

2. 使用 FFMPEG 拉流并推送到指定服务地址

2.1 关于FFMPEG

ffmpeg是一个通用媒体转换器。它可以读取多种 输入 - 包括实时抓取/记录设备 - 过滤和转码它们 成多种输出格式。

ffmpeg从任意数量的输入“文件”读取。 (可以是常规的 文件、管道、网络流、抓取设备等),由 -i 选项,并写入任意数量的输出“文件”,这些文件是 由纯输出 url 指定。在命令行中找到的任何内容 不能将选项解释为被视为输出 url。

每个输入或输出 URL 原则上可以包含任意数量的流 不同类型(视频/音频/字幕/附件/数据)。允许的数量和/或 流的类型可能受到容器格式的限制。选择哪个 输入将进入的流,输出将自动完成 或使用 -map 选项(请参阅流选择章节)。

要引用选项中的输入文件,您必须使用它们的索引(从 0 开始)。例如。 第一个输入文件是 0,第二个是 1,依此类推。同样,流 文件内由它们的索引引用。例如。 2:3 指的是 第三个输入文件中的第四个流。另请参阅流说明符一章。

作为一般规则,选项将应用于下一个指定的 文件。因此,顺序很重要,你可以有相同的 多次在命令行上使用选项。每次出现都是 然后应用于下一个输入或输出文件。 此规则的例外是全局选项(例如详细级别), 应首先指定哪些内容。

不要混合输入和输出文件 - 首先指定所有输入文件,然后指定所有 输出文件。也不要混合属于不同文件的选项。全部 选项仅适用于下一个输入或输出文件,并在文件之间重置。

——官方文档介绍

安装:

对于Debian或者Ubuntu:

sudo apt-get update
sudo apt-get install ffmpeg

对于CentOS:

sudo yum install epel-release
sudo yum install ffmpeg

2.2 开始拉流、推流

启动媒体服务后,即可进行拉流并推送:

ffmpeg -re -i 视频文件路径或者网络摄像头地址 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

如果想循环推某个视频,可以使用参数-stream_loop,可以指定循环多少次,如为-1,则循环无数次:

ffmpeg -re -stream_loop -1 -i 视频文件路径 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

3. 客户端拉流

可直接用 ffplay 进行拉流与展示:

ffplay rtsp://127.0.0.1:8554/stream

也可用某些支持网络 URL 的播放器进行播放,如 VLC,SMPlayer 等;

也可以通过 opencv 拉流来获取每一帧图像进行各种处理:

video = cv2.VideoCapture("rtsp://127.0.0.1:8554/stream")

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

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

相关文章

深度学习第5天:GAN生成对抗网络

☁️主页 Nowl 🔥专栏 《深度学习》 📑君子坐而论道,少年起而行之 ​​ 文章目录 一、GAN1.基本思想2.用途3.模型架构 二、具体任务与代码1.任务介绍2.导入库函数3.生成器与判别器4.预处理5.模型训练6.图片生成7.不同训练轮次的结果对比 一…

51单片机的外部中断的以及相关寄存器的讲解

中断系统 本文主要涉及8051单片机的中断系统的讲解与使用 其中包括中断相关寄存器的介绍与使用以及外部中断初始化的代码分析。 文章目录 中断系统一、 中断的介绍二、 中断结构及相关寄存器2.1 中断源 2.2 中断请求控制器2.2.1 TCON寄存器2.2.2 SCON寄存器2.2.3 中断允许寄存器…

关于“Python”的核心知识点整理大全21

9.3.2 Python 2.7 中的继承 在Python 2.7中,继承语法稍有不同,ElectricCar类的定义类似于下面这样: class Car(object):def __init__(self, make, model, year):--snip-- class ElectricCar(Car):def __init__(self, make, model, year):supe…

创建个人网站(一)从零开始配置环境,搭建项目

目录 前言配置环境前端后端遇到的问题1.安装了nvm和node,vscode没反应2.安装完脚手架之后vue指令不存在 vscode插件(以后遇到好的会添进去) 前言 从刚开始学前端的html直到现在前后端都有在开发,我一直都有一个想法,就…

保障事务隔离级别的关键措施

目录 引言 1. 锁机制的应用 2. 多版本并发控制(MVCC)的实现 3. 事务日志的记录与恢复 4. 数据库引擎的实现策略 结论 引言 事务隔离级别是数据库管理系统(DBMS)中的一个关键概念,用于控制并发事务之间的可见性。…

基于python实现原神那维莱特开转脚本

相信不少原友都抽取了枫丹大C那维莱特,其强力的输出让不少玩家爱不释手。由于其转的越快,越不容易丢伤害的特点,很多原友在开转时容易汗流浃背,所以特意用python写了一个自动转圈脚本,当按住鼠标侧键时,即可…

做数据分析为何要学统计学(10)——什么是回归分析

​回归分析(regression analysis)是量化两种或两种以上因素/变量间相互依赖关系的统计分析方法。回归分析根据因素的数量,分为一元回归和多元回归分析;按因素之间依赖关系的复杂程度,可分为线性回归分析和非线性回归分析。我们通过…

将创建表字段语句快速转换成golang struct字段

用网页jquery快速生成 本地建立 struct.html <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>leo-转换</title> <script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></s…

Elasitcsearch--解决CPU使用率升高

原文网址&#xff1a;Elasitcsearch--解决CPU使用率升高_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决ES导致的CPU使用率升高的问题。 问题描述 线上环境 Elasticsearch CPU 使用率飙升常见问题如下&#xff1a; Elasticsearch 使用线程池来管理并发操作的 CPU 资源。…

每天一点python——day94

#每天一点Python——94 #面向对象的三大特征——封装 封装&#xff1a;隐藏内部细节&#xff0c;对外提供操作方式。【提高程序的安全性】 继承&#xff1a;在函数调用时&#xff0c;使用’形参名称值‘的方式进行传参&#xff0c;传递参数的顺序可以与定义时参数顺序不同【提高…

02-Nacos和Eureka的区别与联系

Nacos和Eureka的区别 联系 Nacos和Eureka整体结构类似: 都支持服务注册, 服务拉取, 采用心跳方式对服务提供者做健康监测的功能 区别 Nacos支持服务端主动检测服务提供者状态: 临时实例采用心跳模式,非临时实例采用主动检测模式但对服务器压力比较大(不推荐) 心跳模式: 服务…

喜讯!云起无垠入选“2023年中国AIGC创新企业榜”

近日&#xff0c;第一新声正式发布了《2023年中国AIGC创新企业榜》&#xff0c;涵盖综合榜、细分行业榜和案例榜。云起无垠凭借AIGC领域的创新实践和应用&#xff0c;上榜应用层「AIGC应用场景创新企业榜」。 2023年是AIGC创新发展的元年&#xff0c;大模型技术的兴起与应用在各…

实战:Docker Compose 下 Nginx、Java、Mysql 和 Redis 服务协同部署(包含解决浏览器访问Linux部署服务器本地资源问题)

1. 背景 在该实战中&#xff0c;我们将探讨如何使用Docker Compose协同部署Nginx、Java、Mysql和Redis服务&#xff0c;实现一个视频上传与展示的应用。具体需求如下&#xff1a; Java应用负责上传视频和图片资源到Nginx目录下&#xff0c;作为资源服务器。Nginx服务作为静态…

bugkuctf web随记wp

常规思路&#xff1a; 1&#xff0c;源码2&#xff0c;抓包3&#xff0c;御剑dirsearch扫后台检查是否有git文件未删除4&#xff0c;参数 本地管理员&#xff1a;1&#xff0c;cu看源码&#xff0c;sci看源码有一串东西2&#xff0c;base64解码后是test123猜测是密码3&#x…

企业打造高产出的新媒体运营团队的步骤有哪些?

企业在搭建新媒体矩阵的过程中&#xff0c;第一步是确定平台&#xff0c;第二步就是组建一个运营团队。 但组建一个高质量的运营团队并非容易的事情&#xff0c;很多企业可能都不知道&#xff1a; 不同规模的企业需要什么样的运营团队&#xff1f;运营团队中的不同岗位需要做哪…

【机器学习】利用线性回归预测披萨价格

目录 前言 一、绘制散点图 二、数据准备 三、一元线性回归模型训练 四、一元线性回归模型评估 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首…

Linux查询指定时间点段日志Linux查询指定文件

Linux服务器高效查询日志查询文件 Ⅰ、常用几种日志查询语法Ⅱ、常用几种查询语法 Ⅰ、常用几种日志查询语法 #查询某日志前xx行日志 head -n 行数 日志文件名 #查询某日志后xx行日志 tail -n 行数 日志文件名 #查询固定时间点日志&#xff08;前提是这个时间点确实有日志输出…

基于javaweb实现的实践教学基地管理系统

一、系统架构 前端&#xff1a;html | js | css | bootstrap 后端&#xff1a;spring | springmvc | mybatis-plus 环境&#xff1a;jdk1.8 | mysql8 | tomcat | maven 二、代码及数据库 三、功能介绍 01. web-首页1 02. web-首页2 03. web-首页3 04. web-首页4 05. 管…

代码随想录27期|Python|Day15|二叉树|层序遍历|对称二叉树|翻转二叉树

本文图片来源&#xff1a;代码随想录 层序遍历&#xff08;图论中的广度优先遍历&#xff09; 这一部分有10道题&#xff0c;全部可以套用相同的层序遍历方法&#xff0c;但是需要在每一层进行处理或者修改。 102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 层…

集简云 x 零售企业丨快速集成有赞商城和微盛企微管家,实现私域运营自动化

客户介绍 某公司是一家知名的饮料厂商&#xff0c;自1998年成立以来&#xff0c;一直致力于研发和生产各种热门饮品&#xff0c;如果汁、碳酸饮料、矿泉水等。因其独特的口感和健康的品质深受消费者的喜爱。企业拥有多个知名品牌&#xff0c;享有极高的品牌知名度和市场份额。该…