简介

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整合起来,进行视频传输。

文档更新时间: 2020-12-09 09:45   作者:Tony