0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【技术分享】如何在嵌入式Linux平台上使用Nginx搭建RTMP流媒体服务器?

AGk5_ZLG_zhiyua 来源:未知 2023-01-05 15:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RTMP作为目前主流的流媒体传输协议,广泛应用于音视频领域。那么我们如何快速在嵌入式板子上搭建起自己的rtmp流媒体服务器?本篇文章将带大家实践一下。

10d081d6-8cc8-11ed-bfe3-dac502259ad0.jpg  概述

Nginx是一个以高效稳定著称的高性能的HTTP和反向代理web服务器,它同时也是基于事件驱动开发的异步高性能跨平台服务器。Nginx-RTMP是基于Nginx框架的模块开发,很好继承了Nginx的异步高性能以及扩展性好的优点。RTMP 是 Real Time Messaging Protocol (实时消息传输协议)的首字母缩写。该协议基于TCP协议簇,是 Adobe 公司为 Flash/AIR 平台和服务器之间音、视频及数据传输开发的实时消息传送协议。在 RTMP 协议中,视频必须是 h264 编码,音频必须是 AAC 或 MP3编码,且多以 flv 格式封包。目前 RTMP 是主流的流媒体传输协议。而Nginx-RTMP模块主要是对rtmp协议的实现,广泛应用于音视频领域。那么以下将通过一个简单的视频监控方案带大家了解下Nginx-RTMP流媒体服务器的搭建过程。

10d081d6-8cc8-11ed-bfe3-dac502259ad0.jpg  方案实现

以M3568平台为例,在嵌入式Linux系统上搭建Nginx-RTMP流媒体服务器以及通过ffmpeg/gstreamer实现简单的推拉流过程。实现框架如图1所示。10f03bf2-8cc8-11ed-bfe3-dac502259ad0.png

图1

  • 采集M3568板子上的摄像头视频流,使用gstreamer/ffmpeg进行RTMP推流到板子上的nginx服务器(nginx通过rtmp模块提供rtmp服务),然后在同个局域网内使用vlc播放器(或其他客户端)从nginx服务器获取该实时视频流。

1.前期准备

1.1 硬件

  • M3568核心板;
  • M3568-EV-Board底板;
  • usb摄像头(如果没有摄像头可以使用mp4视频文件代替做测试)。

1.2 软件

  • PC上安装vlc播放工具;
  • 带nginx-rtmp-module模块编译的nginx安装包(nginx-install.tar)。
