Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg)

这篇具有很好参考价值的文章主要介绍了Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RTMP服务器搭建与视频流推送

在这篇文章中,我将详述如何搭建一个RTMP(Real-Time Messaging Protocol)服务器,并使用ffmpeg技术进行本地视频的推流。最后,我们将使用VLC播放器来播放这个RTMP流。

第一部分:搭建RTMP服务器(流媒体服务器)

首先,我们需要搭建一个RTMP服务器。为了方便起见,我们将选择Docker作为服务器的环境。Docker的轻量化和可移植性使得它成为构建和部署应用的理想选择。

1.1 安装Docker

安装Docker的步骤会根据操作系统的不同而变化。下面是在Ubuntu上安装Docker的命令:

sudo apt-get update
sudo apt-get install docker.io

如果你使用的是其他操作系统,请参照Docker的官方文档进行安装。

1.2 搭建RTMP服务器

我们将使用开源项目nginx-rtmp-docker来搭建RTMP服务器。首先,克隆该项目到你的本地目录:

git clone https://github.com/tiangolo/nginx-rtmp-docker.git
cd nginx-rtmp-docker

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx
我克隆不了,我直接上页面上把代码下载下来了:

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

然后,使用Docker运行服务器:

docker run -d -p 1935:1935 --name=nginx-rtmp tiangolo/nginx-rtmp

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx
Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

此时,你已经成功地在本地启动了一个RTMP服务器,它监听在1935端口。

注意:
实际上我们并未用到上面git clone https://github.com/tiangolo/nginx-rtmp-docker.git下载的文件,我们用的是镜像tiangolo/nginx-rtmp中默认的nginx.conf,如果要自定义nginx内容,可以编辑nginx.conf,然后将这个文件在创建容器时挂载进去。不懂的可以参考项目主页。

第二部分:使用ffmpeg进行视频推流(推流客户端)

接下来,我们将使用ffmpeg对视频进行推流。ffmpeg是一款强大的多媒体处理工具,支持几乎所有的音视频格式。

2.1 安装ffmpeg

在Ubuntu上,你可以使用下面的命令安装ffmpeg:

sudo apt-get update
sudo apt-get install ffmpeg

如果你使用的是其他操作系统,请参照ffmpeg的官方文档进行安装。

2.2 使用ffmpeg推流

首先,你需要有一个视频文件用于推流。然后,使用以下命令进行推流:

ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/stream

这里,“input.mp4”是你的视频文件,“rtmp://localhost/live/stream”是你的RTMP服务器地址。

在这个例子中,ffmpeg是用于将视频文件推送(stream)到我们建立的RTMP服务器。而这个RTMP服务器就是通过Docker运行的nginx-rtmp容器提供的。

docker run -d -p 1935:1935 --name=nginx-rtmp tiangolo/nginx-rtmp命令启动了一个名为"nginx-rtmp"的容器,它监听主机的1935端口。

ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/stream命令将名为"input.mp4"的视频文件转换成流,然后推送到"rtmp://localhost/live/stream"。其中"localhost"指的是本地主机,即RTMP服务器所在的主机。“1935"是RTMP协议默认的端口号,如果没有特别指定,就会使用这个端口。”/live/stream"是推流的路径和名称,你可以根据需要自定义。

所以,在URL上看,ffmpeg推流到"rtmp://localhost/live/stream"实际上就是推流到了我们通过Docker启动的nginx-rtmp容器的1935端口。

简单来说,ffmpeg是推流客户端,而nginx-rtmp容器是流媒体服务器,二者之间通过RTMP协议进行通信。

因为我的流媒体服务器(nginx-rtmp)和ffmpeg推流客户端是在我的ubuntu虚拟机(192.168.121.50)上运行,我希望我的windows电脑能够用VLC播放我的RTMP流,所以我执行以下命令:

ffmpeg -re -i forest4kTest.mp4 -c copy -f flv rtmp://192.168.121.50/live/stream

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

注意:
因为RTMP协议通常使用FLV容器格式进行流媒体传输,所以-f选项后应该是flv而不是mp4

第三部分:使用VLC播放RTMP流

VLC是一款开源的跨平台多媒体播放器,它可以播放几乎所有的媒体文件,也可以播放网络流。

3.1 安装VLC

在Ubuntu上,你可以使用下面的命令安装VLC:

sudo apt-get update
sudo apt-get install vlc

如果你使用的是其他操作系统,请参照VLC的官方文档进行安装。

Windows直接到VLC官网下载安装包安装即可。

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

3.2 使用VLC播放RTMP流

打开VLC,然后在“媒体”菜单下选择“打开网络串流”。在弹出的对话框中,输入你的RTMP服务器地址,比如"rtmp://localhost/live/stream",然后点击“播放”。

我在我的windows上用VLC打开视频流地址:rtmp://192.168.121.50/live/stream

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg),音视频,ffmpeg,docker,服务器,nginx

可以看到视频流能被正常播放出来。

我的测试视频文件,需要的话可从此处下载。

-stream_loop参数实现视频流重复播放

注意:
如果发现在ffmpeg命令运行结束后就无法用VLC播放rtmp://192.168.121.50/live/stream了,解决这个问题的一个方法是保持ffmpeg持续运行以提供实时流。如果你想要流源(如视频文件)在播放完毕后自动重复播放,可以添加-stream_loop选项来使ffmpeg循环播放视频:

ffmpeg -re -stream_loop -1 -i forest4kTest.mp4 -c copy -f flv rtmp://192.168.121.50/live/stream

其中-stream_loop -1表示无限循环播放输入的视频。

总结

本文详细介绍了如何搭建一个RTMP服务器,如何使用ffmpeg进行视频推流,以及如何使用VLC播放RTMP流。希望这些信息能够帮助你快速地实现视频推流和播放。文章来源地址https://www.toymoban.com/news/detail-797189.html

到了这里,关于Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows上搭建rtsp-simple-server流媒体服务器实现rtsp、rtmp等推流以及转流、前端html与Vue中播放hls(m3u8)视频流

    Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流: Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流_霸道流氓气质的博客-CSDN博客 上面讲了Nginx-http-flv-module+flv.js进行流媒体服务器搭建和前端播放视频流的过

    2024年02月01日
    浏览(39)
  • windows环境下,搭建RTMP视频推流服务器

    1.1 系统环境 我这里使用的 Windows 10 64位 1.2 下载 Nginx 下载地址 : http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip Nginx 是一款轻量级的 Web 服务器,可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版,本文所述的 RTMP 服务器就是基于 Nginx 开发的 module 。 1.3 下载 nginx-rtmp

    2024年02月13日
    浏览(32)
  • 【秒懂音视频开发】26_RTMP服务器搭建

    基本概念 流媒体(Streaming media),也叫做:流式媒体。 是指将一连串的多媒体数据压缩后,经过互联网 分段发送 数据,在互联网上即时传输影音以供观赏的一种技术与过程 此技术使得数据包可以像 流水 一样发送,如果不使用此技术,就必须得先 下载整个 媒体文件才能进

    2023年04月08日
    浏览(41)
  • 迅为RK3588开发板RTMP推流之视频监控之搭建 RTMP 媒流体服务器

    1.安装 nginx+rtmp 运行所要用到的库和依赖环境 apt-get update apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev openssl 2. 下 载 nginx-1.20.2 源 码 ( 下 载 地 址 : http://nginx.org/download/nginx-1.20.2.tar.gz) 和nginx-rtmp-module(下载地址:hyttps://github.com/arut/nginx-rtmp-module),网盘“iTOP-

    2024年02月02日
    浏览(36)
  • docker部署SRS实时视频服务器,rtmp推流,用WebRTC播放

    SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181 大家可以先去gitub上面看使用说明,地址是:v4_CN_Home · ossrs/srs Wiki · GitHub 然后我们通过docker去启动SRS,这些文档里面都有,就不用多说了,然后我们可以用rtmp推流 用WebRTC播放,首先要支持WebRTC我们需要

    2023年04月11日
    浏览(44)
  • Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器

    #!/bin/sh HTTP_FLV_MODULE_PATH=…/nginx-http-flv-module-1.2.7 OpenSSL_PATH=…/openssl-1.1.1d #–prefix=./bin 代表编译完成之后输出的路径地址 #–add-module 将拓展模块添加到当前一起编译 ./configure --prefix=./bin –add-module= H T T P F L V M O D U L E P A T H   − − w i t h − o p e n s s l = HTTP_FLV_MODULE_PATH --with

    2024年04月15日
    浏览(44)
  • Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

    Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流: Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_win nginx-rtmp最新版_霸道流氓气质的博客-CSDN博客 Vue中使用vue-video-player和videojs-flash插件实现播放rtmp视频文件流: Vue中使用vue-video-player和videojs-flash插件实现播放

    2024年02月03日
    浏览(35)
  • 网络摄像头-流媒体服务器-视频流客户端

    当涉及交通事件检测算法和摄像头视频数据处理时,涉及的代码案例可能会非常复杂,因为这涉及到多个组件和技术。以下是一个简单的Python代码示例,演示如何使用OpenCV库捕获摄像头视频流并进行实时车辆检测,这是一个常见的交通事件检测任务。请注意,这只是一个入门

    2024年02月09日
    浏览(45)
  • [二]rtmp服务器搭建

    SRS服务器地址:http://10.161.9.80:8066 下载ffmpeg.exe推流: 链接: https://pan.baidu.com/s/1WBtuubfj_ZpcTNneoAKv8Q?pwd=csck 提取码: csck 复制这段内容后打开百度网盘手机App,操作更方便哦 .ffmpeg.exe -re -i 视频名称.mp4 -vcodec libx264 -acodec aac -f flv rtmp://10.161.9.80/live/livestream 拉流测试:http://10.161.9.80

    2024年01月19日
    浏览(31)
  • 利用Nginx搭建自己的rtmp服务器

    前几天的文章大疆机场开发五(直播功能和遇到的问题)中讲到,机场直播支持rtmp直播,如果我没有rtmp地址怎么办?这篇文章讲一下如何部署一个自己的rtmp服务器,nginx资源已上传,已配置好,可直接运用。 一、下载Nginx及响应模块 首先,去官方下载Nginx,还需要下载ngin

    2024年04月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包