public IOutFileStream CreateOutFileStream(BaseProtocol protocol,string name,string filePath,bool append)
{
var meta = GetMetaData(name, false,protocol.Application.Configuration);
string fileName = meta[Defines.META_SERVER_MEDIA_DIR];
fileName += meta[Defines.META_SERVER_FILE_NAME];
this.Log().Info("fileName: {0}", fileName);
IOutFileStream pOutFileStream = null;
switch ((string)meta[Defines.META_MEDIA_TYPE])
{
case Defines.MEDIA_TYPE_FLV:
case Defines.MEDIA_TYPE_LIVE_OR_FLV:
if (append)
{
//删除原来的辅助文件
var seekPath = meta[Defines.META_SERVER_FULL_PATH] + "." + Defines.MEDIA_TYPE_SEEK;
var metaDataPath = meta[Defines.META_SERVER_FULL_PATH] + "." + Defines.MEDIA_TYPE_META;
File.Delete(seekPath);
File.Delete(metaDataPath);
}
pOutFileStream = new OutFileRTMPFLVStream(protocol, Application.StreamsManager, filePath??fileName, name) { Appending = append };
break;
case Defines.MEDIA_TYPE_MP4:
Logger.FATAL("Streaming to MP4 file not supported");
break;
default:
Logger.FATAL("Media type not supported");
break;
}
return pOutFileStream;
}
public Variant GetMetaData(string streamName, bool extractInnerMetadata, Variant configuration)