解决ffmpeg播放摄像头延时的问题(项目案例使用有效)

1.目前使用的对接的海康威视的摄像机,并且采用的流媒体服务器NodeMediaServer 进行收数据流并发流数据。但是延时达到了20秒,所以客户看到的效果不是很乐观,没有办法,只能开始优化播放延时的问题,至于对接摄像头的方案有好几种。我这种情况是时间没有延迟只有画面是有延迟的。经过调整指令参数并能结果了这个延迟的问题,也试了很多次,不停的找指令参数进行测试,最后终于调整好了。

rtsp://admin:mima@192.168.1.100:554/h264/ch1/main/av_stream 这里的main改为sub 这个是把主通道换成子通道

整理的指令参数如下:

ffmpeg -r 30 -i rtsp://test:test@10.11.17.192:554/ch1/sub/av_stream -r 20 -q 0 -f mpegts -codec:v mpeg1video -s 480*320 -c:v libx264 -preset  veryfast -tune zerolatency -c:a aac -vsync 1 -f flv -g 5 -b 700000 rtmp://10.11.17.172:1935/live1/stream2

增加参数

-tune zerolatency  //设置零延时
-preset ultrafast  //--preset的参数主要调节编码速度和质量的平衡,有ultrafast(转码速度最快,视频往往也最模糊)、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢

 '-threads 4',
        '-c:a copy',

  
        '-fflags nobuffer',
        '-max_delay 1',
        '-vprofile baseline',
        '-rtsp_transport tcp',
        '-crf 20',
        '-vsync 2',
        '-f flv',

另外建议摄像头的编码格式设置为H264,这样结合本配置效果更好

这也是我经常调试总结出来的经验,希望对大家有所帮助

最后贴一下完整的参数

最后贴下完整参数:

'-vcodec libx264',
        '-an',
        '-r 25',
        '-tune zerolatency',
        '-preset ultrafast',
        '-s 1280x760',
        '-threads 4',
        '-c:a copy',
        '-fflags nobuffer',
        '-max_delay 1',
        '-vprofile baseline',
        '-rtsp_transport tcp',
        '-crf 20',
        '-vsync 2',
        '-f flv',

2.并且NodeMediaServer是一个开源的项目可以拉去试试读读代码,并能结合在自己项目中去使用这个服务端以及客户端。

NodeMediaServer官方文档地址:ShowDoc

GitHub - illuspas/Node-Media-Server: A Node.js implementation of RTMP/HTTP-FLV/WS-FLV/HLS/DASH/MP4 Media Server

GitHub - illuspas/Node-Media-Server-Admin

登陆

当配置文件项 auth_api 开启并且正确设置了auth_api_user和auth_api_pass,第一次打开管理后台页面时,需要进行登陆。

相关推荐
lxkj_202416 小时前
使用线程局部存储解决ffmpeg中多实例调用下自定义日志回调问题
ffmpeg
runing_an_min21 小时前
ffmpeg视频滤镜:替换部分帧-freezeframes
ffmpeg·音视频·freezeframes
ruizhenggang21 小时前
ffmpeg本地编译不容易发现的问题 — Error:xxxxx not found!
ffmpeg
runing_an_min1 天前
ffmpeg视频滤镜:提取缩略图-framestep
ffmpeg·音视频·framestep
韩曙亮1 天前
【FFmpeg】FFmpeg 内存结构 ③ ( AVPacket 函数简介 | av_packet_ref 函数 | av_packet_clone 函数 )
ffmpeg·音视频·avpacket·av_packet_clone·av_packet_ref·ffmpeg内存结构
oushaojun22 天前
ubuntu中使用ffmpeg和nginx推流rtmp视频
nginx·ubuntu·ffmpeg·rtmp
莫固执,朋友2 天前
网络抓包工具tcpdump 在海思平台上的编译使用
网络·ffmpeg·音视频·tcpdump
lxkj_20242 天前
修改ffmpeg实现https-flv内容加密
网络协议·https·ffmpeg
cuijiecheng20182 天前
音视频入门基础:MPEG2-TS专题(6)——FFmpeg源码中,获取MPEG2-TS传输流每个transport packet长度的实现
ffmpeg·音视频
VisionX Lab2 天前
数据脱敏工具:基于 FFmpeg 的视频批量裁剪
python·ffmpeg·音视频