用rtsp流媒体服务器,vlc播放器播放h264视频流,播放有问题

zhou_yu_2006 2010-08-01 05:43:25
利用rtsp传送H264视频流:
我的时间戳,控制如下:第一帧为0,后面每一帧累加:90000/帧率 ,不知道这样写rtp的时间戳对不对?我现在用vlc播放,画面静止一段时间后会一闪一闪(画面有重复),但是从画面叠加的时间来看,播放最终确实是在向前进,但是显示帧数目远远大于解码帧数目,而且会有丢包。可以肯定的是我的打包和发送肯定没有问题。跪求高手解答!!!不胜感激!!sdp部分重要内容如下:
a=rtpmap:98 H264/90000
b=AS:2048
a=fmtp:98 profile-level-id=42E014; packetization-mode=1; sprop-parameter-sets=2gWCUQ==,zjCkgA==;decode_buf=20480
a=cliprect:0,0,352,288
a=framerate:25.00
a=control:streamid=0
我的sps nal内容如下:67 42 e0 14 DA 05 82 51
pps nal 内容如下:68 CE 30 A4 80

查询vlc播放器消息显示如下:
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 1%
main debug: Buffering 2%
main debug: Buffering 2%
main debug: Buffering 3%
main debug: Buffering 4%
main debug: Buffering 5%
main debug: Buffering 5%
main debug: Buffering 6%
main debug: Buffering 7%
main debug: Buffering 7%
main debug: Buffering 8%
main debug: Buffering 9%
main debug: Buffering 9%
main debug: Buffering 9%
main debug: Buffering 9%
main debug: Buffering 9%
main debug: Buffering 9%
main debug: Buffering 10%
main debug: Buffering 10%
main debug: Buffering 11%
main debug: Buffering 12%
main debug: Buffering 13%
main debug: End of video preroll
main debug: Received first picture
main debug: Buffering 13%
。。。。。。。。。。。。。。。。。。。
main debug: Buffering 98%
main debug: Buffering 98%
main debug: Buffering 98%
main debug: Buffering 98%
main debug: Buffering 99%
main debug: Stream buffering done (5520 ms in 23840 ms)
main debug: Decoder buffering done in 0 ms
main debug: auto hidding mouse
main error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 17041 ms ignored)
main error: ES_OUT_RESET_PCR called
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 1%
main debug: Buffering 2%
main debug: Buffering 2%
main debug: Buffering 3%
main debug: Buffering 4%
main debug: Buffering 5%
。。。。。。。。。。。。。。。。。。。。。。。。。。。
main debug: Buffering 98%
main debug: Buffering 98%
main debug: Buffering 99%
main debug: Stream buffering done (5520 ms in 23840 ms)
main debug: Decoder buffering done in 0 ms
...全文
11463 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
coder_china 2013-01-12
  • 打赏
  • 举报
回复
我也正在做这rtsp服务端,有兴趣交流的朋友加我QQ:765232498
cxy20121005 2012-11-16
  • 打赏
  • 举报
回复
我也刚做这个AAC,android上音频编解码.可以交流QQ:1049568282
jngd 2012-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
还想多问一句,如果想要B帧,又不想抖动,那么时间戳要怎么控制?
[/Quote]RTP打包用DTS写timestamp
zmmici 2012-10-15
  • 打赏
  • 举报
回复
楼主,可不可以给源码仔细研究一下呀!!!
qianqinanhang 2012-05-11
  • 打赏
  • 举报
回复
请问楼主,能不能自己做这样一个VLC播放器,能播放rtsp服务器端的.264视频,还实现后退,快进,调音等功能?
美丽海洋 2012-03-20
  • 打赏
  • 举报
回复
这个问题我也正要解决,我的网络rtp/rtcp传输,需要如何打包,特别是拆包组包
qoaimei 2012-03-17
  • 打赏
  • 举报
回复
怎么去掉B帧啊?[Quote=引用 4 楼 iloveinru 的回复:]

引用 1 楼 tufaqing 的回复:
1. 可能编码含有B帧,或者一帧有几个子帧。这时时间戳打法就有问题。
2. 确定H264编码时将每一帧都查找分开了吗?因为帧间有参考,编码几张图像可能才出来一次编码数据,但里面包含了好几帧编码数据。


老大你的一句话解决了我的问题,谢谢~去掉B帧,播放流畅。
[/Quote]
A282409975 2011-10-11
  • 打赏
  • 举报
