如何摆脱ffmpeg中的“抖动缓冲区已满”错误?
Posted
技术标签:
【中文标题】如何摆脱ffmpeg中的“抖动缓冲区已满”错误?【英文标题】:How to get rid of errors "jitter buffer full" in ffmpeg? 【发布时间】:2018-08-01 22:01:10 【问题描述】:如何摆脱错误jitter buffer full
?
我使用来自最新快照之一的 ffmpeg。ffmpeg version N-90078-gf611fef Copyright (c) 2000-2018 the FFmpeg developers
问题是从rtsp上的摄像头有这样一个流:http://ibb.co/fmckCc 无法从相机端解决此问题。
我这样接受:
ffmpeg \
-strict experimental \
-fflags + genpts \
-fflags + latm \
-seek2any 1 \
-avoid_negative_ts + make_zero \
-max_delay 5000000 \
-rtsp_transport udp \
-i rtsp: // admin: @ 192.168.87.21: 554/0? .sdp \
-map 0 \
-r 15 \
-c: v copy \
-an \
-f mpegts udp: //239.0.0.1: 1234? ttl = 1? pkt_size = 1316
我后来开始时不时地出错
[rtsp @ 0x154d180] jitter buffer full
[rtsp @ 0x154d180] RTP: missed 1 packets
[rtsp @ 0x154d180] jitter buffer full
[rtsp @ 0x154d180] RTP: missed 1 packets
[rtsp @ 0x154d180] jitter buffer full
[rtsp @ 0x154d180] RTP: missed 2 packets
[rtsp @ 0x154d180] jitter buffer full
[rtsp @ 0x154d180] RTP: missed 4 packets
因此,图片崩溃了。
我在linux内核设置中增加了udp缓冲区:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.udp_mem = 8388608 12582912 16777216
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 65536 8388608
它没有解决我的问题。 告诉我,你如何处理这样的错误?
【问题讨论】:
【参考方案1】:尝试降低 max_delay 或增加抖动缓冲区。当您将 max_delay 设置的时间长于您的抖动缓冲区可以处理的数据包计数时,您将收到缓冲区已满错误,因此数据包将丢失。
【讨论】:
以上是关于如何摆脱ffmpeg中的“抖动缓冲区已满”错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何摆脱 TypeScript 中的 $injector 类型错误?
反应.js |如何摆脱 Codesandbox 中的跨域错误