【网络通信 -- 直播】项目实战记录 -- 搭建一个简单的视频直播系统 (ubuntu + nginx + nginx_rtmp 模块 + ffmpeg + vlc 播放器)

【网络通信 -- 直播】项目实战记录 -- 搭建一个简单的视频直播系统 (ubuntu + nginx + nginx_rtmp 模块 + ffmpeg + vlc 播放器)

【1】安装配置 nginx 与 nginx_rtmp 模块

【1.1】下载编译安装好zlib、openssl、pure库

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar xf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
tar xf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
./config
make && make install


wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar xf pcre-8.42.tar.gz
cd pcre-8.42
./configure
make && make install

【1.2】下载 nginx-rtmp-module

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
unzip master.zip

【1.3】下载安装 nginx

wget http://nginx.org/download/nginx-1.7.5.tar.gz
tar -zxvf nginx-1.7.5.tar.gz
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module-master --with-http_ssl_module
make        
make install

【1.4】启动和关闭 nginx

cd /user/local/nginx

# 启动和关闭nginx
sudo /usr/local/nginx/sbin/nginx
sudo /usr/local/nginx/sbin/nginx -s  stop

【1.5】访问测试 nginx

访问虚拟机中的 nginx

需要进行端口映射

【1.6】配置 nginx

rtmp {  
    server {  
        listen 1900;  
        application myapp {  
            live on;  
        }
    }  
}

【2】安装配置 FFMPEG

【2.1】安装必要的库

sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev zlib1g-dev

【2.2】安装 SDL

sudo apt-get install libsdl1.2-dev
sudo apt-get install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev

【2.3】安装 YASM / NASM

tar -zxvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
make install
tar -xjvf nasm-2.14.tar.bz2
cd nasm-2.14
sudo ./configure
sudo make
sudo make install

【2.4】安装 X264

tar -xjvf last_x264.tar.bz2
cd x264
sudo ./configure –-enable-shared 
sudo make
sudo make install

【2.5】安装 X265

sudo apt-get install mercurial cmake cmake-curses-gui build-essential yasm
tar -zxvf x265_1.9.tar.gz
cd x265/build/linux
sudo ./make-Makefiles.bash	选择好之后,输入 q 退出
sudo make
sudo make install

【2.6】安装 FFMPEG

sudo tar -xjvf ffmpeg-3.1.11.tar.bz2
cd ffmpeg-3.1.11
sudo ./configure --prefix=/usr/local/ffmpeg/ --enable-shared --enable-yasm --enable-libx264 --enable-libx265 --enable-gpl --enable-pthreads  --extra-cflags=-I/usr/local/include/ --extra-ldflags=-L/usr/local/lib
sudo make 
sudo make install

【2.7】配置 FFMPEG 命令

sudo vim /etc/ld.so.conf
加入路径 /usr/local/ffmpeg/lib
sudo ldconfig

sudo vim ~/.bashrc
#ffmpeg
FFMPEG="/usr/local/ffmpeg"
export PATH="$FFMPEG/bin:$PATH"
source ~/.bashrc

【3】搭建简单的视频直播系统

ffmpeg 推流

ffmpeg -re -i test1.mp4 -ar 22050 -f flv rtmp://192.168.91.130:1900/myapp/test

VLC 服务器拉流

推流/拉流效果

【4】典型问题总结

【4.1】ERROR: x265 not found using pkg-config

解决方案 :

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

【4.2】/usr/local/nginx/logs/nginx.pid 路径下找不到nginx.pid

解决方案

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

【4.3】ffmpeg: error while loading shared libraries: libavdevice.so.57

解决方案

sudo echo “/usr/local/ffmpeg/lib” >> /etc/ld.so.conf
sudo ldconfig

【4.4】ffmpeg/x264:ERROR: libx264 not found

解决方案

修改 x264 编译配置选项
./configure --enable-shared  --prefix=/usr/local/x264

修改 FFMPEG 编译配置选项
加入配置项
--extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib

参考致谢

本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。

【1】ubuntu下安装ffmpeg和X264

【2】x265编译

【3】在linux下源码编译x265

【4】FFmpeg+Nginx搭建RTMP直播推流服务

【5】直播推流服务器端搭建

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值