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

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

3天内不再提示

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

ZLG致远电子 2023-01-13 09:27 次阅读

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

dd0cd37a-918d-11ed-ad0d-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流媒体服务器的搭建过程。

dd0cd37a-918d-11ed-ad0d-dac502259ad0.jpg  方案实现

以M3568平台为例,在嵌入式Linux系统上搭建Nginx-RTMP流媒体服务器以及通过ffmpeg/gstreamer实现简单的推拉流过程。实现框架如图1所示。dd2405ea-918d-11ed-ad0d-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所示。

dd35fdc2-918d-11ed-ad0d-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即可预览视频流画面。

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

    关注

    5056

    文章

    18953

    浏览量

    301638
  • 服务器
    +关注

    关注

    12

    文章

    8926

    浏览量

    85045
收藏 人收藏

    评论

    相关推荐

    嵌入式系统与服务器有什么区别

    嵌入式系统与服务器在多个方面存在显著的差异,这些差异主要体现在设计目标、硬件配置、软件系统、应用领域、技术特点以及成本效益等方面。
    的头像 发表于 09-29 16:37 208次阅读

    嵌入式linux开发的基本步骤有哪些?

    之前,首先需要选择合适的硬件平台。硬件选择需要考虑以下几个方面: 1.1 处理 嵌入式Linux开发需要一个处理,常见的处理
    的头像 发表于 09-02 09:11 332次阅读

    嵌入式linux开发板怎么操作

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台。它通常包括一个处理、内
    的头像 发表于 09-02 09:09 300次阅读

    嵌入式linux开发板芯片的工作原理

    了处理、存储、输入/输出接口等硬件资源的嵌入式系统开发平台。它通常采用Linux操作系统作为底层软件
    的头像 发表于 09-02 09:07 296次阅读

    ElfBoard技术贴|如何在ELF 1开发板上搭建流媒体服务器

    流媒体服务器是一种专门用于传输实时数据流的服务器软件,广泛用于视频直播、视频会议、音频播放等应用场景。在嵌入式开发领域,将流媒体
    的头像 发表于 08-20 14:48 483次阅读
    ElfBoard<b class='flag-5'>技术</b>贴|如<b class='flag-5'>何在</b>ELF 1开发板上<b class='flag-5'>搭建</b><b class='flag-5'>流媒体</b><b class='flag-5'>服务器</b>

    深度学习算法在嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从嵌入式
    的头像 发表于 07-15 10:03 1050次阅读

    服务器linux搭建ftp服务访问不了怎么解决?

    如果你在云服务器linux搭建了FTP服务但无法访问,这可能是由于几种原因引起的。以下是一些常见问题和解决方法: 1、防火墙配置:确保防火墙允许FTP流量通过。FTP
    的头像 发表于 04-18 17:23 1244次阅读

    服务器linux中如何搭建php运行环境?

    要在云服务器Linux系统上搭建PHP运行环境,您可以按照以下步骤进行: 1、安装PHP: 使用包管理工具(如apt、yum等)安装PHP及其相关模块。例如,在Ubuntu系统上,您可以运行以下
    的头像 发表于 03-21 17:08 570次阅读

    嵌入式软件开发应该掌握哪些知识?

    和 Thumb 模式的区别,以及 ARM Cortex 系列处理的特性。 嵌入式 ARM 开发:学习如何在嵌入式系统中使用 ARM 处理
    发表于 02-19 11:23

    高端嵌入式实验平台

    一、整体概述 该嵌入式平台具有前沿性、专业性、高集成度、功能丰富等特点,平台涵盖嵌入式计算机技术嵌入式硬件接口、
    的头像 发表于 01-29 09:55 474次阅读
    高端<b class='flag-5'>嵌入式</b>实验<b class='flag-5'>平台</b>

    Apache服务器Nginx服务器

    Apache和Nginx都是常见的开源Web服务器软件,它们用于处理HTTP请求并提供网站和应用程序的服务。下面是对Apache和Nginx的一些基本特点的比较: 一、Apache H
    的头像 发表于 01-22 16:48 488次阅读

    搭建ftp服务器的步骤

    搭建ftp服务器的步骤  搭建FTP服务器是一项需要一定技术知识的任务,但是只要按照以下步骤进行操作,您就能成功
    的头像 发表于 12-07 16:32 1089次阅读

    【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

    搭建Linux平台交叉编译环境在上一篇文章我们介绍了使用AWTK开发简单的应用并在PC上模拟运行,本篇文章就来介绍一下怎么让应用程序运行在嵌入式L
    的头像 发表于 12-07 12:08 630次阅读
    【从0开始创建AWTK应用程序】编译应用到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>平台</b>运行

    HFS如何快速搭建http服务器

    HFS 是一个轻量级的HTTP 服务工具,3.0版本前进提供Windows平台安装包,3.0版本开提供Linux和macOS平台的安装包。HFS更适合在局域网环境中
    的头像 发表于 11-14 10:32 1048次阅读
    HFS如何快速<b class='flag-5'>搭建</b>http<b class='flag-5'>服务器</b>

    基于ARM-Linux嵌入式系统的多进程并发服务器设计

    电子发烧友网站提供《基于ARM-Linux嵌入式系统的多进程并发服务器设计.pdf》资料免费下载
    发表于 11-08 15:31 0次下载
    基于ARM-<b class='flag-5'>Linux</b><b class='flag-5'>嵌入式</b>系统的多进程并发<b class='flag-5'>服务器</b>设计