学着搭建流媒体服务器

2023-05-16

操作系统:NAME="openEuler",架构:aarch64,CPU 运行模式:64-bit

目前有多个开发源代码可以搭建流媒体服务,但要先依赖gcc和cmake,所以首先安装gcc和cmake,查了一通资料,cmake安装记录如下:

1、依赖环境安装

yum -y install libyaml libyaml-devel python-setuptools libcurl-devel python-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libpcap-dev*
2、下载cmake


wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz  

3、解压、编译和安装


tar xzvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap
make -j 8
make install   

4、验证是否安装成功

cmake --version

以上部分原文来源于:https://blog.csdn.net/ghpanxt/article/details/119382195

gcc待更流媒体服务器ZLMediaKit在linux上部署与启动教程 - CherryHua-Blog

三、组建流媒体服务器

参考:组建流媒体服务器(手把手搭建RTSP流媒体服务器)

选取ZLMediaKit这个软件建立服务器服务

ZLMediaKit的github链接:https://github.com/xiongziliang/ZLMediaKit

安装openssl,参考资料:https://www.cnblogs.com/Ressurection-20191320/p/15451804.html

1、查看是否已经安装openssl

2、下载openssl

wget http://www.openssl.org/source/openssl-1.1.1c.tar.gz
tar -zxvf openssl-1.1.1c.tar.gz
cd openssl-1.1.1c
make
make install

3、安装ffmpeg

安装ffmpeg走了很多弯路,最后是按照官网给出步骤进行安装,地址如下:

CompilationGuide/Centos – FFmpeg

为防止网页以后访问不了,简单记录一下

(1)安装环境,就是gcc

# yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel

(2)建立一个文件夹放各种库文件  
mkdir ~/ffmpeg_sources

 (3)安装各种编译时需要的库

-----NASM-----
cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install

-----Yasm-----
cd ~/ffmpeg_sources
curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install

-----libx264---
cd ~/ffmpeg_sources
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install

-----libx265----
cd ~/ffmpeg_sources
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd ~/ffmpeg_sources/x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install

-----libfdk_aac-----
cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

------libmp3lame----
cd ~/ffmpeg_sources
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install

-----libopus--------
cd ~/ffmpeg_sources
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

-----libvpx--------
cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install


按照官网一步一步下来才能正确解释h265、h264两种编码

(4)安装ffmepg

------FFmpeg-----
cd ~/ffmpeg_sources
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs=-lpthread \
  --extra-libs=-lm \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libfdk_aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
make
make install
hash -d ffmpeg

5、搭建RTSP流媒体服务器

(1)在/home/中创建一个文件夹,进入目录然后下载

mkdir ZLMediaKit_Stream_Server
cd ZLMediaKit_Stream_Server
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit.git
cd ZLMediaKit
git submodule update --init

非常重要的命令(不要忘记输入):git submodule update --init

(2)构建工程

mkdir build
cd build
cmake ..
make -j4

make完成后界面

 (3)开启服务

重回/ZLMediaKit/文件夹,输入以下指令

cd release/linux/Debug
./MediaServer -d &

出现如下界面

 

查看MediaServer相关的命令,输入命令:

./MediaServer -h

如果端口被占用,则修改配置文件,文件在./MediaServer同一目录,使用vi命令修改内容

(6)测试

本人目前使用win7系统的台式机,下载一个vlc软件,安装好

在服务器安装好ffmpeg的文件夹输入命令如下

ffmpeg -re -i /root/test.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

显示

 台式机打开vlc播放器输入流地址,无法播放,同时服务器显示如下:

  以为不成功出错,到处找这个broken pipe的解决方案,直到突然想起是否服务器端口未开放,查看端口情况,554端口是开放的,再查防火墙,发现防火墙已开启,但没有相应开放的策略,于是添加策略,具体做法参考:OpenEuler 防火墙放通端口 (以 8084 为例) - 简书

