Захват видео и потоковое в C ++ - PullRequest
0 голосов
/ 17 апреля 2019

Я работаю над проблемой, когда в качестве входных данных он берет видеоданные (необработанные данные) с сервера (Network Video Recorder) и просто передает видео с помощью VLC. Данные предоставляются в виде указателя (в части кода), и я хочу иметь возможность захватывать и передавать видео.

Я уже пытался использовать OpenCV и VLC для захвата данных, но у меня нет опыта работы с видео на C ++, и я не смог получить эти данные. В OpenCV я передал ip сервера и информацию для входа в систему как ("http://username:password@xx.xx.xx.xx:xxxx/yuv/video.yuv") в VideoCapture () в качестве аргумента, но это не сработало.

Код, в котором видеоданные поступают с NVR Sdk, где видео передается кадр за кадром в качестве указателя.

...

typedef struct FrameHeadr 
{ 
  unsigned char mediaType;  
  unsigned char * pData;    //video Data as a pointer    
  unsigned int preBufSize;           
  unsigned int dataSize;             
  unsigned char frameRate;          
  unsigned int frameID;             
  unsigned int timeStamp;            
  union 
  { 
    struct { 
      int keyFrame;                 
      unsigned short videoWidth;    
      unsigned short videoHeight;   
    } videoParam; 
        unsigned char audioMode;         
  }; 
} FrameHeadr; 
typedef FrameHeadr * pFrameHeadr; 

...

Когда видеоданные захватываются или сохраняются, их не нужно транскодировать, просто чтобы иметь возможность получать данные и поток в виде RTSP в VLC. Так как я новый ученик, любые предложения, ссылки или методологии, как это сделать, приветствуются. Если способ, которым я пытаюсь захватить видео, неверен, пожалуйста, можете ли вы предложить какой-либо другой метод?

...