FFmpeg是流媒体开源神器,视频转换、剪裁包括推流,无所不能,很多系统都是基于其开发的。拉流可以用FFplay,但是不利于集成到自己的代码中,因此拉流选择了Vlc.DotNet。
在使用中,仅使用默认参数,会导致整体开销大、占用网络资源、硬件资源都很多,而且会导致较长的延迟,因此推拉流参数必须进行优化。
1、推流参数
-f dshow -i video="USB Camera":audio= "Internal MIC" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -crf 28 -acodec aac -s 1280x720 -g 1 -keyint_min 2 -f rtsp -rtsp_transport tcp rtsp://192.168.0.66:554/video
-vcodec libx264 -preset:v ultrafast -tune:v zerolatency -crf 28 这段是视频编码,这几个参数使用CPU编码,开销小,图像质量一般可以容忍。如果能使用GPU效果更好
-s 1280x720是分辨率设置,如果整体系统性能较高,可以设置为摄像头的最高分辨率。
-g 1 -keyint_min 2 间隔帧设置,有利于实现“秒开”,减少连接的时间。
-rtsp_transport tcp另rtsp