学着搭建流媒体服务器
操作系统: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的支持,目前还没实现成功编译出来,等搞出来再记录下来吧。
学着搭建流媒体服务器相关推荐
- ffmpeg libx264_nginx+ffmpeg搭建流媒体服务器(直播流)
这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体 ...
- 音视频开发(8)---nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/redstarofsle ...
- obs nginx-rtmp-module搭建流媒体服务器实现直播 ding
欢迎大家来此浏览,希望大家一块在此学习,共同交流进步. 接下来我就简单跟大家介绍一下利用nginx来搭建流媒体服务器. 我选择的是腾讯云服务器 1.下载nginx-rtmp-module: nginx ...
- Linux---nginx+ffmpeg搭建流媒体服务器
这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体 ...
- 用vlc搭建流媒体服务器
用vlc搭建流媒体服务器 作者:axu82119 来源:CSDN知识库 VLC是一种开源的播放器,同时也可以用作流媒体服务器.今天试验了几种搭建流媒体服务器的方法,这里做一个归纳总结. 本文使用的VL ...
- nginx+ffmpeg搭建流媒体服务器
安装ffmpeg: 下载FFmpeg和libx264的包 ffmpeg-2.4.1.tar.bz2 last_x264.tar.bz2 libx264需要yasm,所以先安装yasm apt-get ...
- nginx的rtmp搭建流媒体服务器实现直播流
最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...
- 搭建流媒体服务器 PingOS 平台搭建
搭建流媒体服务器 PingOS 平台搭建 搭建流媒体服务器 PingOS 平台搭建 - 知乎 搭建流媒体服务器 PingOS 平台搭建 - Debug客栈
- srs服务器播放文件,使用SRS+ffmpeg搭建流媒体服务器播放m3u8格式视频
1.简介 srs是一个简单的流媒体开源直播软件,ffmpeg是完整的跨平台解决方案,用于记录,转换和流传输音频和视频. 2.相关 官网下载页面:点击我到达 在线演示播放页面:点击我到达 Git页面:点 ...
最新文章
- python第三方库无法下载_无法使用从PyCharm中下载的第三方库
- DevExpress控件之GridControl、GridView
- 春招不迷茫,模板刷题101实验室上线啦
- java跳过_java跳过https证书直接请求工具类
- adf开发_ADF:动态视图对象
- 通过tomcat日志定位错误
- Java中的自增操作符与中间缓存变量机制
- 听说你还不懂面向对象??
- java unicode32_【JAVA SE基础篇】32.String类入门
- Android学习总结(6)——Android日常开发总结的技术经验60条
- 更改数据库表中有数据的字段类型NUMERIC(18,2)为NUMERIC(18,6)
- Linux下动态共享库加载及使用详解
- 【VS】项目属性配置(上)
- 联想 Thinkserver TS250服务器RAID1 重建测试
- 使用Canvas绘制简单工程符号(续)
- 机械制造技术类毕业论文文献都有哪些?
- JS 实现网页截屏五种方法
- 彻底解决阿里云图床上传图片,图片不显示问题
- android广告弹窗插屏,cocos2dx android添加广点通广告平台的---插屏广告
- 解决win10内存占用逐渐变大(亲测有效)