简单的流媒体服务器(EasyDarwin的安装搭建)

article/2025/9/24 16:52:43

再项目中需要用到简单的视频播放,想着干脆搭建一个流媒体服务器,后期做视频点播 直播包括视频服务器的负载,所以索性开始自己探索搭建视频流媒体服务器,用于存储和传输视频资源

相关概念

  • 流媒体
    流媒体(Streaming Media)是一种新兴的网络传输技术,在互联网上实时顺序地传输和播放视/音频等多媒体内容的连续时基数据流。

流媒体技术包括流媒体数据采集、视/音频编解码、存储、传输、播放等领域。

  • 流媒体系统组成
    包括编码工具、流媒体数据、服务器、网络和播放器。

  • 流媒体传输过程
    如下图所示:

 

  • 传输协议
    RSVP: 资源预留协议
    RTP: 实时传输协议
    RTCP: 实时传输控制协议
    MMS: 微软流媒体服务协议
    RTSP: 实时流协议
    RTMP: 实时消息传输协议
    MIME: 多目因特网电子邮件扩展协议
  • 做了一个简单的介绍 第一次搭建其实不需要整个流程都搭建下来,先搭建视频服务器这个也是关键的一步,剩下的编码工具啊等等可以后期再视频服务器的基础上根据需求自己选择是否安装,安装哪种
  • 解决方案

  • 商业方案

  • Real Network的Real System

     
    1. 服务端软件:Helix Server

    2. 平台:Windows or Linux

    3. 文件格式:RealAudio, Realvideo, RealFlash

  • 微软的Windows Media Services

     
    1. 服务端软件:Windows Media Server

    2. 平台:Windows

    3. 文件格式:ASF, WMV

  • 苹果公司的Quick Time系列

     
    1. 服务端软件:QuickTime Streaming Server (开源版本为Darwin Streaming Server)

    2. 平台:MacOS X, Linux, Windows

    3. 文件格式:MOV, MP4

  •  

    在这三家公司的流媒体产品中,RealNetworks公司的免费服务端Helix Server Basic最大提供个流的并发,仅支持其专有编码RealAudio和RealVideo,基本上只能算是体验性的产品;微软公司的流媒体服务端Windows Media Server附带于其服务器产品Windows Server中,但只有最高版本的Windows Server Enterprice才具有完整的包括组播在内的所有流媒体服务器功能;苹果公司的Darwin Streaming Server(简称DSS)完全免费,没有任何功能限制,且符合国际标准。

    开源/免费解决方案

  • ffmpeg

     
    1. 全平台视频转换

    2. 开源

  • RED5

     
    1. Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。

    2. 开源地址:[](https://github.com/Red5/red5-server)

  • Darwin Streaming Server

    为苹果公司视频流解决方案的开源版本。
  • easyDarwin

    国内基于Darwin Streaming Server二次开发的流媒体服务器,有中文支持网站。

安装配置

RED5

使用HTTP协议播放

  1. 首先从github下载已编译版本,因为在Linux上安装使用,直接下载 red5-server-1.0.7-RELEASE.tar.gz文件即可。
  2. Java程序,在服务器上安装jre1.7版本后即可解压运行。测试阶段可以使用./red5-debug.sh启动red5服务器。在浏览器上输入http://[serverip]:5080/可以看到red5控制主页。
  3. 在red5安装目录下的webapp/vod目录下的视频文件可以在本地VLC播放器上连接http://[serverip]:5080/[filename]进行播放。

Darwin Streaming Server

功能同easyDarwin,在Linux上安装比较繁琐,所以暂时只试用easyDarwin。

easyDarwin

使用RTSP协议播放

  1. 首先从github下载源码或者已编译版本,因为上面有CentOS的已编译版本,直接下载解压即可使用。
  2. 使用root账户启动执行程序,首次启动迁移开启调试模式,./easydarwin -c ./easydarwin.xml -d
  3. 启动后,可以在执行的从终端看到调试信息。同时使用http://[serverip]:8088可以登录,默认使用admin/admin登录。
  4. 在Movies目录下放置一些视频文件,就可以在客户端使用播放器进行播放,我测试使用的是VLC。

连接流

播放流

这个是以前的版本,再我自己试过以后,EasyDarwin现在有了最新的版本,不需要gcc编译,直接下载好压缩包,解压以后运行start.sh脚本就可以

下载地址:https://github.com/EasyDarwin/EasyDarwin

下载地址上也有详细的安装步骤,按着这个来就行

如图所示:

点击下载以后再linux服务器中解压;使用命令  tar zxvf EasyDarwin-linux-8.1.0-1901141151.tar.gz

进入解压好的文件:cd EasyDarwin-linux-8.1.0-1901141151

直接运行./start.sh就可让视频服务器运行起来(有些网站上说安装easydarein需要编译啊啥的,因为他们是以前的版本,您要是不嫌烦也可以在github上找到以前的版本,安装好gcc开始编译安装,现在最新版本已经将启动脚本都写好了,我还自己写了一份也是醉了)

接下来您会看到:

这就是说明启动成功了

但是由于easydarwin的后台界面默认的端口号是10008,您直接访问http://ip/10008的时候如果10008端口不开的话,需要查看端口是否开放,使用这个命令

netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)

 

