这是从海康流媒体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码流格式