开放防火墙后,再用vlc播放,终于成功

 以上就是部署的国产,前后花费我3天时间,查找大量的资料,不过最后能成功实现还是挺开心的,ffplay在ffmpeg中不是默认安装的东西,还需要SDL2的支持,目前还没实现成功编译出来,等搞出来再记录下来吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学着搭建流媒体服务器 的相关文章

  • 在失望中重找希望——我的2013年工作总结

    时间过的真的是快 来广州已整整工作了一年啦 从2012年长沙工作离职后 为了我的女朋友 我毅然踏上了南下广州的征途 来到羊城后 很快 xff0c 一个礼拜就找到了现在工作的这家公司 现在回想一下 真觉得当初没有好好斟酌一下 2013年里 x
  • 使用eclipse 4.3 经常出现卡死、无响应情况的解决方法

    最近在使用 eclipse 4 3 开发的时候 xff0c 经常出现卡死 无响应 情况 在网上搜索了一下之后发现 xff0c 发现网上还是有解决方法的 于是以记之 xff01 一 首先 xff0c 我们修改下eclipse的内存配置文件 l
  • Android学习之 移动应用<App>微信支付集成小结

    微信支付现在主要集成在 xff1a 1 移动应用开发 2 网站应用开发 3 公众账号开发 本篇主要针对移动应用App集成微信支付 xff0c 实际项目坑点分享 xff01 一 既予之 与共之 xff1a 平台资源 1 微信开放平台 xff1
  • Android学习之 主项目合并Library子项目中的Manifest

    一 项目背景 xff1a 项目XX是一个按模块化规则来进行开发的 xff0c 包含主模块A 子模块B 子模块C 子模块D xff0c 其中子模块B C D都是Library项目 xff0c 并且都包含有自己的Actity等资源文件 Andr
  • 我的2011——周年纪

    今天距我开博的日期 xff0c 有将近一年半的时间 xff0c 博客的确是一个会让我们有所期待的东西 xff0c 学习 积累 沉淀 再学习 2011年 xff0c 经历了血雨腥风的SAP市场开始主推云存储和内存运算 xff0c HANA在不
  • Android学习之 Manifest中meta-data扩展元素数据的配置与获取

    在AndroidManifest xml清单文件中 我们有时会看到如下类似的 lt meta data gt 元素开始的配置内容 xff1a lt meta data android name 61 34 com google androi
  • 工具使用之 adbWireless无线调试Android应用

    今天巧遇这个工具 xff1a adbwireless apk xff0c 于是乎 试爽了一把 xff0c 果然觉得是个不错的工具 可谓是相见恨晚 可以帮助Android开发的同事们实现手机无线调试应用程序 对 xff01 你没有听错 如果你
  • Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒

    在Android手机上 xff0c 如QQ 微信当有未读消息的时候 我们可以看到在应用的启动图标的右上角会有一个红色圈圈 且圈圈里会动态显示未读消息的数目 xff0c 如下图显示 xff1a 那么该功能是怎么实现的呢 xff1f 在万能的互
  • 工具使用之Android Studio快捷键-mac版

    最近给自己添置了一台mac 也算是完成了多年前的一个小愿望 做为Android开发者的我于是搭载了Android Studio 1 1正式版做为了我的安卓开发工具 在window上eclipse我可以畅快的玩耍 xff0c idea和as也
  • Android学习之 Scroller的介绍与使用

    类概述 Android里Scroller类是为了实现View平滑滚动的一个Helper类 通常在自定义的View时使用 xff0c 在View中定义一个私有成员mScroller 61 new Scroller context 设置mScr
  • Android 从外部网页拉起跳转到App

    业务场景 当需要从外部第三方网页中通过点击某个链接或按钮启动App应用程序 实现 新建demo工程 xff0c 并实现一个Activity xff0c 用来接收从外部跳转传入的信息 代码如下 xff1a span class hljs ke
  • Android 使用ColorMatrix改变图片颜色

    ColorMatrix的颜色矩阵介绍 颜色矩阵M是一个5 4的矩阵 xff0c 在Android中 xff0c 颜色矩阵M是以一维数组m 61 a b c d e f g h i j k l m n o p q r s t 的方式进行存储的
  • 中断处理handler不能sleep

    1 进入中断处理程序 gt 2 保存关键上下文 gt 3 开中断 xff08 sti指令 xff09 gt 4 进入中断处理程序的handler gt 5 关中 里面很多说法不是很同意 个人认为中断处理handler不能sleep原因应该不
  • opencv移动物体追踪

    本次试验用的WINFORM 要先绘制窗体 xff0c 自己测试的时候注意对象名就可以了 public Form1 InitializeComponent static Mat mat1 61 new Mat 64 34 timg jpg 3
  • 2021-10-5 每天几个LCEDA小知识——放置探测点

    立创EDA专业版之放置探测点 放置探测点 放置探测点 在PCBA验证环节中 探测点是很重要的存在 试想一下 一个产品在生产测试的时候 没有预留探测点 用于产品的调试 那么作业人员只能用探头去勾元器件 何其难受 因此在设计PCB的过程中 预留
  • KairosDB 1.13安装手记

    PS xff1a 为了处理监控数据 xff0c 我们需要一个时间序列数据库 xff0c OpenTSDB是前驱 xff0c 但是是基于Hbase实现的 xff0c 后来有了一个基于Cassandra的实现 xff0c 就是KairosDB
  • FreeRTOS(V8.0.1)系统之vTaskDelete()

    lt pre name 61 34 code 34 class 61 34 objc 34 gt void vTaskDelete TaskHandle t xTaskToDelete TCB t pxTCB taskENTER CRITI
  • PX4 pixhawk 和APM2.X 的USB驱动都是不能够在 windows 7 、windows 8的ghost系统下自动安装(已解决)

    PX4 pixhawk 和APM2 X 的USB驱动都是不能够在 windows 7 windows 8的ghost系统下自动安装的 xff0c 因为这ghost系统精简了一些不该精简的东西 解决方法有两个 xff1a 一 重新装完整版的操
  • Mybatis-Plus

    一 Mybatis Plus简介 1 简介 MyBatis Plus opens new window xff08 简称 MP xff09 是一个 MyBatis opens new window 的增强工具 xff0c 在 MyBatis
  • Offboard Control

    1 将RC开关映射到场外模式激活 在QGroundControl中加载参数并查找RC MAP OFFB SW参数 xff0c 您可以为其分配要用于激活板外模式的RC通道2 2 启用配套计算机界面 设置默认的随播计算机消息流TELEM 2 x

