Merge pull request #710 from ente-io/fix-ffmpeg-thumbnail-generation-issue
fix thumbnail generation failure
This commit is contained in:
commit
b4f4dc583b
|
@ -1,6 +1,9 @@
|
||||||
import { createFFmpeg, FFmpeg } from 'ffmpeg-wasm';
|
import { createFFmpeg, FFmpeg } from 'ffmpeg-wasm';
|
||||||
import { getUint8ArrayView } from 'services/readerService';
|
import { getUint8ArrayView } from 'services/readerService';
|
||||||
import { parseFFmpegExtractedMetadata } from 'utils/ffmpeg';
|
import {
|
||||||
|
parseFFmpegExtractedMetadata,
|
||||||
|
splitFilenameAndExtension,
|
||||||
|
} from 'utils/ffmpeg';
|
||||||
|
|
||||||
class FFmpegClient {
|
class FFmpegClient {
|
||||||
private ffmpeg: FFmpeg;
|
private ffmpeg: FFmpeg;
|
||||||
|
@ -22,7 +25,9 @@ class FFmpegClient {
|
||||||
|
|
||||||
async generateThumbnail(file: File) {
|
async generateThumbnail(file: File) {
|
||||||
await this.ready;
|
await this.ready;
|
||||||
const inputFileName = `${Date.now().toString()}-${file.name}`;
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
const [_, ext] = splitFilenameAndExtension(file.name);
|
||||||
|
const inputFileName = `${Date.now().toString()}-input.${ext}`;
|
||||||
const thumbFileName = `${Date.now().toString()}-thumb.jpeg`;
|
const thumbFileName = `${Date.now().toString()}-thumb.jpeg`;
|
||||||
this.ffmpeg.FS(
|
this.ffmpeg.FS(
|
||||||
'writeFile',
|
'writeFile',
|
||||||
|
@ -57,7 +62,9 @@ class FFmpegClient {
|
||||||
|
|
||||||
async extractVideoMetadata(file: File) {
|
async extractVideoMetadata(file: File) {
|
||||||
await this.ready;
|
await this.ready;
|
||||||
const inputFileName = `${Date.now().toString()}-${file.name}`;
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
const [_, ext] = splitFilenameAndExtension(file.name);
|
||||||
|
const inputFileName = `${Date.now().toString()}-input.${ext}`;
|
||||||
const outFileName = `${Date.now().toString()}-metadata.txt`;
|
const outFileName = `${Date.now().toString()}-metadata.txt`;
|
||||||
this.ffmpeg.FS(
|
this.ffmpeg.FS(
|
||||||
'writeFile',
|
'writeFile',
|
||||||
|
|
|
@ -61,3 +61,13 @@ function parseCreationTime(creationTime: string) {
|
||||||
}
|
}
|
||||||
return dateTime;
|
return dateTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function splitFilenameAndExtension(filename: string): [string, string] {
|
||||||
|
const lastDotPosition = filename.lastIndexOf('.');
|
||||||
|
if (lastDotPosition === -1) return [filename, null];
|
||||||
|
else
|
||||||
|
return [
|
||||||
|
filename.slice(0, lastDotPosition),
|
||||||
|
filename.slice(lastDotPosition + 1),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue