H264多播传输RTP包

简介: H264多播传输RTP包

多播简介

  • 单播地址标识单个IP接口,广播地址标识某个子网的所有IP接口,多播地址标识一组IP接口
  • 单播和广播是两个极端,多播则在这两者之间折衷
  • 多播数据报只由加入多播组的应用的主机的接口接收
  • IPV4的D类地址是IPV4的多播地址,范围是(224.0.0.0-239.255.255.255)

如何实现多播

  • 服务端:多播服务端并不需要什么特殊的操作,只需要创建udp套接字,然后向多播地址指定端口发送数据就行
  • 客户端:多播客户端需要做的工作是,创建udp套接字,绑定多播端口,加入多播组

多播的sdp描述文件

a=type:broadcast
a=rtcp-unicast: reflection
m=video 5678 RTP/AVP 96
c=IN IP4 239.255.255.11/255
a=rtpmap:96 H264/90000
a=framerate:25
  • 这是一个多播H.264的sdp文件(详情看:"1.RTSP协议介绍.md")
  • 端口号:5678,多播IP:239.255.255.11

代码实现

源码

  • "test/005/test_rtp.c"
  • "test/005/test_rtp.h"
  • "test/005/test_rtp_h264.c.h"

额外所需文件

  • multicast.sdp
  • test.h264(使用"test/002/"下的即可)

测试

  • 编译:gcc test_rtp.c test_rtp_h264.c
  • 运行:./a.out test.h264
  • 在对多个命令行窗口下使用命令"vlc multicast.sdp"

源码讲解

// rtpSendH264Frame(rtpServerSockfd, CLIENT_IP, CLIENT_PORT, rtpPacket, frame + offset, naluLen);

rtpSendH264Frame(rtpServerSockfd,MULTICAST_IP,MULTICAST_PORT,rtpPacket,frame+offset,naluLen);

  • 源码说明:服务端代码实现非常简单,只需要修改“4.将H264码流打包成RTP包.md”对应的"test/002/"代码中的目的IP和目的端口改为目的多播IP和目的多播端口就可以了
目录
相关文章
|
29天前
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
57 0
|
1月前
|
网络协议 数据格式
|
4月前
|
Web App开发
ZLMediaKit webrtc RTP包接受与重传
ZLMediaKit webrtc RTP包接受与重传
|
6月前
|
缓存 网络协议 Shell
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
62 0
|
7月前
|
搜索推荐 网络架构
RTP协议应用方案
RTP协议应用方案
51 0
|
缓存 中间件
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么
|
编解码 小程序 算法
自己动手写RTP服务器——关于RTP协议
本文会带领着你一步步动手实现一个简单的RTP传输服务器,旨在了解RTP流媒体传输协议以及一些关于多媒体编解码的知识。   关于RTP协议的必备知识 要动手实现一个协议,当然首先需要阅读该协议的文档。
1811 0
|
编解码
RTP 协议
概述: 实时传送协议(Real-time Transport Protocol或简写RTP,也可以写成RTTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。
1107 0

热门文章

最新文章