随机推荐

  • 用java实现歌曲大串烧

    原理 xff1a 我们使用SequenceInputStream将FileInputStream对 象进行集体整合 xff0c 实现一个大的新文件 代码如下 xff1a span style font size 16px package c
  • slam小单元——位姿矩阵

    目录 位姿矩阵测试代码 这个系列是对slam中的一些小概念做理解和简单的测试 位姿矩阵 这个反应的是坐标系和坐标系之间的关系 xff0c 作用 xff1a 移动向量将一个坐标系下的向量 xff08 坐标 xff09 表达在另一个坐标系下 如
  • 裸模张筱雨出位真艺术(1)

    网页内容已不存在
  • 张筱雨本是害羞女孩有为何如此大胆?

    网页内容已不存在
  • 张筱雨:清纯妩媚の身体对话钢筋水泥建筑

    网页内容已不存在
  • 传统行业的IT如何转向DEVOPS,运维如何转向SRE

    题记 xff1a 在菊厂这几年 xff0c 亲历了传统行业的IT部门如何在数字化转型的滚滚洪流中 xff0c 被裹挟着四处寻找光明 从15年至今 xff0c 参加了各式各样的培训 xff0c 最早是CI CD xff0c 后来推DEVOPS
  • 张筱雨是摄影界最高境界神形兼备

    网页内容已不存在
  • 张筱雨的个人简历

    生平介绍 xff1a 2000年张筱雨9月 2003年7月吉林市实验中学2003年9月 人体艺术2007年7月华北大学 ent大胆er 张筱雨 凡本网注明 来源 xff1a 华龙网 的作品 xff0c 系由本网自行采人体艺术编 xff0c
  • 西瓜书笔记5:神经网络

    目录 5 1 神经元模型 5 2感知机与多层网络 感知机 感知机模型 感知机学习策略 感知机学习算法 多层网络 5 3 误差逆传播算法 标准BP 误差逆传播 算法 变量符号 公式推导 工作流程 累积BP算法 5 4全局最小与局部极小 跳出局
  • 数据处理笔记1:类别不平衡-上采样

    类别不平衡 imblance problem 查找一些资料 样本不均讨论 https blog csdn net sp programmer article details 48047101 上采样 下采样 代价敏感 代价敏感 设计obje
  • FreeRTOS消息队列、信号量、事件组、任务通知之间的区别

    转载自 xff1a https blog csdn net p1279030826 article details 103471564 功能及区别列表 消息队列 xff08 需要传递消息时使用 xff09 在任务与任务间 中断和任务间传递信
  • AUTOSAR 基础知识简介

    目录 一 AUTOSAR 简介 二 AUTOSAR 部分术语简介 三 AUTOSAR 软件架构介绍 1 AUTOSAR的标准 xff08 1 xff09 分层架构 xff08 2 xff09 方法论 xff08 3 xff09 软件接口 x
  • CAN资料整理(二):CAN协议帧格式

    目录 一 CAN协议帧格式 1 数据帧 2 遥控帧 3 错误帧 4 过载帧 5 帧间隔 一 CAN协议帧格式 CAN协议帧的格式十分重要 xff0c 部分MCU中的CAN外设寄存器就是根据对应帧结构来进行设计的 数据帧 xff1a 用于发送
  • centOS7 系统服务配置(systemd)

    查看系统中的单元 后缀代表单元类型 xff09 及其启用状态 enable启用 xff0c 相当于systemctl enable xxxx disabled禁用 xff0c 相当于systemctl disable xxxx static
  • 正点原子minifly学习

    对正点原子的开发板学习已经好几个月了 xff0c 暂且了解了一点freertos和stm32的一些知识 本着从项目入手的原则 xff0c 从今天开始 xff0c 对正点原子小四轴无人机minifly进行学习 目录 minifly v1 3学
  • 嵌入式工程师必须知道的一些好网站

    废话不多说 xff0c 介绍一些嵌入式相关的好网站 链接已经做成超链接了 xff0c 直接点击标题即可 1 cubemx 微雪电子 关于cubemx的系列教程网上已经有很多了 xff0c 但很多只是涉及操作 xff0c 建立工程 xff0c
  • 初识Flink(1)-- 关于Flink的架构

    PS xff1a 我是半吊子Storm从业者 xff0c Storm是我司流计算平台很早就在使用的技术 xff0c 一直没有深入了解 xff0c 当时Flink已经出具规模 xff0c 但是鉴于一个Storm还没搞好 xff0c 再弄个Fl
  • 求助文(已解决):rviz中LaserScan显示接受到了信息,但图中啥也没有。发布端是vrep中一个激光传感器。

    rviz的界面 fixed frame 没错 xff0c LaserScan 中的Topic也没错 这两个我是确定的 显示收到的messages received 一直在增加 xff0c 这也说明接收到了信息了吧 xff0c 但显示界面中啥
  • UCOSIII实时操作系统------任务管理

    文章目录 前言一 任务的基本概念二 操作系统的初始化与启动1 操作系统初始化 xff0c 初始化各种内核对象和全局变量 2 启动操作系统 xff0c 创建任务后调用 三 任务的管理1 任务状态2 创建任务3 任务挂起4 任务恢复执行5 任务
  • 学着搭建流媒体服务器

    操作系统 xff1a NAME 61 34 openEuler 34 xff0c 架构 xff1a aarch64 xff0c CPU 运行模式 xff1a 64 bit 目前有多个开发源代码可以搭建流媒体服务 xff0c 但要先依赖gcc