当前位置: 首页 > news >正文

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

(ELF 1/ELF 1S开发板及显示屏)

流媒体服务器是一种专门用于传输实时数据流的服务器软件,广泛用于视频直播、视频会议、音频播放等应用场景。在嵌入式开发领域,将流媒体服务器部署到开发板上可以实现诸如视频监控、实时数据传输等功能。本文将介绍如何利用nginx和其rtmp流媒体模块,在ELF 1开发板上搭建一个高效稳定的流媒体服务器。

1、下载源码

http://nginx.org/download/

nginx-rtmp-module模块下载地址:

https://github.com/arut/nginx-rtmp-module.git

2、拷贝nginx-1.20.0.tar.gz和nginx-rtmp-module-master.zip到开发环境/home/elf/work目录下解压

elf@ubuntu:~/work$ tar -zxvf nginx-1.20.0.tar.gz
elf@ubuntu:~/work$ unzip nginx-rtmp-module-master.zip
elf@ubuntu:~/work$ cd nginx-1.20.0/

3、执行环境变量

elf@ubuntu:~/work/nginx-1.20.0$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

4、配置源码

(1)修改auto/cc/name文件

elf@ubuntu:~/work/nginx-1.20.0$ vi auto/cc/name

将21行处的“exit 1”注释掉,如下图所示:

(2)修改auto/types/sizeof文件

elf@ubuntu:~/work/nginx-1.20.0$ vi auto/types/sizeof

将15行处的“ngx_size=”修改为“ngx_size=4”

将36行处的“$CC”修改为“gcc”

将43行处的“ngx_size=`$NGX_AUTOTEST`”修改为“ngx_size=4”

(3)执行如下命令进行配置

elf@ubuntu:~/work/nginx-1.20.0$ ./configure --prefix=/home/elf/work/nginx-1.20.0/install --with-http_ssl_module --with-http_mp4_module --with-http_v2_module --with-http_v2_module --without-http_upstream_zone_module --add-module=/home/elf/work/nginx-rtmp-module-master

配置成功打印信息如下图所示:

(4)修改objs/ngx_auto_config.h文件

elf@ubuntu:~/work/nginx-1.20.0$ vi objs/ngx_auto_config.h

添加如下内容:

#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif

如下图所示: 

5、编译源码

elf@ubuntu:~/work/nginx-1.20.0$ make

6、安装

elf@ubuntu:~/work/nginx-1.20.0$ make install
elf@ubuntu:~/work/nginx-1.20.0$ ls install/
conf  html  logs  sbin

7、拷贝install安装目录下的文件到ELF 1开发板

(1)拷贝sbin下的nginx到ELF 1开发板的/home/root路径下

root@ELF1:~# cp /run/media/sda1/sbin/nginx .

(2)在ELF 1开发板/etc目录下新建nginx目录

root@ELF1:~# mkdir /etc/nginx

(3)拷贝conf、html、logs目录到开发板/etc/nginx目录

root@ELF1:~# cp -r /run/media/sda1/conf/ /etc/nginx/
root@ELF1:~# cp -r /run/media/sda1/html/ /etc/nginx/
root@ELF1:~# cp -r /run/media/sda1/logs/ /etc/nginx/
root@ELF1:~# ls /etc/nginx/
conf  html  logs

 8、修改/etc/nginx/conf/nginx.conf文件

将2行处的“#user  nobody”修改为“user  root”,如下图所示:

 9、测试

(1)查看版本信息和帮助信息

root@ELF1:~# ./nginx -V
root@ELF1:~# ./nginx -h

(2)启动nginx 

root@ELF1:~# ./nginx -p /etc/nginx/
root@ELF1:~# ps -aux

 (3)打开电脑浏览器,输入开发板的IP地址,如下图所示:

通过以上步骤就已经完成了流媒体服务器的搭建。希望本篇指南能成为您在探索嵌入式技术旅程中的得力助手。如果您在实践中遇到任何问题,欢迎随时留言交流。 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高性能web服务器nginx
  • Mac文件需要分卷压缩怎么办 Mac上怎么解压分卷压缩的文件
  • 二、什么是Vue中的响应式?Vue的响应式原理
  • Linux驱动学习之点灯(四,linux2.6)
  • 电子电气架构 --- 软件定义汽车需要怎么样的EE架构
  • Excel“取消工作表保护”忘记密码并恢复原始密码
  • 【数学建模】优化模型——两辆平板车装货问题
  • linux应用编程--网络编程(socket编程基础)
  • 企业为什么需要安装加密软件
  • PostgreSQL的postgres主进程
  • 海外媒体投稿:怎样在法国媒体发稿宣传中获得成功
  • linux debian12 离线安装jdk1.8 (解决root和普通用户不能同时拥有java)
  • 【从Qwen2,Apple Intelligence Foundation,Gemma 2,Llama 3.1看大模型的性能提升之路】
  • Java中hashcode()和equals()关系
  • Python爬虫——简单网页抓取(实战案例)小白篇
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular 2 DI - IoC DI - 1
  • ComponentOne 2017 V2版本正式发布
  • Fastjson的基本使用方法大全
  • jQuery(一)
  • js数组之filter
  • leetcode讲解--894. All Possible Full Binary Trees
  • MySQL数据库运维之数据恢复
  • Puppeteer:浏览器控制器
  • PV统计优化设计
  • quasar-framework cnodejs社区
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • vuex 笔记整理
  • 初探 Vue 生命周期和钩子函数
  • 简单实现一个textarea自适应高度
  • 解析 Webpack中import、require、按需加载的执行过程
  • 使用 Xcode 的 Target 区分开发和生产环境
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​zookeeper集群配置与启动
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $.proxy和$.extend
  • ( 10 )MySQL中的外键
  • (33)STM32——485实验笔记
  • (4)logging(日志模块)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)php投票系统 毕业设计 121500
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (十三)Flink SQL
  • (五)网络优化与超参数选择--九五小庞
  • (转)重识new
  • (轉貼) UML中文FAQ (OO) (UML)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .gitignore
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .Net - 类的介绍