a 表示所有

n表示不查询dns

t表示tcp协议

u表示udp协议

p表示查询占用的程序

l表示查询正在监听的程序

如果您用的是centos6的话防火墙还是iptables  如果是centos7的话防火墙就是firewall  这个注意

我使用的是centos7,用的是firewall

  • 我们可以输入命令查看防火墙的状态;

    firewall-cmd --state  ;

    如何在CentOS 7下开放8080端口

  • 如果上一步处于关闭状态,输入命令:

    systemctl start firewalld.service;

    如何在CentOS 7下开放8080端口

  • 开启10008端口,输入命令:

    firewall-cmd --zone=public --add-port=10008/tcp --permanent;

    如何在CentOS 7下开放8080端口

  • 让我们来解释一下上一个命令:

    --zone=public:表示作用域为公共的;

    --add-port=10008/tcp:添加tcp协议的端口8080;

    --permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;

    如何在CentOS 7下开放8080端口

  • 输入命令重启防火墙;

    systemctl restart firewalld.service;

    如何在CentOS 7下开放8080端口

  • 输入命令重新载入配置;

    firewall-cmd --reload;

    如何在CentOS 7下开放8080端口

  • 然后你访问http://ip/10008就可以访问到easydarwin的后台系统

  • 这就搭建好了 视频服务器,如果您是简单的实现视频播放可以通过ffmpeg将本地的视频推流到您自己的视频服务器上

  • >ffmpeg -re -i C:\phpStudys\WWW\video\douying.MP4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://ip/test

  • 也许会报错 :

  • 说明您没有在本地电脑安装ffmpeg

  • FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。

    该程序只有命令行模式,因此安装到Windows下时,它与一般安装程序不同,具体安装步骤如下:

    一、FFmpeg下载:http://ffmpeg.zeranoe.com/builds/

    你可以根据自己的操作系统选择下载最新的32位或64位静态程序版本:

    wKioL1VIrTSCl1FOAAVlOZcVD6M848.jpg

    二、下载并解压FFmpeg文件夹,它会生成一个类似名为“ffmpeg-20150504-git-eb9fb50-win32-static”的新文件夹:

     

    wKioL1VIREfhdLWlAAKfLKW1EMQ720.jpg

     

    三、打开你想安装的任意磁盘,例如:d盘。新建一个名为“ffmpeg”的文件夹,将第二步解压生成的文件夹中的内容全部拷贝到“ffmpeg”文件夹中:

     

    wKiom1VIoTKA39KRAAJq5f5G6n8797.jpg

     

    四、配置FFmpeg环境变量。

    1、点击“开始菜单”,再点击“控制面板”,再点击“系统与安全”,再点击“系统”,然后点击“高级系统设置”,跳出“系统属性”窗口后,最后点击“环境变量”按钮:

     

    wKioL1VIpZjiuDl3AAObiC2DUj4845.jpg

     

    2、点击“环境变量”按钮后,跳出“环境变量”窗口,找到并选中“Path”变量,点击编辑:

     

    wKiom1VIpWeyZg25AAF_wm3KTgk709.jpg

     

    3、在“Path”变量原有变量值内容上加上“;d:\ffmpeg\bin”(注:;代表间隔,不可遗漏;d:\ffmpeg\bin代表FFmpeg的安装路径下的bin文件夹),一路点击“确定”即可。

     

    wKiom1VIp1uSCFZyAAF3BXe18Jw236.jpg

     

    五、打开命令提示符窗口。输入命令“ffmpeg  –version”。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了,你可以在命令提示行中任意文件夹下运行FFmpeg。

     

    wKioL1VIqXLi-jYVAANfAKVi_Tk312.jpg

     

    六、使用FFmpeg。你需要使用命令才能够使用FFmpeg。具体资料自行查询。

