add error logging
This commit is contained in:
parent
6c384edba8
commit
f424a23ad4
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue