【FFmpeg】ffplay播放rtsp视频流花屏问题

转载 2016年05月31日 17:31:28

原文链接:
http://www.cnblogs.com/dwdxdy/p/3240217.html

问题描述:
ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。

基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程。

在ffplay源码阅读和分析的基础上,画出了其播放rtsp的函数调用关系,如下图所示:

avformat_open_input函数根据输入的文件名,与rtsp_read_packet关联。

rtsp_read_packet完成每个rtp包的读取和解析,读取主要是利用rtp_read从缓冲区获取数据,解析主要是根据rtp协议,解析rtp包,得到h264码流数据,由rtp_parse_packet完成。

av_read_frame读取一帧数据的avpacket包,主要是调用rtsp_read_packet读取h264码流数据包,然后由av_parser_parse2组成h264 码流包,最终组成一帧数据的avpacket。

错误测试:发布不同分辨率的rtsp视频流,测试错误产生的原因。

利用VLC发布视频的rtsp服务,经测试,同一种视频封装格式,分辨率越小,花屏现象越少。

分辨率越小,服务端发送给客户端的数据越小,其花屏现象越少,说明花屏现象与服务端发送的数据量有关。

可能的原因是服务端发送的数据量较大时,客户端缓冲区不足,导致数据丢失的问题,从而引起花屏现象。

错误验证:修改ffmpeg源码,输出客户端接收的数据包信息,验证是否存在数据丢失的问题。

源码修改如下图所示,主要是输出RTP包的序号,根据序号判断是否存在丢包问题。

信息输出结果如下图所示,正常情况下,RTP的序号是连续的,而由输出信息可知RTP序号不连续,因而存在丢包的问题。

解决方法:增加客户端接收数据的缓冲区,避免丢包现象的产生。

源码修改如下图所示,主要是将UDP_MAX_PKT_SIZE增大了10倍。



2014-06-30 21:59 ersheng  
请问,ffmpeg有专门设置这个参数的接口吗?


@ersheng
据我所知,没有相关的设置接口
 
@ersheng
可否請問作者 要修改的源碼 詳細說明 檔案名稱 和位置 謝謝
  
@麥克
libavformat目录下的udp.c文件,修改UDP_MAX_PKT_SIZE即可


兩個問題 
1. 是要log out的程式碼是改哪一段
2. 如果是真的網路連結 有沒有可能不連續是因為網路品質不好掉了包?
您好 我指的log out是訊息輸出修改的地方 謝謝


@麥克
rtpproto.c文件下,246行添加rtp包的长度和时间输出代码


樓主您好 我試過您說的位置去加程式碼 可是build失敗 想請問您用的ffmpeg是哪一版? 
您講的位置 我在2.4版 看到的不一樣 感謝


您好 或是您加完程式碼build出來的執行檔 寄給我參考 好嗎?
謝謝


mailto:hwmike.mh@gmail.com:
楼主,我将udp.c里的UDP_MAX_PKT_SIZE 增大10倍,并且编译后,
发现对于是你质量没有明显的影响,不知是不是我的方法不对?谢谢!

【FFmpeg】ffplay播放rtsp视频流花屏问题

问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。 基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程。 在ffplay源码阅读和分析的基础上,画出了其播...
  • wishfly
  • wishfly
  • 2015年03月12日 01:52
  • 944

ffmpeg直播h.264源卡顿

ffmpeg 转码H.264 High Profile的输入做直播时会有卡顿的现象;而且设定的帧率也达不到; 是因为解码H.264 HP的速度达不到造成的。 将编译时的“--disable-opti...
  • u013354805
  • u013354805
  • 2016年05月31日 17:28
  • 1098

ffmpeg直播h.264源卡顿

ffmpeg 转码H.264 High Profile的输入做直播时会有卡顿的现象;而且设定的帧率也达不到;​ ​是因为解码H.264 HP的速度达不到造成的。 将编译时的“--disable-o...
  • fireroll
  • fireroll
  • 2014年05月06日 09:16
  • 1996

【FFmpeg】ffplay播放rtsp视频流花屏问题

问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。 基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程。 在ffplay源码阅读和分析的基础上,画...
  • zhiweiyouzhishenghuo
  • zhiweiyouzhishenghuo
  • 2014年01月25日 10:31
  • 1696

ffmpeg播放rtsp视频流花屏解决办法

http://blog.sina.com.cn/s/blog_9e7753030102vd5s.html
  • tpyangqingyuan
  • tpyangqingyuan
  • 2016年12月02日 11:06
  • 2622

使用FFmpeg解码 丢包 花屏

使用FFmpeg解码,使用SDL显示画面有时候会连续丢包,导致花屏的现象。 解决办法: 1.将rtsp传输方式由默认的udp传输,设置为tcp传输 2.每次解码一帧后,SDL_Delay时长设置为...
  • d_a_r_k
  • d_a_r_k
  • 2016年08月29日 23:49
  • 5851

Ubuntu 16.04 vlc和ffmpeg播放rtsp视频

sudo get install vlc sudo get install ffmpeg ffplay rtsp:/// 可以播放网络视频流
  • zhuiqiuk
  • zhuiqiuk
  • 2017年06月01日 18:02
  • 784

ffmpeg ffplay播放延时大问题:播放延时参数设置

使用ffplay播放视频源时,rtsp/rtmp等,会有一定的延时,这里我们可以通过设置ffplay播放参数将延时控制到最小。 ffplay.exe -i rtmp://xxxxxxx -ffla...
  • xiejiashu
  • xiejiashu
  • 2016年09月23日 13:32
  • 8076

ffmpeg 播放rtsp流认证问题

最近研究使用ffmpeg播放rtsp url问题,播放海康rtsp流例如接入onvif的url:rtsp://10.10.129.188:554/Streaming/Channels/101?tran...
  • huangyifei_1111
  • huangyifei_1111
  • 2017年08月09日 17:58
  • 516

ffplay播放rtsp视频流花屏问题

http://www.cnblogs.com/dwdxdy/p/3240217.html   问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。 基本流程学习:阅读ffpl...
  • smilestone322
  • smilestone322
  • 2013年12月23日 10:46
  • 1973
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【FFmpeg】ffplay播放rtsp视频流花屏问题
举报原因:
原因补充:

(最多只允许输入30个字)