这样就可以通过ffmpeg来推流了,还有一个办法就是通过ftp将您现有的视频直接放到服务器easydarwin的解压文件中的image文件夹下

视频地址就是:http://ip:10008/images/shiping.MP

今天先分享到这里  以后我陆陆续续 会添加上来,如果各位亲有好的想法可以一起完善  一起学习

 


http://chatgpt.dhexx.cn/article/XbwYKcNo.shtml

相关文章

【ZYNQ】ZYNQ7000 私有定时器及其驱动应用示例

定时器简介 在 ZYNQ 嵌入式系统中,定时器的资源是非常丰富的,每个 Cortex-A9 处理器都有各自独立的 32 位私有定时器和 32 位看门狗定时器,这两个 CPU 同时共享一个 64 位的全局定时器(GT)。 系统框图 私有定时器 特…

ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互 前言PS端AXI接口AXI4LITE slave模块的设计后记前言 前面我们讲到使用AXI4LITE来作为总线接口来实现PS和PL的交互。同时我们为了支持《从零开始研发GPS接收…

Xilinx ZYNQ简介

ZYNQ 是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。与传统 SoC解决方案不同的是…

ZYNQ ARM核之SCU

Snoop Control Unit,窥探控制单元,详情见UG585。SCU主要是解决ARM的L1和L2的缓存协调(因为两个processor的缓存是共用的)和AXI总线的ACP存取的,也就是DMA等高速中断需求的外设。 SCU 块将两个 Cortex-A9 处理器连接到内存子系统,并包含智能管…

ZYNQ开发系列——PS开发之HelloWorld

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列——PS开发之HelloWorld 前言外设接口SDK建立工程相关操作记录前言 俗话说一日不见,如隔三秋。两年没搞PS的开发,居然连HelloWorld怎么出来都不记得了,可见知识记录的重要性,知识真的是有保…

ZYNQ开发系列——PS响应PL中断请求

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列——PS响应PL中断请求 前言中断的设置PS部分代码前言 PS和PL的交互中,还有一个中断没有讲到,在《从零开始研发GPS接收机连载》中,将会有两个中断,一个中断是505us中断,一个中断是10ms中断…

ZYNQ PS简介

ZYNQ 实际上是一个以处理器为核心的系统,PL 只是它的一个外设。Zynq-7000 系列的亮点在于它包含了完整的 ARM 处理器系统,且处理器系统中集成了内存控制器和大量的外设,使 Cortex-A9 处理器可以完全独立于可编程逻辑单元。而且实际上在 ZYNQ …

Zynq-7000 AMP运行模式下的软件切换及多版本固化运行

Zynq平台AMP运行模式下的软件切换及多版本固化运行 1. Zynq双裸核AMP运行环境构建 1 1.1 Zynq架构概要 1 1.2 Zynq启动与配置 2 1.2.1 启动流程概述 3 1.2.2 PS硬件启动阶段 3 1.2.3 PS软件启动阶段 4 1.2.4 启动文件构成 4 1.2.5 启动模式 4 1.2.6 BootROM的执行 5 1.2.7 FSB…

ZYNQ-定时器中断使用

