livePipe.py 1018 B

1234567891011121314151617181920212223242526272829303132
  1. # 直播管道输出
  2. # ffmpeg推送rtmp 重点 : 通过管道 共享数据的方式
  3. import subprocess as sp
  4. rtspUrl = 'rtsp://localhost:8554/mystream'
  5. def LivePipe(size, fps):
  6. sizeStr = str(size[0]) + 'x' + str(size[1])
  7. command = ['ffmpeg',
  8. '-y',
  9. '-hide_banner',
  10. # '-loglevel', 'warning',
  11. # '-hwaccel', 'videotoolbox',
  12. '-f', 'rawvideo',
  13. '-vcodec', 'rawvideo',
  14. '-pix_fmt', 'bgr24',
  15. '-s', sizeStr,
  16. '-r', str(fps),
  17. '-i', '-',
  18. '-b:v', '3000K',
  19. # '-c:v', 'h264_videotoolbox',
  20. '-c:v', 'libx264',
  21. '-pix_fmt', 'yuv420p',
  22. '-preset', 'ultrafast',
  23. '-f', 'rtsp',
  24. rtspUrl]
  25. # 管道特性配置
  26. # pipe = sp.Popen(command, stdout = sp.PIPE, bufsize=10**8)
  27. pipe = sp.Popen(command, stdin=sp.PIPE, bufsize=10**8) # ,shell=False
  28. return pipe