目录
前言
下载原因:
- 最近,需要搞一个推拉流,就需要ffmpeg
- 并且,我又看见3B1B用python写的动画,也需要ffmpeg
于是,俺就来搞一下,结果网上搞得下载教程,五花八门,把我搞得晕头转向
还是用tizi看的国外的。
总结流程:
1、下载
2、解压后放在对应文件夹下
4、配置环境变量
就简单的3步,就可以搞定了
一、下载 (3种下载方式)
1、第一种下载方式——我上传的文件
我放在了蓝奏云(6.0版本的),如果你不介意版本问题,可直接下载:
https://wwwf.lanzout.com/i6gWh13mwblg
密码:ceen
2、第二种下载方式——GitHub下载
GitHub下载:
GitHub上可以下载任意版本的源码,比如最新的matser上的源码,以及各个分支上(如ffmpeg的5.1版本)的源码
可以直接点击这里:(进行下载)
Releases · GyanD/codexffmpeg · GitHub
3、第三种下载方式——官网下载
ffmpeg官方网站:FFmpeg
点击链接: "Windows builds from gyan.dev"
上面的三种下载方式,请君任选
二、解压
下载的文件:
下载完成后,就可以解压到自己想要存放的地方
(存放的地方,最好不要有中文路径!)
三、配置环境变量
复制对应的路径
D:\ffmpeg\bin
以上是我的路径
配置环境变量
四、验证是否安装成功
打开cmd,输入命令:
ffmpeg -v
OK啦~就这么简单,我被网上的一些教程搞得晕头转向,唉~
五、其他
关于ffmpeg其他安装教程
【ffmpeg基础】ffmpeg的下载安装_ffmpeg下载_剑门微雨的博客-CSDN博客
ffmpeg的延迟问题
ffmpeg命令行之所以在处理拉流+编解码+推流时,无法做到小于500ms的延迟,是因为ffmpeg命令行在处理时,为了兼容更多的命令,拉流和编解码以及推流都是在不同的队列,尤其编解码的队列,有很多时间上的消耗。如果没有编解码,延迟还是很小的。
官方文档
Documentation
https://www.ffmpeg.org/documentation.html
常用文件推拉流命令
// rtsp推流(文件推流) ffmpeg -re -i test.mp4 -rtsp_transport tcp -c copy -f rtsp rtsp://127.0.0.1:554/live/test // rtsp推流(文件循环推流) ffmpeg -re -stream_loop -1 -i test.mp4 -rtsp_transport tcp -c copy -f rtsp rtsp://127.0.0.1:554/live/test // rtmp推流(文件推流) ffmpeg -re -i test.mp4 -vcodec h264_nvenc -acodec aac -f flv rtmp://192.168.1.3:1935/live/test // rtmp推流(文件循环推流) ffmpeg -re -stream_loop -1 -i test.mp4 -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1:1935/live/test
本地USB摄像头推流成RTSP
ffmpeg命令行延迟较大,可以通过修改这个推流器代码的拉流入口,来实现拉流+转码+推流。 //查看本机USB摄像头列表 ffmpeg -list_devices true -f dshow -i dummy //播放本机USB播放摄像头,FULL HD webcam 是通过查看列表的命令行获得的名称 ffplay -f dshow -i video="FULL HD webcam" //本机USB摄像头+转码+推流到RTSP服务器(rtp over tcp),FULL HD webcam 是通过查看列表的命令行获得的名称 ffmpeg -f dshow -i video="FULL HD webcam" -fflags nobuffer -max_delay 1 -threads 5 -profile:v high -preset superfast -tune zerolatency -an -c:v h264 -crf 25 -s 1280*720 -f rtsp -bf 0 -g 5 -f rtsp rtsp://127.0.0.1/live/test
其他文档
- Video scaling and pixel format converter(视频缩放和像素格式转换的说明文档);
- Audio resampler(音频重采样的说明);
- Encoders and decoders (codecs)(音视频编码、解码的说明);
- Muxers and demuxers (formats)(音视频封装和解封装的说明);
- Filters(音视频滤波器的说明)。
浏览器播放摄像头与其他问题
- Http-Flv是一种适合网络视频流的传输协议,网页可以用,客户端也可以用。通常都是用在网页上。但是Http-Flv当前比较明显的不足,是不支持H265。
- 一般安防摄像头都会支持Rtsp和GB28181协议,但这两种协议的视频流都无法在浏览器直接播放,需要开发一个流媒体转发服务器,通过Rtsp或GB28181协议对接摄像头,然后再实时转Http-Flv或Hls协议。浏览器可以通过js插件直接播放Http-flv或Hls协议的视频流。
- 如果是做安防领域的流媒体服务器,非常推荐zlm,甚至说首推,因为作者在zlm中,提供了非常完整的有关ps流推拉相关的功能。如果是做直播,推荐使用srs或nginx+rtmp。
- 不要无脑webrtc,要搞清楚webrtc合适的应用场景 ,不要什么地方都想着webrtc
- 160元可以购买普通安防摄像头——带推流功能