资源简介
c# VS2017代码 demo 模拟ehome从海康ipc获取的流中提取h264流。设备型号DS-2CD2T10D-I3
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.xml;
namespace MyEhome.Test
{
class Program
{
static int port = 7660;
static IPEndPoint ipep = new IPEndPoint(IPAddress.Any port);
static Socket _newsock;
static int tcpPort = 16781;
static void Main(string[] args)
{
///开启socket 等待流连接
Task.Run(() => NatlinkServer());
_newsock = new Socket(AddressFamily.InterNetwork SocketType.Dgram ProtocolType.Udp);
//绑定网络地址
_newsock.Bind(ipep);
Console.WriteLine(“This is a Server host name is {0}“ Dns.GetHostName());
//等待客户机连接
Console.WriteLine(“Waiting for a client“);
Task.Run(() => receiveUdpMsg(_newsock));
///处理流
Task.Run(() => OptStram());
Console.ReadKey();
}
static Dictionary DevKeys = new Dictionary();
static object lockDev = new object();
static List PesStream = new List();
static object lockPes = new object();
static AutoResetEvent autoReset = new AutoResetEvent(false);
private static void NatlinkServer()
{
Socket _serverSock = new Socket(SocketType.Stream ProtocolType.Tcp);
_serverSock.Bind(new IPEndPoint(IPAddress.Any tcpPort));
_serverSock.Listen(250);
while(true)
{
Socket client1 = _serverSock.Accept();
Task.Run(() => RecvSocket(client1));
}
}
///
///
///
private static void OptStram()
{
Console.WriteLine(“开始提取 h264 流“);
FileStream fs = new FileStream(“d:\\1.mpg“ FileMode.Create);
while (true)
{
if(PesStream.Count<1000)
{
autoReset.WaitOne();
continue;
}
////////////////////////////////////
lock (lockPes)
{
byte[] pesHeader = PesStream.Take(14).ToArray();
///e0
if (pesHeader[0] == 0 && pesHeader[1] == 0 && pesHeader[2] == 1 && pesHeader[3] == 224)
{
int pesHeaderBufLength = pesHeader[4] * 256 + pesHeader[5];
var h264 = PesStream.Skip(6).Take(pesHeaderBufLength).Skip(3 + pesHeader[8]).ToArray();
if (h264.Length != (pesHeaderBufLength - 3 - pesHeader[8]))
{
continue;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 187 2018-08-21 09:49 MyEhome.Test\App.config
文件 2331 2018-08-28 10:22 MyEhome.Test\MyEhome.Test.csproj
文件 1122 2018-08-28 10:19 MyEhome.Test\MyEhome.Test.sln
文件 25655 2018-08-28 10:22 MyEhome.Test\Program.cs
目录 0 2018-08-28 10:22 MyEhome.Test\Properties\
文件 1149 2018-08-28 10:22 MyEhome.Test\Properties\AssemblyInfo.cs
目录 0 2018-08-28 10:23 MyEhome.Test\
相关资源
- 海康sdkC#封装及调用
- c#调用海康sdk查看摄像头 实时图像
- c#调用海康sdk实现查看视频回放
- C#海康SDK车辆识别手动抓拍实现VS201
- 海康威视网络库播放库c#实时预览
- 大华海康宇视卡口超速闯红灯抓拍系
- C#二次开发之海康威视摄像机登录、预
- 海康威视门禁c#demo(含源码)和开发
- 海康人脸识别C#远程采集人脸、下发人
- 车牌抓拍识别_海康代码_C#
- C# 海康人脸识别主机demo,64位可运行
- C#海康抓拍机Demo
- C#海康识别抓拍回调(增加出入口LE
- 海康威视wpf客户端1-实时预览
- c# 实现海康威视网络摄像头断连提示
- 海康威视文档iVMS-8700_V2.9.2-C#
- C#版海康客户端API封装
- 海康威视SDK HCNetSDK C#封装
- 海康威视荧石网络摄像头SDK开发C#De
- 用于海康、大华等录像机的WPF视频播
- 海康威视摄像头调用asp.net版本C#语言
- HIKVideoDriver C#封装海康客户端
- C# 海康 DVR SDK實現布防等功能
- 海康威视工业相机二次开发-C#.rar
- C#海康SDK多路视频实时播放
- 海康web3.0开发包
- 海康dvr流媒体服务器+客户端
- 海康7800V3.0 控件sdk(web开发接口)
- 海康流媒体开发包
- 海康NVR监控c#demo
评论
共有 条评论