| 1234567891011121314151617181920212223242526272829303132 |
- # 直播管道输出
- # 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
|