add error logging

This commit is contained in:
Abhinav 2022-11-14 19:35:40 +05:30
parent 6c384edba8
commit f424a23ad4

View file

@ -5,11 +5,13 @@ import {
} from 'constants/ffmpeg';
import { ElectronFile } from 'types/upload';
import { parseFFmpegExtractedMetadata } from 'utils/ffmpeg';
import { logError } from 'utils/sentry';
import ffmpegFactory from './ffmpegFactory';
export async function generateVideoThumbnail(
file: File | ElectronFile
): Promise<File | ElectronFile> {
try {
let seekTime = 1.0;
const ffmpegClient = await ffmpegFactory.getFFmpegClient();
while (seekTime > 0) {
@ -35,9 +37,14 @@ export async function generateVideoThumbnail(
}
}
throw Error('Thumbnail generation failed');
} catch (e) {
logError(e, 'ffmpeg generateVideoThumbnail failed');
throw e;
}
}
export async function extractVideoMetadata(file: File | ElectronFile) {
try {
const ffmpegClient = await ffmpegFactory.getFFmpegClient();
// https://stackoverflow.com/questions/9464617/retrieving-and-saving-media-metadata-using-ffmpeg
// -c [short for codex] copy[(stream_specifier)[ffmpeg.org/ffmpeg.html#Stream-specifiers]] => copies all the stream without re-encoding
@ -62,9 +69,14 @@ export async function extractVideoMetadata(file: File | ElectronFile) {
return parseFFmpegExtractedMetadata(
new Uint8Array(await metadata.arrayBuffer())
);
} catch (e) {
logError(e, 'ffmpeg extractVideoMetadata failed');
throw e;
}
}
export async function convertToMP4(file: File | ElectronFile) {
try {
const ffmpegClient = await ffmpegFactory.getFFmpegClient();
return await ffmpegClient.run(
[
@ -78,4 +90,8 @@ export async function convertToMP4(file: File | ElectronFile) {
file,
'output.mp4'
);
} catch (e) {
logError(e, 'ffmpeg convertToMP4 failed');
throw e;
}
}