HLS流媒体部署(菜鸡写的菜鸡教程)

HLS流媒体部署

昨天部长要我搞一个流媒体的服务器,本来以为很难谁知道如此简单,感谢网上的大佬们下面说说流程和我部署的流程,稍微会一点的就知道我比较啰嗦,为了萌新多担待下
先说一下我是看到了这篇文章进行操作的感谢大佬:
https://www.cnblogs.com/xuey/p/9244434.html

第一步配置nginx 系统ubantu 系统(记得关闭防火墙)

下面需要用到的压缩包:

链接:https://pan.baidu.com/s/16KmxO-Z-s3tNsbb2KVAF9A
提取码:76ar

我是参考https://blog.csdn.net/redstarofsleep/article/details/45092127这位大佬的与其说参考还不如说是照搬,嘿嘿(感谢大佬)其中还是有些细微的差别的先看我这个吧。

1.第一个需要C++编译器,在ubuntu下直接安装g++即可

apt-get install g++

2.找的资料是在官网下载,但我就openssl-1.0.1i.tar.gz找到了,其他我找的csdn花钱下载的(心疼我的一块五)

pcre-8.32.tar.gz,zlib-1.2.8.tar.gz,openssl-1.0.1i.tar.gz

3.当然解压下载的东西了(解压的路径一定要记好后面有用哦)

tar -xzvf pcre-8.32.tar.gz
tar -xzvf zlib-1.2.8.tar.gz
tar -xzvf openssl-1.0.1i.tar.gz

4.在同文件下(也就是home/user文件下),下载

nginx-rtmp-module

下载命令git clone https://github.com/arut/nginx-rtmp-module.git (ubantu如果没安装git记得先安装哟 apt-get install git )

我是在home文件夹里建立了一个user文件夹把压缩包放进去然后解压到当前文件夹的

4.下载nginx 我是去官网下载的最新版本, 如果想和我一样 我稍等上传到百度云

我下载的是 nginx-1.18.0.tar.gz

tar -xzvf nginx-1.18.0.tar.gz

然后也是放到user文件 解压到当前文件夹里的

然后进去文件 cd nginx-1.18.0

然后执行:

./configure --prefix=/usr/local/nginx --with-pcre=/home/user/pcre/pcre-8.32 --with-zlib=/home/user/zlib/zlib-1.2.8 --with-openssl=/home/user/openssl/openssl-1.0.1i --add-module=/home/user/nginx-rtmp-module

解释一下:

--prefix=/usr/local/nginx   //是你安装的路径
--with-pcre=/home/user/pcre-8.32   //nginx安装默认会自动检测系统是否安装pcre,无需指定编译参数,如果系统没有pcre,会报错提示缺乏依赖库。(切记路径要对哦)
--with-zlib=/home/user/zlib-1.2.8  //同上都是安装依赖库(切记路径要对哦)
--with-openssl=/home/openssl/openssl-1.0.1i  //同上都是安装依赖库(切记路径要对哦)

重要的事说三遍 ,因为我被坑了编不过去当时一个劲的怀疑是版本的问题,哎

然后执行make 和make install

记录下以前的错误 如果make找不到执行下面的还是出错,找找百度吧,我也不知道了
ubantu make找不到

sudo apt-get install build-essential  

然后进去下 nginx安装的路径启动下 看是否报错 路径就是上面设置的哦

 --prefix=/usr/local/nginx   //是你安装的路径  /usr/local/nginx是设置的路径

然后打开 sbin文件执行 nginx

然后打开浏览器输入

http://自己虚拟机的ip  //例如 http://192..168.8.108  192.168.8.108是我自己虚拟机的ip

出现 nginx的欢迎界面成功了

或者你执行netstat -ltn 看看80端口开启了吗

然后./nginx -s stop(强制结束nginx)或者./nginx -s quit(温柔结束nginx)
./nginx -s reload (修改配置文件后重新加载生效)

