mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 19:00:01 +08:00
配置文件支持相对路径,http文件服务器防止访问根目录父目录
This commit is contained in:
parent
cbb25eadef
commit
67d2beb52a
@ -1 +1 @@
|
|||||||
Subproject commit 665f53b6a4385e2312d3bf09aa305d7e3bf079e6
|
Subproject commit ace77b132039d6ef8a97b6dad92115f88821bc45
|
@ -39,7 +39,7 @@ const char kLog[] = FFmpeg_FIELD"log";
|
|||||||
onceToken token([]() {
|
onceToken token([]() {
|
||||||
mINI::Instance()[kBin] = trim(System::execute("which ffmpeg"));
|
mINI::Instance()[kBin] = trim(System::execute("which ffmpeg"));
|
||||||
mINI::Instance()[kCmd] = "%s -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s";
|
mINI::Instance()[kCmd] = "%s -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s";
|
||||||
mINI::Instance()[kLog] = exeDir() + "ffmpeg/ffmpeg.log";
|
mINI::Instance()[kLog] = "./ffmpeg/ffmpeg.log";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ void FFmpegSource::play(const string &src_url,const string &dst_url,int timeout_
|
|||||||
|
|
||||||
char cmd[1024] = {0};
|
char cmd[1024] = {0};
|
||||||
snprintf(cmd, sizeof(cmd),ffmpeg_cmd.data(),ffmpeg_bin.data(),src_url.data(),dst_url.data());
|
snprintf(cmd, sizeof(cmd),ffmpeg_cmd.data(),ffmpeg_bin.data(),src_url.data(),dst_url.data());
|
||||||
_process.run(cmd,ffmpeg_log);
|
_process.run(cmd,File::absolutePath("",true,ffmpeg_log));
|
||||||
InfoL << cmd;
|
InfoL << cmd;
|
||||||
|
|
||||||
if(_media_info._host == "127.0.0.1"){
|
if(_media_info._host == "127.0.0.1"){
|
||||||
|
@ -122,7 +122,7 @@ const string kMaxReqCount = HTTP_FIELD"maxReqCount";
|
|||||||
const string kCharSet = HTTP_FIELD"charSet";
|
const string kCharSet = HTTP_FIELD"charSet";
|
||||||
|
|
||||||
//http 服务器根目录
|
//http 服务器根目录
|
||||||
#define HTTP_ROOT_PATH (exeDir() + "httpRoot")
|
#define HTTP_ROOT_PATH "./httpRoot"
|
||||||
const string kRootPath = HTTP_FIELD"rootPath";
|
const string kRootPath = HTTP_FIELD"rootPath";
|
||||||
|
|
||||||
//http 404错误提示内容
|
//http 404错误提示内容
|
||||||
|
@ -375,10 +375,7 @@ static bool checkHls(BroadcastHttpAccessArgs){
|
|||||||
return NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastMediaPlayed,args_copy,mediaAuthInvoker,sender);
|
return NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastMediaPlayed,args_copy,mediaAuthInvoker,sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HttpSession::canAccessPath(const string &path_in,bool is_dir,const function<void(const string &errMsg,const HttpServerCookie::Ptr &cookie)> &callback_in){
|
void HttpSession::canAccessPath(const string &path,bool is_dir,const function<void(const string &errMsg,const HttpServerCookie::Ptr &cookie)> &callback_in){
|
||||||
auto path = path_in;
|
|
||||||
replace(const_cast<string &>(path),"//","/");
|
|
||||||
|
|
||||||
auto callback = [callback_in,this](const string &errMsg,const HttpServerCookie::Ptr &cookie){
|
auto callback = [callback_in,this](const string &errMsg,const HttpServerCookie::Ptr &cookie){
|
||||||
try {
|
try {
|
||||||
callback_in(errMsg,cookie);
|
callback_in(errMsg,cookie);
|
||||||
@ -507,7 +504,7 @@ void HttpSession::Handle_Req_GET(int64_t &content_len) {
|
|||||||
GET_CONFIG(uint32_t,reqCnt,Http::kMaxReqCount);
|
GET_CONFIG(uint32_t,reqCnt,Http::kMaxReqCount);
|
||||||
GET_CONFIG(bool,enableVhost,General::kEnableVhost);
|
GET_CONFIG(bool,enableVhost,General::kEnableVhost);
|
||||||
GET_CONFIG(string,rootPath,Http::kRootPath);
|
GET_CONFIG(string,rootPath,Http::kRootPath);
|
||||||
string strFile = enableVhost ? rootPath + "/" + _mediaInfo._vhost + _parser.Url() :rootPath + _parser.Url();
|
auto strFile = File::absolutePath(enableVhost ? _mediaInfo._vhost + _parser.Url() : _parser.Url(), false, rootPath);
|
||||||
bool bClose = (strcasecmp(_parser["Connection"].data(),"close") == 0) || ( ++_iReqCnt > reqCnt);
|
bool bClose = (strcasecmp(_parser["Connection"].data(),"close") == 0) || ( ++_iReqCnt > reqCnt);
|
||||||
|
|
||||||
do{
|
do{
|
||||||
|
@ -44,10 +44,11 @@ MediaReader::MediaReader(const string &strVhost,const string &strApp, const stri
|
|||||||
GET_CONFIG(string,recordPath,Record::kFilePath);
|
GET_CONFIG(string,recordPath,Record::kFilePath);
|
||||||
GET_CONFIG(bool,enableVhost,General::kEnableVhost);
|
GET_CONFIG(bool,enableVhost,General::kEnableVhost);
|
||||||
if(enableVhost){
|
if(enableVhost){
|
||||||
strFileName = recordPath + "/" + strVhost + "/" + strApp + "/" + strId;
|
strFileName = strVhost + "/" + strApp + "/" + strId;
|
||||||
}else{
|
}else{
|
||||||
strFileName = recordPath + "/" + strApp + "/" + strId;
|
strFileName = strApp + "/" + strId;
|
||||||
}
|
}
|
||||||
|
strFileName = File::absolutePath(strFileName,true,recordPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
_hMP4File = MP4Read(strFileName.data());
|
_hMP4File = MP4Read(strFileName.data());
|
||||||
|
@ -56,13 +56,15 @@ MediaRecorder::MediaRecorder(const string &strVhost_tmp,
|
|||||||
#if defined(ENABLE_HLS)
|
#if defined(ENABLE_HLS)
|
||||||
if(enableHls) {
|
if(enableHls) {
|
||||||
string m3u8FilePath;
|
string m3u8FilePath;
|
||||||
|
string params;
|
||||||
if(enableVhost){
|
if(enableVhost){
|
||||||
m3u8FilePath = hlsPath + "/" + strVhost + "/" + strApp + "/" + strId + "/hls.m3u8";
|
m3u8FilePath = strVhost + "/" + strApp + "/" + strId + "/hls.m3u8";
|
||||||
_hlsRecorder.reset(new HlsRecorder(m3u8FilePath,string(VHOST_KEY) + "=" + strVhost ,hlsBufSize, hlsDuration, hlsNum));
|
params = string(VHOST_KEY) + "=" + strVhost;
|
||||||
}else{
|
}else{
|
||||||
m3u8FilePath = hlsPath + "/" + strApp + "/" + strId + "/hls.m3u8";
|
m3u8FilePath = strApp + "/" + strId + "/hls.m3u8";
|
||||||
_hlsRecorder.reset(new HlsRecorder(m3u8FilePath,"",hlsBufSize, hlsDuration, hlsNum));
|
|
||||||
}
|
}
|
||||||
|
m3u8FilePath = File::absolutePath(m3u8FilePath,true,hlsPath);
|
||||||
|
_hlsRecorder.reset(new HlsRecorder(m3u8FilePath,params,hlsBufSize, hlsDuration, hlsNum));
|
||||||
}
|
}
|
||||||
#endif //defined(ENABLE_HLS)
|
#endif //defined(ENABLE_HLS)
|
||||||
|
|
||||||
@ -73,10 +75,11 @@ MediaRecorder::MediaRecorder(const string &strVhost_tmp,
|
|||||||
if(enableMp4){
|
if(enableMp4){
|
||||||
string mp4FilePath;
|
string mp4FilePath;
|
||||||
if(enableVhost){
|
if(enableVhost){
|
||||||
mp4FilePath = recordPath + "/" + strVhost + "/" + recordAppName + "/" + strApp + "/" + strId + "/";
|
mp4FilePath = strVhost + "/" + recordAppName + "/" + strApp + "/" + strId + "/";
|
||||||
} else {
|
} else {
|
||||||
mp4FilePath = recordPath + "/" + recordAppName + "/" + strApp + "/" + strId + "/";
|
mp4FilePath = recordAppName + "/" + strApp + "/" + strId + "/";
|
||||||
}
|
}
|
||||||
|
mp4FilePath = File::absolutePath(mp4FilePath,true,recordPath);
|
||||||
_mp4Recorder.reset(new MP4Recorder(mp4FilePath,strVhost,strApp,strId));
|
_mp4Recorder.reset(new MP4Recorder(mp4FilePath,strVhost,strApp,strId));
|
||||||
}
|
}
|
||||||
#endif //defined(ENABLE_MP4RECORD)
|
#endif //defined(ENABLE_MP4RECORD)
|
||||||
|
Loading…
Reference in New Issue
Block a user