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'; } from 'constants/ffmpeg';
import { ElectronFile } from 'types/upload'; import { ElectronFile } from 'types/upload';
import { parseFFmpegExtractedMetadata } from 'utils/ffmpeg'; import { parseFFmpegExtractedMetadata } from 'utils/ffmpeg';
import { logError } from 'utils/sentry';
import ffmpegFactory from './ffmpegFactory'; import ffmpegFactory from './ffmpegFactory';
export async function generateVideoThumbnail( export async function generateVideoThumbnail(
file: File | ElectronFile file: File | ElectronFile
): Promise<File | ElectronFile> { ): Promise<File | ElectronFile> {
try {
let seekTime = 1.0; let seekTime = 1.0;
const ffmpegClient = await ffmpegFactory.getFFmpegClient(); const ffmpegClient = await ffmpegFactory.getFFmpegClient();
while (seekTime > 0) { while (seekTime > 0) {
@ -35,9 +37,14 @@ export async function generateVideoThumbnail(
} }
} }
throw Error('Thumbnail generation failed'); throw Error('Thumbnail generation failed');
} catch (e) {
logError(e, 'ffmpeg generateVideoThumbnail failed');
throw e;
}
} }
export async function extractVideoMetadata(file: File | ElectronFile) { export async function extractVideoMetadata(file: File | ElectronFile) {
try {
const ffmpegClient = await ffmpegFactory.getFFmpegClient(); const ffmpegClient = await ffmpegFactory.getFFmpegClient();
// https://stackoverflow.com/questions/9464617/retrieving-and-saving-media-metadata-using-ffmpeg // 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 // -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( return parseFFmpegExtractedMetadata(
new Uint8Array(await metadata.arrayBuffer()) new Uint8Array(await metadata.arrayBuffer())
); );
} catch (e) {
logError(e, 'ffmpeg extractVideoMetadata failed');
throw e;
}
} }
export async function convertToMP4(file: File | ElectronFile) { export async function convertToMP4(file: File | ElectronFile) {
try {
const ffmpegClient = await ffmpegFactory.getFFmpegClient(); const ffmpegClient = await ffmpegFactory.getFFmpegClient();
return await ffmpegClient.run( return await ffmpegClient.run(
[ [
@ -78,4 +90,8 @@ export async function convertToMP4(file: File | ElectronFile) {
file, file,
'output.mp4' 'output.mp4'
); );
} catch (e) {
logError(e, 'ffmpeg convertToMP4 failed');
throw e;
}
} }