Html5直播(2): 直播源的制作(以及Ubuntu安装Ffmpeg)

直播源的制作对整个开发和调试很重要。

方式1: Nginx+ffmpeg(可扩展)

  1. 安装Nginx
  2. 安装ffmpeg
  3. 配置Nginx
  4. 准备视频
  5. 利用ffmpeg推流

1.1 安装nginx:

mac通过:brew install nginx-full --with-rtmp-module

windows通过:

 

剩下的命令:

 集成nginx-rmtp-module:windows有点麻烦,所以换成了ubuntu.(这里看文末)

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务,ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频

1.2 安装ffmpeg:

mac: brew install ffmpeg

windows:

 

添加到环境变量下:

 

 

1.3 配置Nginx:

mac:位于/usr/local/etc/nginx/下有个nginx.conf.

windows下:

 需要配置的是:

  • 配置服务rtmp hls http-flv

hls_path是分割文件存储的位置.

还需要在http模块中配置一下:

重启nginx或者启动nginx:

这样看不出什么, 

这时我们可以推流:

这是本地下载的mp4,这里不再下载mp4,就把这个mp4当作源推就可以了,i相当于模拟了摄像头的功能。

ffmpeg -re -i meimei.mp4 -vcodec libx264 -acodec aac -f flv rtmp://192.168.78.131:1935/rtmplive/rtmp

192.168.78.131是自己的电脑的ip

运行ffmpeg命令前为了看到效果需要安装VLC播放器:(普通的播放器是不能使用rtmp协议的)

 

然后再执行上面ffmpeg推流命令。

然后打开VLC:

就可以查看了。

将rtmplive改为hls,就会发现稳定一点。


方式2:集成服务(不好扩展但是使用方便)

  1. 下载服务
  2. 安装服务
  3. 准备源视频
  4. 开启服务
  5. 利用ffmpeg推流
ffmpeg -re -i meimei.mp4 -c copy -f flv rtmp://localhost:1935/live/自定义名

地址:
RTMP: rtmp://localhost:1935/live/自定义名
FLV: http://127.0.0.1:7001/live/自定义名.flv
HLS: http://127.0.0.1:7002/live/自定义名.m3u8

Ubuntu安装Nginx:

1.下载并解压:

 wget http://nginx.org/download/nginx-1.15.3.tar.gz
 tar xvf nginx-1.15.3.tar.gz

2.下载并解压nginx rtmp模块:

wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz

tar xvf nginx-rtmp-module-1.2.1.tar.gz

3.编译安装nginx所需的库:

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

4.–add-module 指向rtmp模块目录(进入nginx的安装目录下执行这条命令)

 ./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1

5.编译安装在当前目录的bin目录下

make&&make install

 

 

启动:

 

端口占用检查: lsof -i:端口号


 Ubuntu下安装ffmpeg:

方式1:直接安装:

1.1 添加源:

sudo add-apt-repository ppa:djcj/hybrid

1.2 更新源:

sudo apt-get update

 1.3 下载安装:

sudo apt-get install ffmpeg

方式2:编译安装:

2.1. 支持库的安装:

sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
apt install libavformat-dev
apt install libavcodec-dev
apt install libswresample-dev
apt install libswscale-dev
apt install libavutil-dev
apt install libsdl1.2-dev
sudo apt-get install yasm

2.2 x264:

gir clone https://github.com/qupai/x264
cd x264 
./configure --enable-shared --enable-pthread --enable-pic
make
make install

2.3 编译:

tar -jxvf ffmpeg-4.1.tar.bz2
cd ffmpeg-4.1
./configure --enable-libx264 --enable-gpl --enable-shared  --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-pic
make
sudo make install
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
ldd ffmpeg

此时遇到的问题:

ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
  sudo find / -name libavdevice.so.58  # 找到文件对应地址
  sudo vim /etc/ld.so.conf # 文件尾添加一行 /usr/local/lib
  sudo ldconfig # 执行该句,使上面的文件生效

重新运行ffmpeg -encoders | grep x264就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒不了的星期八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值