添加ffmpeg日志
This commit is contained in:
33
server.js
33
server.js
@@ -586,6 +586,39 @@ app.get('/api/hls/segment.ts', async (req, res) => {
|
||||
console.error('HLS FFmpeg Error:', err.message);
|
||||
});
|
||||
|
||||
ffmpegCommand.on('progress', (progress) => {
|
||||
const timemarkSeconds = parseTimemarkToSeconds(progress.timemark || '0');
|
||||
const absoluteSeconds = startTime + (isFinite(timemarkSeconds) ? timemarkSeconds : 0);
|
||||
const totalDuration = parseFloat(sourceMetadata?.format?.duration || 0);
|
||||
|
||||
let percent = 0;
|
||||
if (totalDuration > 0) {
|
||||
percent = Math.min(Math.max(Math.round((absoluteSeconds / totalDuration) * 100), 0), 100);
|
||||
}
|
||||
|
||||
const progressState = {
|
||||
status: 'transcoding',
|
||||
percent,
|
||||
frame: progress.frames || null,
|
||||
fps: progress.currentFps || null,
|
||||
bitrate: progress.currentKbps || null,
|
||||
timemark: progress.timemark || null,
|
||||
absoluteSeconds,
|
||||
duration: totalDuration || null,
|
||||
startSeconds: startTime,
|
||||
details: `处理进度 ${percent}%`,
|
||||
mp4Url: null
|
||||
};
|
||||
progressMap[progressKey] = progressState;
|
||||
broadcastWs(progressKey, { type: 'progress', key, progress: progressState });
|
||||
|
||||
console.log(`[FFmpeg] ${progressKey} | ${progress.timemark} | ${progress.currentFps}fps | ${progress.currentKbps}kbps | ${percent}%`);
|
||||
});
|
||||
|
||||
ffmpegCommand.on('end', () => {
|
||||
console.log(`[FFmpeg] ${progressKey} HLS transcode completed.`);
|
||||
});
|
||||
|
||||
ffmpegCommand.run();
|
||||
currentProcess = { command: ffmpegCommand, currentSeg: seg };
|
||||
hlsProcesses.set(progressKey, currentProcess);
|
||||
|
||||
Reference in New Issue
Block a user