FFmpegffmpeg+nginx-rtmp实现视频流转发
1.应用场景
目前的摄像头厂家能提供出来的视频流格式有限,且chrome已经禁止了对flash的支持,导致像硬盘录像机这种只能提供rtsp格式流地址的摄像头无法接入Web应用,所以不得不对视频的流地址进行分发,通过代码对流地址中的数据进行切割,非常影响服务的性能,所以采用ffmepg nginx-rtmp这种无侵入,占用内存小的方式进行视频的分发。
2.软件包
ffmpeg-n4.4-80-gbf87bdd3f6-win64-gpl-4.4.zip
各位看官自行百度下载…
3.使用ffmpeg进行视频流的转流
1.解压zip目录进入文件的bin目录内,有如下几个文件
这里要用到的就是ffmpeg.exe
2.常用命令讲解
命令 | 含义 |
---|---|
-i | 设定输入视频的地址 |
-f | 设定输出格式 |
-hls_wrap | 设定分割的文件数量 |
-c copy | 拷贝所有的流 |
3.举一个例子
① 先在电脑上随便建立一个文件夹,我这里建的名称是test
② 进入ffmpeg的bin目录内,打开cmd命令行
③ 输入下列命令
ffmpeg -i 视频流地址 -hls_wrap 10 -c copy -f hls 本地文件夹地址\test\204.m3u8
当命令行出现以下内容时,表示转流成功
④打开本地建立的test文件夹,会发现有10个ts文件和一个m3u8文件,这里的ts文件,就是ffmpeg将流地址按照时间切片保存下来的视频文件,按照给定的参数进行循环保存覆盖的
到这里,已经实现了对于视频流的转流及保存,这里可以解决的场景有:
内网的摄像头映射到外网环境
Web端显示摄像头画面
接下来,只需要将这些切片文件一直提供给前端,就能持续的看到画面了。
点击文末卡片领取音视频学习资料
4.使用nginx-rtmp推送视频文件,让浏览器显示视频。
解压nginx-rtmp-win32-dev.zip文件,进入conf文件夹,编辑nginx.conf文件
-
worker_processes 1;
-
-
error_log logs/error.log info;
-
-
events {
-
worker_connections 1024;
-
}
-
-
rtmp {
-
server {
-
listen 1935;
-
-
application live {
-
live on;
-
}
-
-
application hls {
-
live on;
-
hls on;
-
hls_path temp/hls;
-
hls_fragment 8s;
-
}
-
}
-
}
-
-
http {
-
server {
-
listen 8080;
-
-
location / {
-
# 这里配置视频文件所在的文件夹,这里就放在nginx-rtmp的html文件夹内,
-
# 所以不需要更改。
-
root html;
-
}
-
-
location /stat {
-
rtmp_stat all;
-
rtmp_stat_stylesheet stat.xsl;
-
}
-
-
location /stat.xsl {
-
root html;
-
}
-
-
location /hls {
-
#server hls fragments
-
types{
-
application/vnd.apple.mpegurl m3u8;
-
video/mp2t ts;
-
}
-
alias temp/hls;
-
expires -1;
-
}
-
}
-
}
-
启动nginx-rtmp:
start nginx
打开浏览器,看到以下内容,表示推送成功
前端推荐使用Video.js进行视频的展示,这里不做赘述了,使用起来非常简单。
如果有很多视频需要转发,推荐写bat文件进行后台启动
-
//流地址转发.bat
-
-
start cmd /k ffmpeg -i 流地址1 -hls_wrap 10 -c copy -f hls 本地文件夹\1.m3u8
-
start cmd /k ffmpeg -i 流地址2 -hls_wrap 10 -c copy -f hls 本地文件夹\2.m3u8
-
start cmd /k ffmpeg -i 流地址3 -hls_wrap 10 -c copy -f hls 本地文件夹\3.m3u8
-
start cmd /k ffmpeg -i 流地址4 -hls_wrap 10 -c copy -f hls 本地文件夹\4.m3u8
-
start cmd /k ffmpeg -i 流地址5 -hls_wrap 10 -c copy -f hls 本地文件夹\5.m3u8
这样保存成bat,直接双击就能启动
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggabga
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01