-
Notifications
You must be signed in to change notification settings - Fork 0
/
record.ts
50 lines (44 loc) · 1.4 KB
/
record.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import BroadcastSchema from "./src/broadcast-schema";
import BroadcastSchedule from "./src/broadcast-schedule";
import BroadcastRecorder from "./src/broadcast-recorder";
import { DateTime } from "luxon";
import "dotenv/config";
import { timeFormats, vd } from "./src/helper/helper";
// const dataStartString = [
// DateTime.now().toFormat("yyyy-MM-dd"),
// "T",
// process.env.RECORDER_START_TIME,
// ].join("");
// const dateStart = DateTime.fromISO(dataStartString);
// const dateEnd = dateStart.plus({
// hours: Number(process.env.RECORDER_DURATION),
// });
const dataStartString = [
DateTime.now().toFormat("yyyy-MM-dd"),
"T",
"120000",
].join("");
const dateStart = DateTime.fromISO(dataStartString);
const dateEnd = dateStart.plus({
seconds: 7200,
});
const schedule = new BroadcastSchedule({
dateStart: dateStart,
dateEnd: dateEnd,
schema: new BroadcastSchema({
schemaFile: process.env.BROADCAST_SCHEMA_FILE,
}),
locale: process.env.SCHEDULE_LOCALE,
repeatShort: process.env.REPEAT_SHORT,
});
const recorder = new BroadcastRecorder({
schedule,
streamUrl: process.env.RECORDER_STREAM_URL,
filenamePrefix: process.env.FILENAME_PREFIX,
delay: 5,
});
console.log("[Recorder] starts at " + dateStart.toFormat(timeFormats.human));
console.log("[Recorder] ends at " + dateEnd.toFormat(timeFormats.human));
recorder.start().then((resp) => {
console.log("[Recorder] has finished!");
});