private void Stream_HeaderEvent(IHeaderPacket obj) { switch (_vType) { case VideoDeviceType.Hikv: { HikHeaderPacket hhp = obj as HikHeaderPacket; if (hhp != null) { CurrentHeader = new HikvStreamHeader(hhp.Buffer); OnStreamHeaderRecieved(CurrentHeader); } } break; case VideoDeviceType.Ffmpeg: { FfmpegHeaderPacket fhp = obj as FfmpegHeaderPacket; if (fhp != null) { CurrentHeader = new FfmpegStreamHeader(fhp.CodecID, fhp.Buffer); OnStreamHeaderRecieved(CurrentHeader); } } break; default: break; } }
protected void onHeader(IHeaderPacket header) { Header = header; var handler = HeaderEvent; if (handler != null) { handler(header); } }
private void onHeader(IHeaderPacket packet) { lock (_objLock) { checkStyleChanged(packet); if (_isTransform) { _decoder = new VideoDecoder(); _decoder.Create(Constants.AVCodecID.AV_CODEC_ID_H264); } else { initHikDecoder((packet as HikHeaderPacket).Buffer); } } }
private void onHeader(IHeaderPacket packet) { HikHeaderPacket header = packet as HikHeaderPacket; if (header != null) { savetoTxt("Header: "); savetoTxt(header.Buffer); //Console.WriteLine(); //string rtspstr = $"hik Header {header.Buffer.Length}:"; //for (int i = 0; i < header.Buffer.Length; i++) // rtspstr += string.Format("{0:X2}, ", header.Buffer[i]); //Console.WriteLine(rtspstr); } }
public static IHeaderPacket Decode(MemoryStream ms) { VideoPacketType type = (VideoPacketType)PacketBase.ReadInt(ms); IHeaderPacket packet = null; switch (type) { case VideoPacketType.HikvisionHeader: packet = HikHeaderPacket.Decode(ms); break; case VideoPacketType.FfmpegHeader: packet = StandardHeaderPacket.Decode(ms); break; } return(packet); }
public static byte[] Encoder(IHeaderPacket packet) { using (MemoryStream ms = new MemoryStream()) { if (packet is HikHeaderPacket) { PacketBase.WriteBytes(ms, (int)VideoPacketType.HikvisionHeader); PacketBase.WriteBytes(ms, HikHeaderPacket.Encode(packet as HikHeaderPacket)); } else if (packet is StandardHeaderPacket) { PacketBase.WriteBytes(ms, (int)VideoPacketType.FfmpegHeader); PacketBase.WriteBytes(ms, StandardHeaderPacket.Encode(packet as StandardHeaderPacket)); } return(ms.ToArray()); } }
private void onHeader(IHeaderPacket packet) { var header = packet as StandardHeaderPacket; Console.Write("header {0}:", header.Buffer.Length); for (int i = 0; i < header.Buffer.Length; i++) { Console.Write("{0:X2}, ", header.Buffer[i]); } Console.WriteLine(); _decoder = new VideoDecoder(); _decoder.Create((Constants.AVCodecID)header.CodecID); int width = 0; int height = 0; _decoder.Decode(header.Buffer, out width, out height); }
private void onHeader(IHeaderPacket packet) { var header = packet as StandardHeaderPacket; _rtspServer.UpdateHeader(header.Buffer); Console.WriteLine(); string rtspstr = $"rtsp header {header.Buffer.Length}:"; for (int i = 0; i < header.Buffer.Length; i++) { rtspstr += string.Format("{0:X2}, ", header.Buffer[i]); } Console.WriteLine(rtspstr); _decoder = new VideoDecoder(); _decoder.Create((Constants.AVCodecID)header.CodecID); int width = 0; int height = 0; byte[] frame = _decoder.Decode(header.Buffer, out width, out height); }
private void checkStyleChanged(IHeaderPacket packet) { var buffer = (packet as HikHeaderPacket)?.Buffer; if (buffer != null && buffer.Length > 4) { if (buffer[0] == 0x34 && buffer[1] == 0x48 && buffer[2] == 0x4B && buffer[3] == 0x48)//ascii: 4HKH(旧设备) { MessageInfo = "设备不支持海康码流转为Ffmpeg.VideoDecoder格式"; } else if (buffer[0] == 0x49 && buffer[1] == 0x4D && buffer[2] == 0x4B && buffer[3] == 0x48) { MessageInfo = "设备支持海康码流转为Ffmpeg.VideoDecoder格式"; } else { MessageInfo = "其它设备类型,请通过验证判断!" + BitConverter.ToString(buffer); } } else { MessageInfo = "视频包头错误."; } }