树莓派使用nginx+rtmp搭建音频直播流媒体服务器

前言

想使用树莓派连接usb音频采集卡实时采集收音机接收到的音频,树莓派上运行着由nginx+RTMP 搭建的直播流媒体服务器,这样就可以在客户端上通过支持rtmp串流协议的播放器就可以正常接收到音频直播流了。

采用方案

  • 树莓派作为流媒体服务器
  • 直播协议:RTMP
  • 实时音频源:usb音频采集卡实时采集的收音机电台音频

什么是nginx/h4>

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

什么是RTMP/h3>

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。

NGINX-RTMP 流媒体服务器

基于NGINX模块,使用C语言编写的流媒体服务器,也是目前市场上使用最多的流媒体服务器。伴随着2012年CDN业务的扩展,直播业务需求暴涨,由于NGINX-RTMP中直播点播共用一套服务器,且用户熟悉信任NGINX;NGINX-RTMP逐渐处于行业垄断地位。

场景介绍

建议使用最新的树莓派镜像文件,我用之前做过一些东西在上面的树莓派系统在安装nginx服务器时出现了找不到很多需要的依赖,后来又换成了树莓派最新的raspbian系统。

本文所用树莓派系统镜像:
本文所用树莓派系统版本:

树莓派搭建nginx+rtmp流媒体服务器步骤

先执行更新一下当前系统的软件列表,再进行以下操作。

1、安装所需要的依赖;

2、安装nginx和rtmp,依此执行以下每一行命令;

3、执行 修改nginx配置文件,添加以下内容。

4、启动nginx+rtmp流媒体服务器

5、安装ffmpeg,默认树莓派最新的raspbian系统中已经带有ffmpeg;

6、将usb音频采集卡插到树莓派的usb口,启动ffmpeg从usb音频采集卡实时采集实时的外部收音机电台音频,并推流到树莓派上搭建好的nginx+rtmp流媒体服务器。

参数说明:主要参数:
-f 设定输出格式
-i 设定输入流(hw:1,0为外接的usb音频采集卡设备,hw:1,0的1指的是第一个外部设备,因为树莓派内部没有声卡,所以只能使用外部的usb音频采集卡);
-ar 设定采样率(因为输出为flv格式,所以采样率只能选择44100,22050,11025这三种);

另外,192.168.10.109为树莓派的IP地址。

7、在windows客户端中使用PotPlayer打开链接“rtmp://192.168.10.109/live/audio”,即可收听到实时的收音机电台音频,延时大概为2秒。

参考资料

1、树莓派使用nginx+rtmp搭建直播服务器 – zizi7的专栏 – CSDN博客
2、树莓派nginx+rtmp搭建直播流媒体服务 – 夜魂 – 开源中国
3、树莓派使用nginx+rtmp搭建直播服务器 – 程序园
4、树莓派使用nginx+rtmp搭建直播服务器 | Cyckerr
5、使用树莓派实现24小时不间断直播 – EdmondFrank’s 时光足迹
6、用树莓派做 RTMP 流直播服务器,可推送至斗鱼直播 | 树莓派实验室
7、FFmpeg 录制桌面、麦克风、摄像头 – 勤能补拙 – CSDN博客
8、ffmpeg 音视频集大成者之学习-iibull-ChinaUnix博客
9、ALSA 音频工具 amixer、aplay、arecord – 卢小喵的学习笔记 – CSDN博客
10、Linux使用ffmpeg直播推流(很重要的一个参考资料)
11、ffmpeg 音视频集大成者之学习-iibull-ChinaUnix博客
12、FFmpeg 录制桌面、麦克风、摄像头 – 勤能补拙 – CSDN博客

来源:唐传林

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月16日
下一篇 2018年11月16日

相关推荐