ow
This commit is contained in:
1 parent
7c8af2fb08
commit
c10f8347e2
31 files changed
+358
-292
No files matched your search
@@ -1404,7 +1404,7 @@ namespace CloudBuilder.Master.Service
|
||||
return para.ToArray().ToDelimiteredList(' ');
|
||||
}
|
||||
|
||||
public void TsToM3u8(string documentId, string mp4Url, string m3u8Url, int videoLength = 6)
|
||||
public void TsToM3u8(string documentId, string mp4Url, string m3u8Url)
|
||||
{
|
||||
string para = string.Format(service.Configuration[ServiceSettingsPolicy.FfmpegPictrue], mp4Url, m3u8Url);
|
||||
try
|
||||
@@ -1431,7 +1431,7 @@ namespace CloudBuilder.Master.Service
|
||||
}
|
||||
|
||||
//return;
|
||||
para = string.Format(service.Configuration["Ffmpeg:Arguments"], mp4Url, videoLength, fullName);
|
||||
para = string.Format(service.Configuration["Ffmpeg:Arguments"], mp4Url, fullName);
|
||||
//不直接转码视频文件,影响服务器性能,改为在闭时自动生成
|
||||
//Task.Run(() =>
|
||||
//{
|
||||
@@ -1513,16 +1513,30 @@ namespace CloudBuilder.Master.Service
|
||||
{
|
||||
log.WriteToFile(exePath + Parameters);
|
||||
if (string.IsNullOrEmpty(exePath)) return;
|
||||
Cli.Wrap(exePath)
|
||||
.WithArguments(Parameters)
|
||||
.ExecuteAsync();
|
||||
|
||||
// 必须等 ffmpeg 真正退出:视频封面(jpg)要在接口返回前落盘,
|
||||
// 否则前端刷新列表时文件还没生成,<img> 请求 404 且不会自动重试,
|
||||
// 表现为"上传完看不到封面,手动刷新才有"。
|
||||
// 最多等 15 秒,超时就交给前端的封面重试机制兜底,不再死等拖住上传请求。
|
||||
// CliWrap 的 ExecuteAsync 返回 CommandTask<CommandResult>,取它的 Task 才能等待
|
||||
var task = Cli.Wrap(exePath)
|
||||
.WithArguments(Parameters)
|
||||
.ExecuteAsync()
|
||||
.Task;
|
||||
|
||||
if (!task.Wait(TimeSpan.FromSeconds(15)))
|
||||
{
|
||||
log.WriteToFile("ffmpeg 执行超时(15s):" + Parameters);
|
||||
return;
|
||||
}
|
||||
|
||||
log.WriteToFile("ffmpeg 执行完成,ExitCode:" + task.Result.ExitCode);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 截图失败不影响上传本身,这里只记日志,封面由前端重试兜底
|
||||
log.WriteToFile(ex.Message);
|
||||
throw new ValidatedException(ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public DmsFileEntity CreateDmsFile(DmsFileEntity dmsFile)
|
||||
|
||||
Reference in new issue
Block a user