(备注:本篇文章没有展开讲述Nginx + nginx-rtmp-module的交叉编译过程以及具体步骤,但此部分内容已发布在ZLG开发者社区上,可通过链接 https://z.zlg.cn/articleinfo?id=853011 进行访问。)2.实现步骤

2.1 将移植好的nginx安装包拷贝到板子上,然后解压到板子的根目录下。
2.2 修改/etc/nginx/nginx.conf配置文件,添加rtmp配置。如图2所示。

11019a3c-8cc8-11ed-bfe3-dac502259ad0.png

图2

2.3 执行如下命令启动nginx服务器。

nginx -c /etc/nginx/nginx.conf

2.4 在板子上执行如下推流命令,采集摄像头的实时视频流推送至板子上的nginx服务器上。

gst-launch-1.0 v4l2src device=/dev/video5 !

video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 !

queue ! videoconvert ! mpph264enc !

video/x-h264,stream-format=byte-stream ! queue !

h264parse ! flvmux ! rtmpsink location=rtmp://192.168.1.136:1935/myapp/test

如果使用mp4视频文件做推流测试,可直接执行如下推流命令。

ffmpeg-re-i./test.mp4-ccopy-fflvrtmp://192.168.1.136:1935/myapp/test

2.5 此处板子上的IP地址配置为192.168.1.136,此时将PC电脑接在跟板子同一个局域网上,然后使用vlc播放器打开网络串流rtmp://192.168.1.136:1935/myapp/test即可预览视频流画面。

原文标题:【技术分享】如何在嵌入式Linux平台上使用Nginx搭建RTMP流媒体服务器?

文章出处:【微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 致远电子
    +关注

    关注

    13

    文章

    421

    浏览量

    32383

原文标题:【技术分享】如何在嵌入式Linux平台上使用Nginx搭建RTMP流媒体服务器?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一个面向单片机、事件驱动的嵌入式开发平台介绍

    EventOS,是一个面向单片机、事件驱动的嵌入式开发平台。它主要有两大技术特色:一是事件驱动,二是超轻量。EventOS以及其母项目EventOS,目标是开发一个企业级的嵌入式开发
    发表于 12-05 06:26

    飞凌嵌入式ElfBoard-常用的网络服务搭建之NFS服务搭建

    嵌入式Linux开发中,需要在Linux主机编写程序代码,然后编译程序,生成的二进制程序文件要传输到目标机上才能调试、运行。那么如何更快、更便捷地传输文件,提高开发工作的效率呢?NFS无疑是最好
    发表于 10-22 09:23

    飞凌嵌入式ElfBoard-常用的网络服务搭建之TFTP服务搭建

    File Transfer Protocol,简单文件传输协议),是TCP/IP协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小。TFTP通常用于内核调试。在嵌入式Linux开发过程中,内核
    发表于 10-21 11:29

    华纳云服务器Linux系统日志集中化管理平台搭建

    在云计算时代,企业运维团队面临服务器数量激增带来的日志管理难题。本文详细解析如何基于Linux系统构建高效的云服务器日志集中化管理平台,涵盖日志采集、传输、存储和分析全流程,帮助运维人
    的头像 发表于 09-12 14:11 356次阅读

    5分钟学会网络服务搭建!飞凌i.MX9352开发板 + Linux 6.1实战示例

    本文就将以飞凌嵌入式OK-MX9352-C开发板(搭载了在工业物联网领域广泛应用的NXP i.MX9352处理)为平台,介绍如何在Linux
    的头像 发表于 06-13 16:42 1081次阅读
    5分钟学会网络<b class='flag-5'>服务</b><b class='flag-5'>搭建</b>!飞凌i.MX9352开发板 + <b class='flag-5'>Linux</b> 6.1实战示例

    何在嵌入式平台上部署高光谱相机

    高光谱成像技术广泛应用于农业、环境监测、工业检测等领域。友思特eBUS软件为嵌入式分选和检测成像平台搭建提供专属解决方案,如自定义的分选系统、实时数据采集、高性能处理
    的头像 发表于 06-03 13:39 529次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>嵌入式</b><b class='flag-5'>平台上</b>部署高光谱相机

    5分钟学会网络服务搭建,飞凌i.MX9352 + Linux 6.1实战示例

    本文将以飞凌嵌入式OK-MX9352-C开发板(搭载了在工业物联网领域广泛应用的NXP i.MX9352处理)为平台,介绍如何在Linux
    的头像 发表于 05-30 11:08 2147次阅读
    5分钟学会网络<b class='flag-5'>服务</b><b class='flag-5'>搭建</b>,飞凌i.MX9352 + <b class='flag-5'>Linux</b> 6.1实战示例

    何在Linux中配置DNS服务器

    本文详细介绍了如何在Linux中配置DNS服务器,包括DNS工作原理、本地缓存、DNS查询过程,以及正向和反向查询的配置。步骤包括服务器配置、编辑BIND配置文件、添加解析信息和客户端
    的头像 发表于 05-09 13:38 2320次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>中配置DNS<b class='flag-5'>服务器</b>

    服务器怎么搭建

    服务器搭建是一个涉及多个方面的复杂过程,从硬件选择到软件配置,再到安全防护和日常维护,每一步都需细心规划与实施。下面,小库为您简要介绍服务器搭建的基本步骤。
    的头像 发表于 03-04 13:04 1214次阅读

    电子发烧友荣获飞凌嵌入式“2024年度最具价值媒体”奖

    近日,飞凌嵌入式授予电子发烧友平台 “2024年度最具价值媒体”奖 ,以表彰其在过去一年中深度合作,为电子工程师、开发者及技术爱好者群体带来的卓越价值。此次授牌不仅是对电子发烧友
    发表于 02-28 15:20

    服务器 Flexus X 实例,Docker 集成搭建 NGINX

    Docker 集成搭建 NGINX 1、购买华为云 Flexus X 实例 Flexus云服务器X实例-华为云 (huaweicloud.com)   2、docker 安装 yum install
    的头像 发表于 01-13 11:09 1233次阅读
    云<b class='flag-5'>服务器</b> Flexus X 实例,Docker 集成<b class='flag-5'>搭建</b> <b class='flag-5'>NGINX</b>

    基于华为云 Flexus 云服务器 X 实例部搭建 Halo 博客平台

    署 Halo 博客平台,充分发挥其稳定可靠的云服务优势。通过这一实践,我们将展示如何利用华为云的强大支持,实现博客平台的高效搭建与管理。依托华为云 Flexus 云
    的头像 发表于 12-26 09:40 839次阅读
    基于华为云 Flexus 云<b class='flag-5'>服务器</b> X 实例部<b class='flag-5'>搭建</b> Halo 博客<b class='flag-5'>平台</b>

    基于华为云 Flexus 云服务器 X 实例搭建 Linux 学习环境

    不仅提供了强大的计算资源,还拥有灵活的扩展能力和稳定的运行表现,为用户提供了可靠的技术支撑。特别是对于那些希望快速搭建 Linux 学习环境的用户来说,华为云 Flexus 云服务器
    的头像 发表于 12-25 17:10 910次阅读
    基于华为云 Flexus 云<b class='flag-5'>服务器</b> X 实例<b class='flag-5'>搭建</b> <b class='flag-5'>Linux</b> 学习环境

    采用 Flexus 云服务器 X 实例搭建 RTSP 直播服务器

    监控、直播和多媒体应用的核心组件。在当今高度互联的世界中,能够快速部署且稳定运行的 RTSP 服务器对于确保高质量的视频流体验至关重要。本文将指导如何在华为云 Flexus X 实例上部署一款轻量级的 RTSP
    的头像 发表于 12-24 17:36 1015次阅读
    采用 Flexus 云<b class='flag-5'>服务器</b> X 实例<b class='flag-5'>搭建</b> RTSP 直播<b class='flag-5'>服务器</b>

    何在Linux系统上设置站群服务器IP地址

    Linux系统上设置站群服务器的IP地址,可以通过以下步骤进行,主机推荐小编为您整理发布如何在Linux系统上设置站群服务器IP地址。
    的头像 发表于 12-11 10:05 863次阅读