用RTP封装H264并发送,不清楚是否发送成功的话,那么就用wireshark抓取一下流,看看是否有抓到流。
先打开wireshark准备接收,然后打开发送rtp流的demo,开始发送。
因为RTP发送是基于UDP的,所以看到的Protocol显示的UDP,选中一行,点击右键,选择Decode As...
弹出如下窗口,将【当前】设置成RTP,(快捷键,输入R,就能定位到R开头的协议,更容易找到RTP)
设置好,如下:,点击OK
然后,UDP就改成了RTP。
选择电话,RTP,流分析,就能看到,是否抓到了流。
下图是个失败的例子,全部都没有捕获,都丢失了。原因是:我的nalu包,发送的时候,没有去掉nalu header。可以理解为RTP封装的时候,出了问题。
修改代码之后,下图找到流,成功!
试着进行播放:
左侧的demo是录制屏幕的,仅录制了640*480大小,然后rtp发送的。
右边是接受RTP数据的demo, 并显示。
感觉上延时不到1s,可能是线程设置的不对,造成的延时。后面再继续优化优化。
站在巨人的肩膀上,链接如下:
https://blog.csdn.net/zhoubotong2012/article/details/86510032