# 直播管道输出 # ffmpeg推送rtmp 重点 : 通过管道 共享数据的方式 import subprocess as sp rtspUrl = 'rtsp://localhost:8554/mystream' def LivePipe(size, fps): sizeStr = str(size[0]) + 'x' + str(size[1]) command = ['ffmpeg', '-y', '-hide_banner', # '-loglevel', 'warning', # '-hwaccel', 'videotoolbox', '-f', 'rawvideo', '-vcodec', 'rawvideo', '-pix_fmt', 'bgr24', '-s', sizeStr, '-r', str(fps), '-i', '-', '-b:v', '3000K', # '-c:v', 'h264_videotoolbox', '-c:v', 'libx264', '-pix_fmt', 'yuv420p', '-preset', 'ultrafast', '-f', 'rtsp', rtspUrl] # 管道特性配置 # pipe = sp.Popen(command, stdout = sp.PIPE, bufsize=10**8) pipe = sp.Popen(command, stdin=sp.PIPE, bufsize=10**8) # ,shell=False return pipe