qq364530507

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507  发布于  2016-05-18 11:34:00
采纳率 0%
23个问答
4878

rtsp客户端获取的图像的问题??

 
用VLC播放器获取的图像效果如下:



用网上下载的客户端现在看到效果如下:
(1)不动的时候:

(2)出现卡顿:

(3)移动的时候:



现在这个灰色是固定会出现,感觉是每隔十几帧就是出现这样的灰色,不知道问题出在哪??
我来回答
回答14个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-05-18 11:49:38
认可0
从解码图看是丢帧了

看看码流大小以及网络流量,搂主可以先在一个单纯的环境中测试, 既一个小网络只有一个IPC和一个PC跑客户端, 看看效果如何

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-05-18 13:02:53
认可0
本帖最后由 ngswfx 于 2016-5-18 13:25 编辑

如果是rtsp差异,采用UDP,和TCP问题的话,按理说VLC会花才对。我以前遇到过VLC使用UDP连图花的不得了。

客户端按理说更具针对性,如果是专用的话,对非编码数据,处理的应该更到位些。

////////////////////出现这种现象,通常肯定是数据错了,不是多了(非编码数据),就是少了(编码数据信息丢失)。

///////////////顺便,LZ你把信息描述的更全面一些,硬件平台信息 PC解码库版本 码流大小等。我等好分析的更确切些,更有针对性,是265,mp4,264?


看了你写的[url]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10279&extra=page%3D1[/url],我基本了解相关环境了。

////////////////////////
1、既然自己写的RTSP Server端,看看这个客户端使用的哪种方式连接的图像,是不是UDP TCP差异。
2、不排除VLC对帧的过滤判断,做的比客户端做的好.

这个SmartPlayer是个啥东西?用的那个解码库?

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-18 14:07:11
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30195&ptid=11349]ngswfx 发表于 2016-5-18 13:02[/url]
如果是rtsp差异,采用UDP,和TCP问题的话,按理说VLC会花才对。我以前遇到过VLC使用UDP连图花的不得了。

...[/quote]

就是我是两个进行,其实也是从网上下的别人的客户端修改的,其中SmartPlayer这个进程是用来显示图像的,其中主要就是一个图像显示的控件,然后在这个进程中会打开RtspPlayer这个进程,然后两个进程通过消息队列进行信息的交互,而RtspPlayer这个进程中利用live555完成RTSP的建立,以及数据的获取,获取之后放到一个链表当中,然后一个线程利用ffmpeg不断从链表获取H.264数据进行解码,之后将解码的数据交给SDL库进行图形的裁剪等,然后将图像显示到前面的SmartPlayer图像控件上,因为我现在想加一个OPECV的图像处理上去,但是发现用VLC的客户端图像很清晰,虽然有延时但是不会出现灰屏,用自己的客户端就会不断出现灰屏,不知道问题在哪。。

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-18 14:08:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30189&ptid=11349]zhuangweiye 发表于 2016-5-18 11:49[/url]
从解码图看是丢帧了

看看码流大小以及网络流量,搂主可以先在一个单纯的环境中测试, 既一个小网络只有一 ...[/quote]

我用的摄像头是30fps的,然后测试环境都是链接的路由器,你的意思我直接在内网测试一下是吧,好的我试试,但是我用相同的服务器,VLC做客户端就是很好的,感觉问题还是在客户端上,另外那个122驱动发给你了,收到了吧

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-05-18 14:25:24
认可0
可能是其他人问你要的驱动吧

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-18 14:29:38
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30207&ptid=11349]zhuangweiye 发表于 2016-5-18 14:25[/url]
可能是其他人问你要的驱动吧[/quote]

是哦,你们都是考拉的头像

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-18 14:43:04
认可0
附上我工作日志:

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-05-18 16:06:14
认可0
本帖最后由 ngswfx 于 2016-5-18 16:08 编辑

看这个日志,SmartPlayer好像用的的就是UDP传数据,不行就试试用TCP传输对比一下。另外看看VLC用的哪种方式,用抓包工具抓一下交互命令的数据包,可以看出来。如果这里都不一样的话,有些差异就好解释了。

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-19 09:50:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30222&ptid=11349]ngswfx 发表于 2016-5-18 16:06[/url]
看这个日志,SmartPlayer好像用的的就是UDP传数据,不行就试试用TCP传输对比一下。另外看看VLC用的哪种方式 ...[/quote]

好的,我等下用wireshark抓一下看看,谢谢

goodman

2个粉丝

30

问答

18

专栏

17

资料

goodman 2016-05-19 10:33:47
认可0
live555中有个这个变量OutPacketBuffer::maxSize会有影响到数据的的,当获取的帧大于这个数的时候后面的帧会丢弃,
所以我猜测应该是的位率比较大引起,可以讲位率改下试下,如果确定了就将live555中的OutPacketBuffer::maxSize放大

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-19 15:27:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30261&ptid=11349]goodman 发表于 2016-5-19 10:33[/url]
live555中有个这个变量OutPacketBuffer::maxSize会有影响到数据的的,当获取的帧大于这个数的时候后面的帧 ...[/quote]

您好,我直接搜索这个没有找到这个maxSize
然后我找了一下live555中,一般是这么用的:

我的函数中的continueplaying,都是创建消费类得到下一帧数据的操作:

david

33个粉丝

368

问答

253

专栏

229

资料

david 2016-05-19 15:39:52
认可0
丢数据屏幕会花掉,这个看现象直接没数据了,是不是smartplayer的缓存深度问题?
看看smartplayer的延时

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-19 15:49:59
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30290&ptid=11349]david 发表于 2016-5-19 15:39[/url]
丢数据屏幕会花掉,这个看现象直接没数据了,是不是smartplayer的缓存深度问题?
看看smartplayer的延时[/quote]

因为我的数据显示是从链表中取数据然后送去显示的,我在想是不是显示完了一帧数据之后,下一帧没有放入到链表中,所以出现的这个灰屏的现象。。。。

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-05-19 15:52:25
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=30290&ptid=11349]david 发表于 2016-5-19 15:39[/url]
丢数据屏幕会花掉,这个看现象直接没数据了,是不是smartplayer的缓存深度问题?
看看smartplayer的延时[/quote]

我单独测试服务器,用VLC做客户端是效果很好的,
然后用VLC串流本地文件出去循环播放,再用自己的客户端去读取也是没问题的,效果很好,难道是数据传输的问题?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区