如何协调 “RTMP接收->FIFO->解码播放”存取视频数据的频率?

空杯丶 2020-11-04 07:56:30
解码从FIFO取数据时,隔几秒就连续多次取不到数据,导致视频卡顿;
感觉就是存和取得频率不协调,导致缓冲中的数据不稳定,会有数据空的情况;
我在RTMP接收端回调视频数据中,在PUSH数据之后,加了个20ms的延迟后,卡顿情况就缓解很多,但这不是一个有效可靠的办法;
只有50积分了。。
...全文
13654 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
很黑的黑 2021-06-24
  • 打赏
  • 举报
回复

好奇是怎么解决的问题

空杯丶 2020-11-13
  • 打赏
  • 举报
回复
问题已解决。
空杯丶 2020-11-05
  • 打赏
  • 举报
回复
引用 3 楼 ArcRain 的回复:
试试把开始解码播放需要的FIFO缓冲区数据大小设置在一个阈值,比如收到了3-5秒的数据包了再开始做解码播放,后续只要缓冲区空了就等待。 类似在线视频播放那样,需要缓冲一定大小的数据包之后才能开始播放。
谢谢建议。但是这样缓存区空了,会有一段时间取不到数据,解码播放还是会卡顿,缓冲区又达到了存取不平衡的状态
ArcRain 2020-11-05
  • 打赏
  • 举报
回复
试试把开始解码播放需要的FIFO缓冲区数据大小设置在一个阈值,比如收到了3-5秒的数据包了再开始做解码播放,后续只要缓冲区空了就等待。 类似在线视频播放那样,需要缓冲一定大小的数据包之后才能开始播放。
空杯丶 2020-11-05
  • 打赏
  • 举报
回复
不同的rtmp推送端,数据大小、发送包间隔也不太一样;
空杯丶 2020-11-05
  • 打赏
  • 举报
回复
我想的是,这个就相当于一道水池注水与出水的数学题,怎么让池子里的水,维持在一个动态平衡的水位范围,既不会池子没水,也不会池子水满了溢出。 主要是rtmp接收包的大小不、时间间隔不是很稳定。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