private void onStreamEvent(IStreamPacket packet) { Console.WriteLine(); Console.Write("packet {0}:", packet.Buffer.Length); for (int i = 0; i < 30; i++) { Console.Write("{0:X2}, ", packet.Buffer[i]); } Console.WriteLine(); int width = 0; int height = 0; byte[] frameData = _decoder.Decode(packet.Buffer, out width, out height); if (frameData != null) { Console.WriteLine("Decode frame: {0}", frameData.Length); int size = width * 4 * height; byte[] rgb = new byte[size]; for (int i = 0; i < width * height; i++) { rgb[i * 4] = rgb[i * 4 + 1] = rgb[i * 4 + 2] = frameData[i]; rgb[i * 4 + 3] = 0xFF; } IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.Copy(rgb, 0, ptr, size); using (Bitmap bmp = new Bitmap(width, height, width * 4, System.Drawing.Imaging.PixelFormat.Format32bppRgb, ptr)) { onBitmap(bmp); } Marshal.FreeHGlobal(ptr); } }
private void onStandardStream(IStreamPacket obj) { onStream(obj.Buffer, obj.FrameType, obj.Time); if (obj.FrameType == CCTVFrameType.StreamFrame || obj.FrameType == CCTVFrameType.StreamKeyFrame) { onFrame(obj.Buffer, obj.FrameType); } }
private void onStream(IStreamPacket packet) { if (_isTransform) { updateFromH264(packet); } else { _hikDecoder?.InputData(1, packet.Buffer); } }
private void onStream(IStreamPacket packet) { savetoTxt(packet.Buffer); //string rtspstr = $"hik packet {packet.FrameType} {packet.Buffer.Length}:"; //for (int i = 0; i < Math.Min(100, packet.Buffer.Length); i++) // rtspstr += string.Format("{0:X2}, ", packet.Buffer[i]); //Console.WriteLine(rtspstr); //if (packet.FrameType == CCTVFrameType.StreamFrame) // Console.WriteLine($"{packet.FrameType} ---- {packet.Buffer.Length}---{packet.Time.TimeOfDay}"); //else // Console.WriteLine($"{packet.FrameType} ---- {packet.Buffer.Length}---{packet.Time.TimeOfDay}-------------------------------"); }
private void updateFromH264(IStreamPacket packet) { byte[] buffer = getVideoDecoderBuffer(packet.Buffer); if (buffer != null && buffer.Length > 0) { int width = 0; int height = 0; byte[] frameData = _decoder?.Decode(buffer, out width, out height); if (frameData != null) { onDisplay(frameData, width, height); MessageInfo = "设备支持海康码流转为Ffmpeg.VideoDecoder格式"; } } }
private void onStreamEvent(IStreamPacket packet) { //savetoTxt(packet.Buffer); //Console.WriteLine(); //string rtspstr = $"rtsp stream {packet.Buffer.Length}:"; //for (int i = 0; i < Math.Min(100, packet.Buffer.Length); i++) // rtspstr += string.Format("{0:X2}, ", packet.Buffer[i]); //Console.WriteLine(rtspstr); int width = 0; int height = 0; byte[] frameData = _decoder.Decode(packet.Buffer, out width, out height); if (frameData != null) { if (width != _width || height != _height) { _width = width; _height = height; _renderSource.SetupSurface(width, height); } renderFrame(frameData, width, height); } }
private void onHikStream(IStreamPacket packet) { //_ups.UpdateStandardStream(packet.Buffer); _upsnew.UpdateStandardStream(packet.Buffer); }
private void Stream_StreamEvent(IStreamPacket obj) { OnStreamDataReceived(new StreamData(obj.Time, obj.Buffer)); }