1.应用场景

目前的摄像头厂家能提供出来的视频流格式有限,且chrome已经禁止了对flash的支持,导致像硬盘录像机这种只能提供rtsp格式流地址的摄像头无法接入Web应用,所以不得不对视频的流地址进行分发,通过代码对流地址中的数据进行切割,非常影响服务的性能,所以采用ffmepg+nginx-rtmp这种无侵入,占用内存小的方式进行视频的分发。

2.软件包

ffmpeg-n4.4-80-gbf87bdd3f6-win64-gpl-4.4.zip

nginx-rtmp-win32-dev.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文件进行后台启动

//流地址转发.batstart 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,直接双击就能启动啦^ _ ^

【FFmpeg】ffmpeg+nginx-rtmp实现视频流转发相关推荐

  1. ffmpeg推流+NGINX(RTMP)+VLC-QT拉流(Win7)

    1 简介 本文旨在在Windows 7系统上实现利用FFmpeg软件推流到部署的带RTMP模块的Nginx流媒体服务器上,在拉流端,基于VLC库的VLC-QT库实现拉流播放. 2 ffmpeg下载安装 ...

  2. windows下live555+rtsp+ffmpeg媒体源,nginx+rtmp转发服务器,vlc播放rtmp媒体流

    1.下载live555+ffmpeg视频文件作为媒体源 将视频文件me-like-yuh.ts和ffmpeg推流脚本ffmpeg-rtsp2rtmp.bat放在mediaserver目录下 ffmpe ...

  3. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制 2014年 四月 19日 周六 | tags: ffmpeg, rtmp, rtmpdump, nginx, -- (perm ...

  4. ffmpeg推rtsp、rtmp音视频流命令

    ffmpeg推rtsp.rtmp音视频流命令 rtmp流 推流 播放 rtsp流 推流 播放 原创文章禁止转载 同步发布http://www.alom.com.cn/ ffmpeg推rtsp.rtmp ...

  5. windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流

    windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流 推流和拉流的概念 以及RTMP协议 在直播中,一般需要三个角色:主播,服务器,用户.主播通过推流将数据推到服务器上,而用户可 ...

  6. 【入门】ffmpeg、nginx、nginx-http-flv-module转发rtsp流、VLC查看

    [入门]ffmpeg.nginx.nginx-http-flv-module转发rtsp流.VLC查看 参考:https://blog.csdn.net/string_kai/article/deta ...

  7. Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流

    场景 RTMP RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP ...

  8. nginx RTMP FFmpeg 视频直播

    /***************************************************************************** nginx RTMP FFmpeg 视频直 ...

  9. Fedora进行ffmpeg+nginx+rtmp服务器配置局域网推流

    文章目录 前言: 一.先对Fedora镜像源进行一次更新 1.如果在配置好后,获取 GPG 密钥失败:[Errno 14] curl#37 - "Couldn't open file /et ...

  10. 基于imx6ull打造流媒体视频监控:ffmpeg + nginx + rtmp

    0.平台简介 项目 描述 硬件平台 100ask_imx6ull_pro开发板 Linux内核 Linux 4.9.88 Buildroot版本 Buildroot 2019.02 FFmpeg版本 ...

最新文章

  1. 栖息在生态办公室,裸心社与USGBC达成战略合作
  2. 安装android到u盘安装程序,在u盘内安装android教程
  3. 函数 (四) 迭代器和生成器
  4. 微软发布 Windows 命令行参考文档,涵盖超 250 项控制台命令
  5. 令人深思的联系-this关键字(隐藏属性static)
  6. 诺基亚e7刷linux,当之无愧的机皇 诺基亚E7-00十大细节解析
  7. maven的下载与安装教程(超详细)
  8. 教师基本功训练计算机,教师教学基本功培训方案
  9. 7723Java斗破苍穹,斗破苍穹:斗帝空间开启,药尘入内寻夺焚决!
  10. 华为云在Linux ECS上使用obsutil通过内网访问OBS
  11. 易乐游服务器系统,易乐游装在云服务器
  12. EXCEL批量加入图片
  13. POJ1655 Balancing Act 题解
  14. 电路图:LM3886低音炮电路
  15. [附源码]Python计算机毕业设计SSM基于Java的流浪动物救助系统(程序+LW)
  16. 99%的人都想要的广告拦截软件
  17. PO、BO、VO、POJO、DTO、DAO分别代表什么意思
  18. python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的错误
  19. OnlyOffice基础实践
  20. 网站开发进阶(二十九)HTML特殊转义字符

热门文章

  1. Android开发:APP桌面只显示默认机器人图标的几个解决方法
  2. 微信小程序支付(java后端)
  3. 末世的艺术,教你如何在明日之后电脑版中弹钢琴
  4. MATLAB R2022a安装指南
  5. 国际版U-Dictionary,这可能是最好用的翻译APP啦,还永久免费!
  6. 光伏电池板目标检测数据集
  7. 分布式交易事务_交易基础和分布式交易
  8. ElasticSearch系列 - SpringBoot整合ES:分析器
  9. PPet —— 点进来送你一个桌面宠物,让单身码农不再孤单~~
  10. 十大最笨网络创业点子成就数位富翁