直播入门(三)动手实现一个简单的直播

文章目录

  • 环境搭建
    • nginx安装与部署
      • 源码安装
      • 配置
    • ffmpeg安装
  • 推流与播放

环境搭建

搭建一个直播流程需要一下几个组件:

  1. nginx:作为直播的服务器,接收推流过来的数据,以及负责分发数据流。
  2. ffmepg:推流客户端
  3. VLC media player:播放器,用来做为直播的客户端。

nginx安装与部署

源码安装

在安装nginx前你需要先下几个依赖库:

  • zlib 库
  • pcre库(rewrite 模块需要)
  • openssl库(ssl 功能需要openssl库)

然后在nginx官网上查询最新的版本,然后修改链接:http://nginx.org/download/nginx-1.15.11.tar.gz中的版本号下载nginx源码。
然后下载RTMP模块源码。依次执行下面的命令:

cd 到nginx 目录
# 将各个模块的目录替换成自己的目录
./configure --add-module=../nginx-rtmp-module-master --with-pcre=../pcre-8.43 --with-openssl=../openssl-master --with-zlib=../zlib-1.2.11
sudo make 
sudo make install

即可完成安装,nginx将默认安装到usr/local/nginx目录下,如果不清楚的话,在执行了configure脚本之后,会输出默认的具体路径,注意看一下即可。输出如下

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

配置

这里我提供一下配置文件,直接copy即可(PS:RMTP的github官网也有有对应的配置,我这个是简化版):

worker_processes  4;
worker_rlimit_nofile 30000;

events {
    worker_connections  4096;
}

rtmp {  
    server {
        listen 1935;
        chunk_size 4096;

        application live{
            live on;
        }
    }
}

配置完之后执行sudo /usr/local/nginx/sbin/nginx 启动ngixn。执行/usr/local/nginx/nginx -s reload 就可以重新加载配置了。

ffmpeg安装

从Ubuntu 15.x开始,ffmpeg就已经纳入了官方镜像源中,所以安装也很简单:

sudo apt install ffmpeg

也可以源码安装。我更倾向于源码安装,所以这里列一下安装的方法, 也很简单。
先从官网上下载最新版的源码。
解压后执行

./confiure
sudo make
sudo make install

推流与播放

  • 推流
    执行下面的命令即可推送流到直播流服务器(也就是上面启动的nginx)
# 改名命令的含义是将本地的test.mp4文件推送到nginx服务器。
# 推送的直播流地址中的IP是你本机的IP,通过ifconfig命令就可以查看了。
ffmpeg -re -i test.mp4 -acodec copy -vcodec copy -f flv rtmp://192.168.12.129:1935/live_test/test_1
  • 播放
    可以在Ubuntu的软件商店下载安装VLC,也可以在Window下安装。然后将直播流链接在VLC中打开即可。下面给个效果图
    直播入门(三)动手实现一个简单的直播_第1张图片

你可能感兴趣的:(直播)