wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
sudo make install

3.3. ffmpeg安装

wget http://www.ffmpeg.org/releases/ffmpeg-4.1.tar.gz
tar -zxvf ffmpeg-4.1.tar.gz
# 创建ffmpeg文件夹,指定安装目录
mkdir /opt/ffmpeg
cd /opt/ffmpeg-4.1
./configure --prefix=/usr/local/ffmpeg
make # 这一步很慢,大概5-10分钟,耐心等待
sudo make install

3.4. 配置环境变量

配置环境变量使命令全局生效

vi /etc/profile
# 在最后PATH添加环境变量:
export PATH=$PATH:/opt/ffmpeg/bin
# 保存退出
source /etc/profile
# 将ffmepg的lib目录链接到系统库中
vi /etc/ld.so.conf
# 在文档后追加内容: /opt/ffmpeg/lib/
# 指定ffmpeg的安装目录lib文件夹,添加完后执行ldconfig,使配置生效
ldconfig
# 查看版本,测试是否生效
ffmpeg --version

到此ffmpeg和nginx都已经安装完成了,接下只需要执行ffmepg相关的命令开始推流进行转换操作,之后配和nginx对转换后的流进行访问,就可以在页面上实现实时预览了

4. ffmpeg推流

ffmpeg命令非常多,本次测试也踩了一些坑,最终找到一条可以正常转换,预览的命令;

ffmpeg支持对不同的流转换到不同的流,本次测试对海康威视H.264码流转换成FLV格式的流。需要其它流转换的小伙伴可以去官网或者百度搜索相关的转换命令。

ffmpeg -ss 0:01 -rtsp_transport tcp -i rtsp://user:password@ip:port/h264/ch1/main/av_stream -c copy -f flv rtmp://127.0.0.1:1935/myapp/test1

命令参数介绍

ffmpeg -ss 0:01 -rsto_transport tcp -i:固定写法

rtsp://user:password@ip:port/h264/ch1/main/av_stream

海康的rstp链接模板

user:海康用户名

password:海康用户密码

ip:海康摄像头ipv4地址

port:海康摄像机端口

h264:海康支持的码流编码

ch1:通道号

main:主码流(sub 子码流)

av_stream:主码流

-c copy: 对流输出进行复制,不再进行编码

-f flv:转成flv格式

rtmp://127.0.0.1:1935/myapp/test:与nginx配置相对应,1935为nginx的rtmp配置的端口,myapp是nginx.conf配置的application,test是自定义的名称,也就是后面通过页面访问用到的uri地址