当前位置: 代码迷 >> 多媒体/流媒体开发 >> 通过程序保存的海康流媒体播放有关问题
  详细解决方案

通过程序保存的海康流媒体播放有关问题

热度:5959   发布时间:2013-02-26 00:00:00.0
通过程序保存的海康流媒体播放问题
这是从海康流媒体dll转过来的,在调用HIKS_CreatePlayer时使用回调函数pDataRec来保存文件,但是保存的文件无法播放,有没有人告诉这是为什么啊?
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
  public delegate int pDataRec(int sid, int iusrdata, int idatatype, string pdata, int ilen);
 public void GetFile(int sid, int iusrdata, int idatatype, string pdata, int ilen)
  {
  if (!start && !bolDispose)
  {
  start = true;  
  // string saveFilePath = @"c:\test" + @"\HIKS_" + (DateTime.Now.ToString("yyyyMMdd_HHmmss")) +"-" + ServerIP +"-"+ DevChannel + ".264";
  string saveFilePath = @"c:\test" + @"\HIKS" + (DateTime.Now.ToString("yyyyMMddHHmmss")) + ".264";

  fs = new FileStream(saveFilePath, FileMode.Create);

  sw = new StreamWriter(fs,Encoding.UTF8);
  }

  sw.Write(pdata);
  }
用该代码得到的数据生成保存的流媒体无法打开,说是unsupported media type,这是什么原因啊?

------解决方案--------------------------------------------------------
是标准格式的码流吗?
海康的264码流应该是有一个几十字节的头,没有这个头,无法解码。
------解决方案--------------------------------------------------------
先用mediainfo看下是不是标准的码流,不是标准的话就要用海康自己提供的SDK解码。。。
海康的格式头是40字节,
------解决方案--------------------------------------------------------
去掉格式头的40字节,就是标准的264码流格式
  相关解决方案