二:安装FFmpeg
简单说一下,ffmpeg是真的好用!!以后如果搞音视频你缺不了它。
借鉴下大佬的https://blog.csdn.net/redstarofsleep/article/details/45092145

1.当然是下载安装包了ffmpeg-2.4.1.tar.bz2 和 last_x264.tar.bz2

其实我下载是 ffmpeg官网的最新版ffmpeg-4.2.3.tar.bz2

last_x264.tar.bz2在哪里下的我给忘了(但最新的版本都有h264编码我认为这个可以不下载了,但我为了避免麻烦还是加上了,我后面上传到百度云,有需要可以下载 所以下,FFmpeg已经支持HEVC编码了非常厉害)。

2.libx264需要yasm,所以先安装yasm

apt-get install yasm

3.然后安装libx264

aptitude install libx264-dev

4.解压 last_x264.tar.bz2

tar -xjvf last_x264.tar.bz2

5.安装libx264

./configure --enable-shared --enable-pic
make
make install

6.下面就是安装依赖哦(按顺序安装不要偷懒也不要漏下哦)

注意:没安装aptitude 要先安装哦 apt-get install aptitude

(1)	aptitude install libfaac-dev
(2)	aptitude install libmp3lame-dev
(3)	aptitude install libtheora-dev
(4)	aptitude install libvorbis-dev
(5)	aptitude install libxvidcore-dev
(6)	aptitude install libxext-dev
(7)	aptitude install libxfixes-dev

7.解压ffmpeg

tar -xjvf ffmpeg-2.4.1.tar.bz2

8.然后编译安装
然后进去文件 cd ffmpeg-4.2.3 大哥们找好你们自己解压的路径进去哦。

注意哦:可能安装不上原因是因为有两个依赖找不到我也找不到原因,把这两个去掉就好了
我记得好像是–enable-libfaac和–enable-x11grab 如果报错的话去掉就好了,我后面测了没什么影响原谅我这个菜鸡。注意复制的时候空格和转行我被坑了

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis
如果报错:新的执行命令是
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads  --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid  --enable-libvorbis

执行完后 执行

make
make install

接下来就比较简单了配置好就行。
三;配置nginx
1.打开你安装的nginx文件找到nginx.conf

1.在http service 里面加个 location /hls

location /hls {
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        root /tmp;
        add_header Cache-Control no-cache;
}
然后listen  80改成8080

2.配置rtmp
在最后面配置

  rtmp {
server {
    listen 1935;
    application myapp {
      live on;
    }
    application hls {
        live on;
        hls on;
        hls_path /tmp/hls;
hls_fragment 5s;
    }
  }

然后重启下nginx 重启方法我在文中写到了哦

然后输入 netstat -ltn 看看是否开启了,如果开启了会有一个8080端口还有1935端口哦

然后用ffmpeg推流到nginx:

事先找好 一个mp4格式的文件


放到ubantu 某个文件里

然后执行

RTMP流,推流至rtmplive:

ffmpeg -re -i "/usr/ceshi.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://这里填写自己的ip地址哦:1935/rtmplive/test1

注释:// /usr/ceshi.mp4 就是你放入ubantu系统的位置

HLS流,推流至hls:

ffmpeg -re -i "/usr/ceshi.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://这里填写自己的ip地址哦:1935/hls/test2

注释:// /usr/ceshi.mp4 就是你放入ubantu系统的位置

解释下:HLS推流你会看到非常多的ts临时文件 在 /tmp/hls文件下。这些都是临时的,nginx会定时删除类似于直播类型
当推流的时候可以查看你推流出去的视频
下载vlc播放器然后 左上角有个媒体,点击然后 打开网络串流,网络,然后输入 地址就好了
媒体->打开网络串流->网络,输入ip
如果是正在RTMP流,推流至rtmplive:

那就输入: rtmp://自己的ip:1935/myapp/test1
在这里插入图片这描述
HLS流,推流至hls:

那就输入:http://自己的ip:8080/hls/test2.m3u8
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值