文章目录
- 前言
- 一、ffmpeg是什么?
- 二、使用步骤
-
- 1.nginx安装
- 2.ffmpeg安装
- 三、开始配置nginx
- 四、ffmpeg开始推送视频流
- 五、ffmpeg常用命令
- 总结
前言 在互联网中,有很多摄像头都需要涉及到录屏,直播等功能。但是大部分设备厂商提供的摄像头视频流格式都是rtsp的,导致浏览器或者小程序不能直接使用,本片文章将演示如果使用nginx-module-rtmp搭建流媒体服务,然后通过ffmpeg推送视频流,实现rtsp转换成rtmp
提示:以下是本篇文章正文内容
一、ffmpeg是什么? Fmpeg 是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西。它支持最晦涩的古老格式,直到最尖端的格式。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的便携性。
二、使用步骤 1.nginx安装 1.1 nginx安装请参考nginx安装链接
1.2 nginx添加 nginx-rtmp模块 链接
2.ffmpeg安装 【nginx+ffmpeg|视频直播(使用ffmpeg推送到nginx-rtmp实现rtsp转换rtmp)】2.1 ffmpeg安装请参考ffmpeg安装链接
三、开始配置nginx
worker_processes1;
events {
worker_connections1024;
}rtmp {
server {
listen 1935;
#监听的端口号
application myapp {#自定义的名字
live on;
}
application hls {
live on;
hls on;
hls_path /hls;
hls_fragment 1s;
hls_playlist_length 3s;
}
}
}http {
includemime.types;
default_typeapplication/octet-stream;
sendfileon;
server {
listen80;
server_namelocalhost;
# ffmpeg生成hls流的http访问配置
location / {
#若nginx\conf\mime.types中没有配置如下type,请加上,或直接在mime.types加
types{
application/vnd.apple.mpegurl m3u8;
#application/x-mpegURL m3u8;
video/mp2t ts;
}
root html;
#add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}error_page500 502 503 504/50x.html;
location = /50x.html {
roothtml;
}}
}
四、ffmpeg开始推送视频流 在linux执行命令
ffmpeg -i "你的rtsp视频流地址" -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 4000x3000 -q 10 -f flv "rtmp://你的rtmp需要转换到的地址/hls/aa"
你的rtsp视频流地址:指摄像头rtsp地址 你的rtmp需要转换到的地址:你需要把rtmp推送的地址,外网可访问五、ffmpeg常用命令 ffmpeg常用命令
总结 本片文章难点在于ffmpeg的安装和环境配置,当所有配置成功之后ffmpeg即可推流,但是推流的过程中会消耗服务器的CPU,不使用的时候需要关闭。 转换过后,视频流会有延迟,可根据ffmpeg使用不同命令进行调优
推荐阅读
- android|android ffmpeg rtmp,Android利用ffmpeg产生推流
- #|JavaCV-FFmpeg软封装多线程实现录制或推送rtsp流
- ubuntu|桌面录屏推流(ffmpeg/gstreamer+ZLMediaKit推流rtmp/rtsp)
- eureka|02-若依权限管理子系统简介
- 若依权限管理系统(用户管理)
- 线程池是怎么回收空闲线程的(如果你认为有定时任务,那你就错了!)
- Java重载和重写的区别
- 服务器|登录会话模型实战
- 学习|移动端测试的学习