srs+ffmpeg推流过程
一、安装srs
srs源代码:https://github.com/ossrs/srs/wiki/v3_CN_Home
安装步骤
1,在合适目录下:git clone -b 3.0release https://gitee.com/ossrs/srs.git
2,cd srs/trunk
3,srs配置文件:vi conf/srs.conf
4,编译:./configure && make
5,启动srs:./objs/srs -c conf/srs.conf
6,查看srs启动状态:./etc/init.d/srs status
7,srs日志:tail -f ./objs/srs.log
8,停止srs进程:ps –ef|grep srs;kill -9 进程
二、安装yasm
1.下载也是yasm安装包:http://yasm.tortall.net/Download.html
2,打开httpfileserver,将本地下载的包上传到linux上
3,解压:tar -xvzf yasm-1.3.0.tar.gz
4,执行命令:cd yasm-1.3.0/
5,编译:./configure;make;make install
三、安装ffmpeg
1,下载ffmpeg安装包:http://ffmpeg.org/download.html#releases
2,打开httpfileserver,将本地下载的包上传到linux上
3,解压:tar -xvzf ffmpeg-4.4.1.tar.gz
4,执行命令:cd ffmpeg-4.2.2/
./configure --enable-shared --prefix=/usr/local/ffmpeg(可以加上 --disable-x86asm 忽略yasm)
make (编译过程会有点长)
make install (会把ffmpeg相关执行程序、头文件、lib库安装在/usr/local/ffmpeg/下)
5,建立软链:ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
6,增加lib配置:vi /etc/ld.so.conf.d/ffmpeg.conf 内容:/usr/local/ffmpeg/lib
(有些lib源在usr/local/lib里,vi /etc/ld.so.conf 新增一行/usr/local/lib)
7,执行配置:/sbin/ldconfig -v(只执行ldconfig不生效)
8,查看版本:ffmpeg -version
9,如果出现以下问题:先看看缺少的so在哪个目录下,cd进去
建立软链:ln -s libbz2.so libbz2.so.1.0
四、使用ffmpeg推流
命令推流
1,推流命令:ffmpeg -re -i source1.mp4 -vcodec copy -acodec copy -f flv -y rtmp://ip:port/live/livestream
2,如果出现以下问题:
问题1
看看vi /etc/ld.so.conf.d/ffmpeg.conf 配置是否正确
问题2
可以使用:ffmpeg -re -i source1.mp4 -f flv -y -flvflags no_duration_filesize -use_wallclock_as_timestamps 1 rtmp://ip:port/live/livetest
3,推流成功结果
脚本推流
1,创建.sh脚本文件
内容:(循环执行,一直推流)
#!/bin/bash
for ((;;))
do
ffmpeg -re -i source1.mp4 -f flv -y -flvflags no_duration_filesize -use_wallclock_as_timestamps 1 rtmp://ip:port/live/livetest
sleep 1
done
2,执行:sh pushflow.sh
3,后台执行:nohup bahs pushflow.sh &显示进程号表示后台执行成功
4,停止推流:ps –ef|grep pushflow;kill -9 进程
五、vlc拉流
1,安装vlc:https://get.videolan.org/vlc/3.0.16/macosx/vlc-3.0.16-intel64.dmg
2,打开vlc,打开文件——打开网络
3,填入ffmpeg推流的输出流地址:rtmp://ip:port/live/livetest
点击打开,会有一两秒左右延迟,打开一个新的播放页面,可以看到播放的视频是推的流视频
4,vlc可以拉流就表示测试机上的推流成功了