简介
RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议。通过RTCP来控制播放,将视频数据打包为RTP包进行传输。
示例
import rtsp
import time
def find_nal(data, size):
nals = data.split(b'\x00\x00\x00\x01')
for i in range(len(nals)):
nals[i] = b'\x00\x00\x00\x01' + nals[i]
return nals[1:]
#打开事前准备的H264数据进行传输
f = open("/root/app/res/stream.h264","rb")
data = f.read()
size = len(data)
f.close()
#定义时间戳ts,每个nal包间隔40ms
ts = 0
tick = 40000
nals = find_nal(data,size)
rtsp.create(554, "/live.sdp")
while True:
for i in range(len(nals)):
rtsp.send_video(nals[i], len(nals[i]), ts)
ts = ts + tick
time.sleep_ms(10)#重复发送,发完后睡眠一段时间
rtsp.destroy()
执行后,电脑端使用VLC工具访问估计默认地址:rtsp://192.168.137.25/live.sdp, 将会看见传输的视频内容。
延伸
尝试一下把摄像头,编码器,RTSP整合起来,进行视频传输。