基于FFmpeg进行rtsp推流及拉流(详细教程)

article/2025/9/26 16:31:31

目录

1. 安装FFmpeg

1.1 Windows系统

1.2 Ubuntu 和 Debian 系统

1.3 CentOS 和 Fedora 系统

1.4 macOS系统

2. 安装rtsp-simple-server

3. FFmpeg推流

3.1 UDP推流

3.2 TCP推流

3.3 循环推流

4 拉流

4.1 ffplay/VLC拉流显示

4.2 FFmpeg拉流保存成视频


1. 安装FFmpeg

FFmpeg 是一个免费、开源的跨平台视频和音频流处理工具。

首先,打开终端(在 Windows 中是命令提示符,在 Windows 搜索栏中输入“cmd”,然后打开命令提示符),然后运行以下命令以检查您的系统上是否已安装 FFmpeg:

ffmpeg -version

如果显示安装的版本号,表明 FFmpeg 已安装。否则,需要进行安装。

1.1 Windows系统

转到 FFmpeg 官方网站,然后下载最新版本的 Windows 安装包。

下载完成后,双击安装包文件,然后按照提示操作安装 FFmpeg。

1.2 Ubuntu 和 Debian 系统

对于 Ubuntu 和 Debian 系统,可以使用 apt 包管理器来安装 FFmpeg:

sudo apt update
sudo apt install ffmpeg

1.3 CentOS 和 Fedora 系统

对于 CentOS 和 Fedora 系统,可以使用 yum 来安装 FFmpeg:

sudo yum install ffmpeg

1.4 macOS系统

对于 macOS系统,可以使用 Homebrew 来安装 FFmpeg:

brew install ffmpeg

在安装完成后,可以再次运行

ffmpeg -version 

命令来检查是否安装成功。如果安装成功,将显示安装的版本号等信息。

2. 安装rtsp-simple-server

安装rtsp服务器,可以去这个链接

rtsp-simple-server

下载对应编译好的文件直接运行就好。

3. FFmpeg推流

注意:在推流之前先运行rtsp-simple-server

3.1 UDP推流

ffmpeg -re -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

3.2 TCP推流

ffmpeg -re -i input.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream

3.3 循环推流

ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

其中:

-re 为以流的方式读取;

-stream_loop 为循环读取视频源的次数,-1为无限循环;

-i 为输入的文件;

-f 为格式化输出到哪里;

4 拉流

4.1 ffplay/VLC拉流显示

ffplay rtsp://127.0.0.1:8554/stream

如需用VLC拉流,需安装VLC播放器,下载网站为:VLC 官方网站

内有各个系统的安装包,选择自己的系统下载安装即可。

安装好后,打开网络串流,输入对应的地址即可拉流显示。

4.2 FFmpeg拉流保存成视频

ffmpeg -stimeout 30000000 -i rtsp://127.0.0.1:8554/stream -c copy output.mp4

-stimeout 30000000 为等待RTSP 流连接的时间,单位为us微秒,30000000 为等待 30 秒,如果连接失败则退出。特别注意该字段要放在rtsp地址之前,否者无效。


http://chatgpt.dhexx.cn/article/y7U2aiCW.shtml

相关文章

音视频直播推流和拉流到底是什么意思?

为什么直播现场的信息,用户通过手机或者网站就能很快的看到呢?为什么有时候网络不稳定,直播效果会有延迟呢?现场的视频信号又是如何传到网络呢? 这些所有问题的产生,都离不开视频直播中常说的两个词&#…

音视频流媒体-推流与拉流简介

一、概念 话不多说,先了解概念,再看示意图更直观: 1.1 推流 推流:将直播的内容推送至服务器的过程。即指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高&a…

不用第三方写一个简单的推流软件

https://github.com/iOSSinger/SGLivingPublisher 不用第三方写一个简单的推流软件 6 commits 1 branch 0 releases 1 contributor Objective-C 100.0% Objective-C Clone or download Find file Branch: master New pull request Latest commit 122566b on 16 Feb iOSS…

RTMP 利用第三方软件实现数据推流与客户端播放

服务器的搭建建 Red5 搭建基于RTMP协议的流媒体服务器 1.软件 数据推流软件 flash_media_live_encoder_3.2 客户端播放软件 vlc-2.1.5-win32.1406534096 2.安装软件 直接双击安装即可 3.数据推流 使用flash encoder软件 设置服务器的URL rtmp://localhos…

视频直播推流攻略(整理的各大平台推流界面)

如果我要做一场高端大气的直播活动,需要用高清摄像机拍摄画面,需要接入无人机的高空画面,需要在直播中插入多个镜头,甚至需要把电脑桌面共享到直播画面中...... 该如何将这类现场信号采集并整合起来传输到网络呢? 这个…

推流工具OBS 支持webrtc推流

