@zwa73/utils 1.0.186 → 1.0.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/UtilFfmpegTools.d.ts +5 -0
- package/dist/UtilFfmpegTools.js +18 -10
- package/package.json +1 -1
- package/src/UtilFfmpegTools.ts +23 -9
|
@@ -23,6 +23,11 @@ declare class SFfmpegTool {
|
|
|
23
23
|
* @param quality - 质量
|
|
24
24
|
*/
|
|
25
25
|
static flac2ogg(inputFlacFile: string, outputOggPath: string, quality?: number): Promise<boolean>;
|
|
26
|
+
/**flac转wav
|
|
27
|
+
* @param inputFlacFile - 输入flac文件路径
|
|
28
|
+
* @param outputWavPath - 输出wav文件路径
|
|
29
|
+
*/
|
|
30
|
+
static flac2wav(inputFlacFile: string, outputWavPath: string): Promise<boolean>;
|
|
26
31
|
/**wav转ogg
|
|
27
32
|
* @param inputWavPath - 输入wav文件路径
|
|
28
33
|
* @param outputOggPath - 输出ogg文件路径
|
package/dist/UtilFfmpegTools.js
CHANGED
|
@@ -70,11 +70,27 @@ class SFfmpegTool {
|
|
|
70
70
|
* @param quality - 质量
|
|
71
71
|
*/
|
|
72
72
|
static async flac2ogg(inputFlacFile, outputOggPath, quality = 10) {
|
|
73
|
-
|
|
73
|
+
const wavPath = pathe_1.default.join(pathe_1.default.dirname(inputFlacFile), `tmp_${pathe_1.default.basename(inputFlacFile, ".flac")}.wav`);
|
|
74
|
+
await SFfmpegTool.flac2wav(inputFlacFile, wavPath);
|
|
75
|
+
await SFfmpegTool.wav2ogg(wavPath, outputOggPath, quality);
|
|
76
|
+
await new Promise((resolve, reject) => {
|
|
77
|
+
fs.unlink(wavPath, function (err) {
|
|
78
|
+
if (err)
|
|
79
|
+
UtilLogger_1.SLogger.error("SFfmpegTool.flac2ogg unlink 错误", err);
|
|
80
|
+
resolve(null);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
/**flac转wav
|
|
86
|
+
* @param inputFlacFile - 输入flac文件路径
|
|
87
|
+
* @param outputWavPath - 输出wav文件路径
|
|
88
|
+
*/
|
|
89
|
+
static async flac2wav(inputFlacFile, outputWavPath) {
|
|
74
90
|
await new Promise((resolve, reject) => {
|
|
75
91
|
const ins = (0, fluent_ffmpeg_1.default)(inputFlacFile)
|
|
76
92
|
.audioCodec("pcm_s16le")
|
|
77
|
-
.save(
|
|
93
|
+
.save(outputWavPath)
|
|
78
94
|
.on("end", () => {
|
|
79
95
|
resolve(true);
|
|
80
96
|
ins.kill('SIGTERM');
|
|
@@ -84,14 +100,6 @@ class SFfmpegTool {
|
|
|
84
100
|
ins.kill('SIGTERM');
|
|
85
101
|
});
|
|
86
102
|
});
|
|
87
|
-
await SFfmpegTool.wav2ogg(wavPath, outputOggPath, quality);
|
|
88
|
-
await new Promise((resolve, reject) => {
|
|
89
|
-
fs.unlink(wavPath, function (err) {
|
|
90
|
-
if (err)
|
|
91
|
-
UtilLogger_1.SLogger.error("SFfmpegTool.flac2ogg unlink 错误", err);
|
|
92
|
-
resolve(null);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
103
|
return true;
|
|
96
104
|
}
|
|
97
105
|
/**wav转ogg
|
package/package.json
CHANGED
package/src/UtilFfmpegTools.ts
CHANGED
|
@@ -53,14 +53,33 @@ class SFfmpegTool {
|
|
|
53
53
|
outputOggPath: string,
|
|
54
54
|
quality: number = 10
|
|
55
55
|
): Promise<boolean> {
|
|
56
|
-
|
|
56
|
+
const wavPath = path.join(
|
|
57
57
|
path.dirname(inputFlacFile),
|
|
58
58
|
`tmp_${path.basename(inputFlacFile, ".flac")}.wav`
|
|
59
59
|
);
|
|
60
|
+
await SFfmpegTool.flac2wav(inputFlacFile, wavPath);
|
|
61
|
+
await SFfmpegTool.wav2ogg(wavPath, outputOggPath, quality);
|
|
62
|
+
await new Promise((resolve, reject) => {
|
|
63
|
+
fs.unlink(wavPath, function (err) {
|
|
64
|
+
if (err) SLogger.error("SFfmpegTool.flac2ogg unlink 错误",err);
|
|
65
|
+
resolve(null);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**flac转wav
|
|
72
|
+
* @param inputFlacFile - 输入flac文件路径
|
|
73
|
+
* @param outputWavPath - 输出wav文件路径
|
|
74
|
+
*/
|
|
75
|
+
static async flac2wav(
|
|
76
|
+
inputFlacFile: string,
|
|
77
|
+
outputWavPath: string
|
|
78
|
+
): Promise<boolean> {
|
|
60
79
|
await new Promise((resolve, reject) => {
|
|
61
80
|
const ins = fluentFfmpeg(inputFlacFile)
|
|
62
81
|
.audioCodec("pcm_s16le")
|
|
63
|
-
.save(
|
|
82
|
+
.save(outputWavPath)
|
|
64
83
|
.on("end", () => {
|
|
65
84
|
resolve(true);
|
|
66
85
|
ins.kill('SIGTERM');
|
|
@@ -70,15 +89,10 @@ class SFfmpegTool {
|
|
|
70
89
|
ins.kill('SIGTERM');
|
|
71
90
|
});
|
|
72
91
|
});
|
|
73
|
-
await SFfmpegTool.wav2ogg(wavPath, outputOggPath, quality);
|
|
74
|
-
await new Promise((resolve, reject) => {
|
|
75
|
-
fs.unlink(wavPath, function (err) {
|
|
76
|
-
if (err) SLogger.error("SFfmpegTool.flac2ogg unlink 错误",err);
|
|
77
|
-
resolve(null);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
92
|
return true;
|
|
81
93
|
}
|
|
94
|
+
|
|
95
|
+
|
|
82
96
|
/**wav转ogg
|
|
83
97
|
* @param inputWavPath - 输入wav文件路径
|
|
84
98
|
* @param outputOggPath - 输出ogg文件路径
|