![wKgaombELVOActtnAAiTWFXdZfk755.png](https://file1.elecfans.com/web2/M00/04/6B/wKgaombELVOActtnAAiTWFXdZfk755.png)
流媒體服務器是一種專門用于傳輸實時數據流的服務器軟件,廣泛用于視頻直播、視頻會議、音頻播放等應用場景。在嵌入式開發領域,將流媒體服務器部署到開發板上可以實現諸如視頻監控、實時數據傳輸等功能。本文將介紹如何利用nginx和其rtmp流媒體模塊,在ELF 1開發板上搭建一個高效穩定的流媒體服務器。
1、下載源碼
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”注釋掉,如下圖所示:
![wKgZombELeOARJCzAAF2XSVrUo0617.png](https://file1.elecfans.com/web2/M00/03/7F/wKgZombELeOARJCzAAF2XSVrUo0617.png)
(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”
![wKgZombELi-AT4ZmAAE7zPH--7Y159.png](https://file1.elecfans.com/web2/M00/03/7F/wKgZombELi-AT4ZmAAE7zPH--7Y159.png)
(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
配置成功打印信息如下圖所示:
![wKgZombELnGAPBHLAAUNEsaglwA915.png](https://file1.elecfans.com/web2/M00/03/7F/wKgZombELnGAPBHLAAUNEsaglwA915.png)
(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
如下圖所示:
![wKgaombELr2AJxvKAAKU0d2guWY811.png](https://file1.elecfans.com/web2/M00/04/6B/wKgaombELr2AJxvKAAKU0d2guWY811.png)
5、編譯源碼
elf@ubuntu:~/work/nginx-1.20.0$ make
編譯成功如下圖所示:
![wKgZombELvmAGdJDAAX-bNGWi7A620.png](https://file1.elecfans.com/web2/M00/03/7F/wKgZombELvmAGdJDAAX-bNGWi7A620.png)
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”,如下圖所示:
![wKgaombEL5CACNYEAAINW6fO1Ik348.png](https://file1.elecfans.com/web2/M00/04/6B/wKgaombEL5CACNYEAAINW6fO1Ik348.png)
9、測試
(1)查看版本信息和幫助信息
root@ELF1:~# ./nginx -V root@ELF1:~# ./nginx -h
![wKgZombEL72AEDPKAANoofmtVaU777.png](https://file1.elecfans.com/web2/M00/03/7F/wKgZombEL72AEDPKAANoofmtVaU777.png)
(2)啟動nginx
root@ELF1:~# ./nginx -p /etc/nginx/ root@ELF1:~# ps -aux
![wKgZombEL--AOFObAARyQWR3CE8788.png](https://file1.elecfans.com/web2/M00/03/7F/wKgZombEL--AOFObAARyQWR3CE8788.png)
(3)打開電腦瀏覽器,輸入開發板的IP地址,如下圖所示:
![wKgZombEO-KAO3qmAAC5oJCqIgY075.png](https://file1.elecfans.com/web2/M00/03/82/wKgZombEO-KAO3qmAAC5oJCqIgY075.png)
通過以上步驟就已經完成了流媒體服務器的搭建。希望本篇指南能成為您在探索嵌入式技術旅程中的得力助手。如果您在實踐中遇到任何問題,歡迎隨時留言交流。
-
嵌入式
+關注
關注
5092文章
19177瀏覽量
307680 -
服務器
+關注
關注
12文章
9304瀏覽量
86062 -
流媒體技術
+關注
關注
0文章
3瀏覽量
5439 -
流媒體
+關注
關注
1文章
195瀏覽量
16703 -
開發板
+關注
關注
25文章
5121瀏覽量
98195
發布評論請先 登錄
相關推薦
ElfBoard技術貼|如何在NXP源碼基礎上適配ELF 1開發板的UART功能
![<b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>NXP源碼基礎<b class='flag-5'>上</b>適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b>的UART功能](https://file1.elecfans.com/web2/M00/08/D1/wKgaombzpf2ANbDaAABFevJym7M948.png)
ElfBoard技術貼|ELF 1開發板適配攝像頭詳解
![<b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b>適配攝像頭詳解](https://file1.elecfans.com/web3/M00/04/02/wKgZO2duDgOAAHDXAAA9ZyCKWSc079.png)
飛凌ElfBoard ELF 1板卡-如何在ELF 1開發板上實現對java的支持
飛凌嵌入式-ElfBoard-項目分享|基于ELF 1S開發板完成的物聯網開源項目
什么是流媒體服務器?
webrtc流媒體轉發服務器是如何定義的
【技術分享】如何在嵌入式Linux平臺上使用Nginx搭建RTMP流媒體服務器?
【技術分享】如何在嵌入式Linux平臺上使用Nginx搭建RTMP流媒體服務器?
![【<b class='flag-5'>技術</b>分享】如<b class='flag-5'>何在</b>嵌入式Linux平臺上使用Nginx<b class='flag-5'>搭建</b>RTMP<b class='flag-5'>流媒體</b><b class='flag-5'>服務器</b>?](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
ELF 1技術貼|如何將Python3.6.9移植到開發板上
![<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如何將Python3.6.9移植到<b class='flag-5'>開發板</b><b class='flag-5'>上</b>](https://file1.elecfans.com/web2/M00/C0/94/wKgZomXW5EiAf1EoAABBQv84DIc700.png)
ELF技術貼|如何在開發板上實現對Java的支持
![<b class='flag-5'>ELF</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>開發板</b><b class='flag-5'>上</b>實現對Java的支持](https://file1.elecfans.com/web2/M00/C5/1A/wKgaomXxaDCADbm_AAA89wQPeVU499.png)
ElfBoard技術貼|在NXP源碼基礎上適配ELF 1開發板的按鍵功能
![<b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|在NXP源碼基礎<b class='flag-5'>上</b>適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發板</b>的按鍵功能](https://file1.elecfans.com/web2/M00/FB/88/wKgaomaN6ZaAeoxXAABAhfkiKBc281.png)
評論