回复
我也想做一个上位机软件播放器,就是我现在手里有个网络摄像机,我想把里面采集好的视频流播放出来,我就想在PC端做一个播放器,可是这个播放器如何能保证实时的播放呢,我之前没有做过这个,一点不懂,谁能告诉我大致的流程,谢谢!
zhumaomaozmm 2010-12-22
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zhou_yu_2006 的回复:]
延时的解决方法就是设置缓冲区缓冲时间,rtsp-caching=100表示缓冲100毫秒,这样基本就没有延时了。我最近又发现了一个新问题,就是用vlc连接我的设备看实时视频时,在编解码器详细信息里面看不到编码的帧率信息,而且持续观看视频大概1天后会出现vlc内存崩溃现象(vlc自动关闭,我的vlc是最新版本:1.1.4)。不知道大家有没有遇到这样的问题和现象。
[/Quote]
请问大侠,rtsp-caching=100这个怎么设置啊?难道是写在sdp中。发给vlc吗?谢谢!!!!!
opticssim 2010-12-21
  • 打赏
  • 举报
回复
知道问题了,呵呵。。。base64错了,呵呵
opticssim 2010-12-21
  • 打赏
  • 举报
回复
请教楼主:你sdp文件中是这样写的么:
a=fmtp:96 profile-level-id=42e014;packetization-mode=0;sprop-parameter-sets=Njc0MmUwMTRkYTA1ODI1MQ==,NjhjZTMwYTQ4MA==
我是这样写的VLC还是要求SPS/PPS包。。。
-----------------------------------------------------------------
17楼中:天把音视频同步问题也解决了,把1秒多的延时问题也解决了,呵呵。还有sps和pps现在也不用发了,需要在sdp里面包含他们两个的完整的base64编码,感谢大家的讨论,过几天就结贴了


dolidoli2009 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zhou_yu_2006 的回复:]

延时的解决方法就是设置缓冲区缓冲时间,rtsp-caching=100表示缓冲100毫秒,这样基本就没有延时了。~~
[/Quote]
改变这个参数是能减小延时,但是还是有大概500ms的延时。我只是依葫芦画瓢调用ffmpeg和live555的函数来实现压缩传输,不知道是不是程序中某些参数设置问题?看网上说sps pps什么的,这些东西是哪里设置的?
SoftSoftSoft2008 2010-12-02
  • 打赏
  • 举报
回复
让我试试连接你(zhou_yu_2006)的视频服务器看看,我连接5天5夜都没有问题。

我QQ 79941308
zhou_yu_2006 2010-12-02
  • 打赏
  • 举报
回复
延时的解决方法就是设置缓冲区缓冲时间,rtsp-caching=100表示缓冲100毫秒,这样基本就没有延时了。我最近又发现了一个新问题,就是用vlc连接我的设备看实时视频时,在编解码器详细信息里面看不到编码的帧率信息,而且持续观看视频大概1天后会出现vlc内存崩溃现象(vlc自动关闭,我的vlc是最新版本:1.1.4)。不知道大家有没有遇到这样的问题和现象。
dolidoli2009 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhou_yu_2006 的回复:]

这两天把音视频同步问题也解决了,把1秒多的延时问题也解决了,呵呵。还有sps和pps现在也不用发了,需要在sdp里面包含他们两个的完整的base64编码,感谢大家的讨论,过几天就结贴了
[/Quote]
lz好,我也遇到了这个问题:播放的画面总是比实际慢了1秒多,不知道楼主1秒多的延时问题是怎么解决的?有空的时候指点一下在下!我的邮箱:dolidoli2005@163.com或者在csdn上给我留言,十分感谢!!
yxcumt6 2010-09-28
  • 打赏
  • 举报
回复
学习。。。。。。。。
zhou_yu_2006 2010-09-27
  • 打赏
  • 举报
回复
这两天把音视频同步问题也解决了,把1秒多的延时问题也解决了,呵呵。还有sps和pps现在也不用发了,需要在sdp里面包含他们两个的完整的base64编码,感谢大家的讨论,过几天就结贴了
metaza 2010-09-19
  • 打赏
  • 举报
回复
最后咋解决的啊?
shutong_damao 2010-09-01
  • 打赏
  • 举报
回复
借用宝地,请教一个vod点播同步的问题:

打包方式RTP。

前端是华数的,视频时MPEG4,音频是AAC
视频码率是90000,音频码率是44100

目前得到的最初的时间戳video_pts:0xfd6e9be4, audio_pts:0x3d33c968,然后是按相关增量增加。
问题是我不知道时间戳的时间基准,也就没办法最初得到的audio 和 video是否同步,请问如何能
得到基准时间戳,如何判断和第一个video_pts同步的audio_pts,或者和一个audio_pts同步的video_pts?

谢谢各位!
yyscamper 2010-09-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iloveinru 的回复:]

引用 1 楼 tufaqing 的回复:
1. 可能编码含有B帧,或者一帧有几个子帧。这时时间戳打法就有问题。
2. 确定H264编码时将每一帧都查找分开了吗?因为帧间有参考,编码几张图像可能才出来一次编码数据,但里面包含了好几帧编码数据。


还想多问一句,如果想要B帧,又不想抖动,那么时间戳要怎么控制?
[/Quote]
应该是需要根据GOP的结构,将解码输出的帧的顺序转换到显示顺序,然后打相应的时间戳。
加载更多回复(13)

2,543

社区成员

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

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