独孤求败24
2016-01-11 12:08
采纳率: 87.5%
浏览 4.1k
已采纳

2.2.1版本的vlc播放rtmp流会自动断开,而2.2.1以下的版本都不会

2.2.1版本的vlc播放rtmp流会自动断开,而2.2.1以下的版本都不会
通过vlc的 工具-》编码器信息-》统计 这里面可以发现2.2.1版本的vlc播放时候会直接丢掉前面一些帧,比如一次丢掉34帧,然后进行播放,后面都很正常,但是vlc2.2.1 它不会一次直接丢掉前面的34个无效帧,而是直接播放,这样发送数据时候过快,client还未来得及处理,结果client端就直接断开了,但是断开后,rtmp server还是运行的,这时候重新连接client,于是后面可以正常播放了,我想就是第一个I帧残缺引起的错误,我播放的是flv文件,是通过ffmpeg从rtmp://live.hkstv.hk.lxdns.com/live/hks 上面下载下来的
ffmpeg -i "rtmp://live.hkstv.hk.lxdns.com/live/hks" -vcodec copy -acodec copy test.flv 。
请教下哪位大神,假设低版本的vlc处理前面的一些帧时候 一次丢掉34帧数据(这里34帧作为参考,可以更多或更少,看文件本身),这样做的好处,和2.2.1版本vlc 却不是这样处理,而是直接播放那些视音频帧,从而断开连接。

还发现一个问题,就是2.2.1 vlc版本播放rtmp流时候,查看vlc的 工具-》编码器信息-》统计 ,发现视音频的 已解码 已播放 都是0,但是某个时间一下增长到355 355 ,而2.2.1及以下低版本在播放的同时 (视音频的 已解码 已播放) 慢慢增长,请问下 这个是啥情况啊

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 独孤求败24 2016-02-25 05:24
    已采纳

    这个应该是不同版本vlc处理rtmp流时候,处理方式不同造成的,使用播放器potPlayer,这个能很好的处理rtmp流

    打赏 评论
  • 独孤求败24 2016-01-12 00:35

    最新版本vlc是可以播放rtmp流,但是和版本低的vlc处理数据方面不太一样,到底数据是如何处理的呢?

    打赏 评论
  • 独孤求败24 2016-01-28 01:26

    这是客户端数据处理的时候快慢决定的吧,同时server端应该在客户端来不及处理时候,就是server端 select时候如果writefd 里面数据满了,此时continue,而不是返回负值

    打赏 评论
  • devmiao 2020-04-15 15:26
    打赏 评论

相关推荐 更多相似问题