-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmusicencode.js
More file actions
59 lines (53 loc) · 1.33 KB
/
musicencode.js
File metadata and controls
59 lines (53 loc) · 1.33 KB
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
51
52
53
54
55
56
57
58
59
// 音声ファイルをエンコードする。
import { writeFile } from "fs/promises";
import { createFFmpeg, fetchFile } from "@ffmpeg/ffmpeg";
const ffmpeg = createFFmpeg({ log: true });
const musics = [
{
from: "arcadia.ogg",
to: ["arcadia.m4a", "arcadia.ogg"],
},
{
from: "housekitan_1.ogg",
to: ["housekitan_1.m4a", "housekitan_1.ogg"],
},
{
from: "kasumi_1.ogg",
to: ["kasumi_1.m4a", "kasumi_1.ogg"],
},
{
from: "sirius1_1.ogg",
to: ["sirius1_1.m4a", "sirius1_1.ogg"],
},
{
from: "sirius2_1.ogg",
to: ["sirius2_1.m4a", "sirius2_1.ogg"],
},
{
from: "tomedonaki1_1.ogg",
to: ["tomedonaki1_1.m4a", "tomedonaki1_1.ogg"],
},
{
from: "tomedonaki2_2.ogg",
to: ["tomedonaki2_2.m4a", "tomedonaki2_2.ogg"],
},
];
async function main() {
await ffmpeg.load();
for (const { from, to: tos } of musics) {
const inputpath = "./media/bgm/" + from;
ffmpeg.FS(
"writeFile",
from,
await fetchFile(inputpath),
);
for (const to of tos) {
const tmpfile = "tmp_" + to;
const outputpath = "./assets/" + to;
await ffmpeg.run("-i", from, "-b:a", "96k", tmpfile);
await writeFile(outputpath, ffmpeg.FS("readFile", tmpfile));
}
}
};
await main()
process.exit(0);