Я работаю над проблемой, когда в качестве входных данных он берет видеоданные (необработанные данные) с сервера (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. Так как я новый ученик, любые предложения, ссылки или методологии, как это сделать, приветствуются. Если способ, которым я пытаюсь захватить видео, неверен, пожалуйста, можете ли вы предложить какой-либо другой метод?