OBS 是一款好用的直播流媒体内容制作软件,为用户提供了视频、文本、图像等的捕获录制功能,OBS 界面简洁并专业,功能强大。OBS 程序和其源代码都是免费提供给大家使用,版本更新一直比较活跃,支持 OS X、Windows、Linux …

直播-拉流和推流概述

拉流(播放) 根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据; 解析二进制数据,从中找到相关流信息;根据不同的封装格式(如FLV、TS)解…

【流媒体】推流与拉流简介

本文目录 一、概念 1.1 推流 1.2 拉流 二、示意图 三、RTMP传输协议 四、流媒体协议与格式 一、概念 话不多说,先了解概念,再看示意图更直观: 1.1 推流 推流:将直播的内容推送至服务器的过程。即指的是把采集阶段封包好的…

OBS推流直播软件安装教程

OBS推流直播软件安装教程 一、安装推流软件 1.双击运行 OBS-Studio-21.1-Full-Installer.exe 安装包程序 2.点击 Next 3.点击I Agree (不知道为啥显示图片了 可以复制里面的连接到浏览器打开) 4.点击Next 5.点击Install 6.点击Finish&#xff0…

四款好用的免费直播编码推流软件

现代生活已经离不开互联网,离不开软件了。 这说法毫不夸张。 比如手机上各种 APP 眼花缭乱 ,各种行业, 各种功能, 各种 Logo, 各种的各种。 没有良好的整理力,是真 的不好意思让别人看到啊。 这些功能各异的 APP 程序大多数是免费 APP。今天我们来谈谈…

Android手机屏幕RTMP推流工具

Android手机屏幕RTMP推流工具是基于ffmpegopencv开发的C(eclipse、androidstudio)程序,是一款可以将安卓手机屏幕上的任何内容推送到任意一款rtmp服务器上的工具,不仅可以分享手机屏幕内容,还可以分享手机上正在播放的…

三款免费的直播推流软件介绍

三款免费的直播推流软件介绍: 1. Adobe Flash Media Encoder 2. Open Broadcaster Software 3. iAVcast 1)Flash Media Live Encoder 3.2 由著名的Adobe公司出品,值得信赖,Adobe好长时间已经停止更新了&…

tensorflow中的sess.run()

1.feed_dict feed_dict的作用是给使用placeholder创建出来的tensor赋值,feed使用一个值临时替换一个op的输出结果。 2.sess.run() 构建完图后,需要在一个会话中启动图,启动的第一步是创建一个Session对象。在执行sess.run()时,te…

tensorflow sess.run()

函数参数run( fetches, feed_dictNone, optionsNone, run_metadataNone) feed_dict参数的作用是替换图中的某个tensor的值。例如: a tf.add(2, 5) b tf.multiply(a, 3) with tf.Session() as sess: sess.run(b) 21 replace_dict {a: 1…

sess.run()自我理解

import tensorflow as tf a tf.constant([[1,2],[3,4]]) print(a) matrix2 tf.placeholder(float32,[2,2]) matrix1 matrix2#浅拷贝 sess tf.Session() print(sess.run(a)) print(a) asess.run(a) print(a) print(sess.run(matrix2 ,feed_dict{matrix2:a})) #只要是sess.…

Oracle视图学习DBA_HIST_ACTIVE_SESS_HISTORY

dba_hist_active_sess_history:这个视图是用来生成 ASH report 的, 但是 ASH report 并没有充分的利用这个视图的强 大之处,我们通过分析这个视图的详细数据,往往可以找到问题发生的原因. 可以从宏观和微观两个维度来分析这个视图(用 11gR2 的 dba_hist_active_sess_history 做…

tensorflow的sess.run的参数执行顺序

sess.run的多个参数执行 是将整个计算图中所有需要计算的节点,计算完全后一次行输出, 两次print顺序不同,结果不同 import tensorflow as tf# 基础数据 state1 tf.Variable(0, dtypetf.int8,name mi) state tf.Variable(0, dtypetf.int8…

sess.run()

函数:run(fetches, feed_dictNone, optionsNone, run_metadataNone) 当构建完图后,需要在一个session会话中启动图,第一步是创建一个Session对象。 为了取回(Fetch)操作的输出内容, 可以在使用 Session 对象…

Paper Reading:SESS(Self-Ensembling Semi-supervised3D ObjectDetction)

BackGround 虽然3D点云的目标检测当前运用十分广泛,但是当前大部分3D目标检测的方法强依赖于带有标注的数据。这些带有标注的数据往往是需要付出昂贵的代价,在2021年的水平大概是¥0.1一个框,那么一帧数据也就是对应的&#xffe5…

SESS: Self-Ensembling Semi-Supervised 3D Object Detection论文阅读及理解

SESS: Self-Ensembling Semi-Supervised 3D Object Detection Abstract 3d检测通常以来目标的标签和注释,然而获得这些注释是十分困难的。 SESS一种自集成的半监督三维目标检测框架。 设计了一种扰动方案,加强对未标记数据和新的为可见数据的泛化。 …