学习内容 本文首先介绍了ZYNQ的定时器的相关内容,并学习使用ZYNQ芯片中的定时器进行操作测试。 开发环境 vivado 18.3&SDK,PYNQ-Z2开发板。 定时器简介 介绍 ZYNQ有两个Cortex-A9处理器,每个Cortex-A9处理器都有自己的专用32位计时…

zynq-1

https://www.youtube.com/watch?vVs0h0kue7p4&listPL4D6H9w4Ihdp0YRExoQXfbVMRL1GgEPCm

zynq7000 中断原理分析及IO中断解析

Zynq 7000 中断分析 文章目录 Zynq 7000 中断分析GIC及中断机理Crotex-A9常用汇编指令Zynq中断控制 GPIO中断控制单IP双通道单IP多位双IP中断源 GIC及中断机理 Crotex-A9常用汇编指令 类型指令描述备注内部数据传输指令MOV R0 R1R1 2 R0#0xFF:立即数:MOV R0, #0xF…

ZYNQ之FPGA 片内RAM读写测试实验

文章目录 前言一、添加RAM IP核二、编写测试程序三、添加ILA四、分配管脚五、Simulator仿真六、硬件调试总结 前言 本实验的主要内容是介绍如何使用 FPGA内部的RAM以及程序对该RAM数据的读写操作。Vivado软件中提供了RAM的IP核 , 我们只需通过IP核例化一个RAM,根据…

ZYNQ-XADC使用

学习内容 本文首先介绍了ZYNQ的XADC的相关内容,并学习使用ZYNQ芯片中的XADC测量芯片内部的温度电压等参数,然后进行串口打印输出。 开发环境 vivado 18.3&SDK,PYNQ-Z2开发板。 XADC介绍 简介 Xilinx模拟信号转换模块,称…

ZYNQ SDK开发调试踩坑指南

关注星标公众号,及时获取更多技术分享~ 作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 目录 坑1:裸机Ps串口收数问题 坑2:多个中断不能同时使用问题 坑3:block design中DDR3的选择 坑4:新板子能够检测到芯片&…

万变不离其宗之ZYNQ启动介绍

1、概述 ZYNQ 的详细介绍参考 XILINX 官方文档 UG585,在了解了 ZYNQ 的基本架构组成和丰富的资源后,下一步便是分析他的启动流程,以便更好的认识 ZYNQ 并开始开发工作; 关于 ZYNQ 启动方面的描述,这里我觉得涉及到几个…

ZYNQ入门

目录 一、ZYNQ简介 二、vivado工程 ①创建工程 ②添加设计文件 ③生产顶层HDL模块 ④生成 Bitstream 文件并导 三、vitis工程 ①启动vitis ②创建工程 ③编译与下载 一、ZYNQ简介 ZYNQ 是赛灵思公司(Xilinx)推出的新一代全可编程片上系统&#x…

ZYNQ架构

ZYNQ 首先,我们来了解传统的SOC架构,一般使用 ARM 作为主控,通过 ARM 的外设并行 RAM 类总线外挂 FPGA ,使用 FPGA 来做高速的数据采集或者运算,因为FPGA 有灵活性好,资源丰富,可反复编程&#…

zynqmp soc 移植vxWorks 7

1.使用worksbench4创建vsb工程; 2.使用worksbench4创建vip工程; 3.修改设备树文件,根据硬件电路选择对应的UART; 4.tftp引导启动;

ZYNQ开发系列——ZYNQ系统的搭建

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列——ZYNQ系统的搭建 DDR设置FLASH设置UART设置网口设置当我们有一个要用ZYNQ做的项目时,首先当然是把其最小系统搭建起来。这个最小系统可以交付给开发PS的同事开发裸机程序/RTOS实时操作系统/…

ZYNQ之高速AD/DA验证实验

文章目录 前言一、ADDA模块介绍二、添加ROM IP核三、添加ILA IP核四、编写测试程序五、管脚分配六、连接开发板测试总结 前言 本实验是高速AD/DA验证实验,将使用高速DA芯片实现数模转换,产生正弦波模拟电压信号,并通过高速AD芯片将模拟信号转…