mirror of
https://onedev.site.tesses.net/tytd2025
synced 2026-04-18 14:06:33 +00:00
63 lines
1.4 KiB
Plaintext
63 lines
1.4 KiB
Plaintext
class TYTD.TranscodeVideo : IVideoDownload {
|
|
private id;
|
|
private ncv;
|
|
private tytd;
|
|
private ext;
|
|
|
|
public TranscodeVideo(id,ext)
|
|
{
|
|
this.id = id;
|
|
this.ext = ext;
|
|
this.ncv = new TYTD.NoConvertVideoDownload(id);
|
|
}
|
|
|
|
public setTYTD(tytd)
|
|
{
|
|
this.tytd = tytd;
|
|
return this.ncv.TYTD = tytd;
|
|
}
|
|
|
|
public setProgress(p)
|
|
{
|
|
return this.ncv.Progress = p;
|
|
}
|
|
|
|
public getVideo()
|
|
{
|
|
return this.ncv.Video;
|
|
}
|
|
|
|
public Start()
|
|
{
|
|
var id = this.id;
|
|
this.mcv.Start();
|
|
|
|
var p = new Process();
|
|
p.FileName = Env.GetRealExecutablePath("ffmpeg").ToString();
|
|
|
|
var dir = this.tytd.DatabaseDirectory / "Streams"/this.id.Substring(0,4)/this.id.Substring(4);
|
|
var vo = dir / "vo.bin";
|
|
var ao = dir / "ao.bin";
|
|
var out = dir / $"conv{this.ext}";
|
|
if(FS.Local.FileExists(out)) return;
|
|
var args=["-y","-i",vo.ToString(),"-i",ao.ToString()];
|
|
|
|
if(this.ext == ".mkv")
|
|
{
|
|
args.Add("-c");
|
|
args.Add("copy");
|
|
}
|
|
args.Add("-map");
|
|
args.Add("0:v");
|
|
args.Add("-map");
|
|
args.Add("1:a");
|
|
args.Add("-preset");
|
|
args.Add("ultrafast");
|
|
args.Add(out.ToString());
|
|
|
|
|
|
p.Arguments = args;
|
|
if(p.Start())
|
|
p.Join();
|
|
}
|
|
} |