How to get video stream from the camera of laptop or system using golang

Hi…
I want to create a cli using golang.
golang cli should able to list camera and microphone devices connected to laptop or system. get video picture or video stream from the system or laptop. Write video stream to file on local system . Transfer video stream to server so that if i open that portal i should be able to see video.

Targeted system :

  1. Linux
  2. Windows
  3. MacOS

Functionality :

  1. List camera and microphone connected
  2. Get video stream from selected camera
  3. Get image
  4. Store video stream from camera so that it can be played as video in media player
  5. Send video stream to server so that it can be access on other device (live streaming from the security camera)
    Note : i dont want to create access camera in browser

Question :

  1. Any library/package available from golang which can help me achieving above listed functionality ?