diff --git a/src/view/com/composer/videos/VideoTranscodeBackdrop.tsx b/src/view/com/composer/videos/VideoTranscodeBackdrop.tsx new file mode 100644 index 0000000000..0f4387fbf4 --- /dev/null +++ b/src/view/com/composer/videos/VideoTranscodeBackdrop.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import Animated, {FadeIn} from 'react-native-reanimated' +import * as FileSystem from 'expo-file-system' +import {Image} from 'expo-image' +import {useQuery} from '@tanstack/react-query' +import {FFmpegKit} from 'ffmpeg-kit-react-native' + +import {atoms as a} from '#/alf' + +export function VideoTranscodeBackdrop({uri}: {uri: string}) { + const {data: thumbnail} = useQuery({ + queryKey: ['thumbnail', uri], + queryFn: async () => { + const thumbnailJpg = `${FileSystem.cacheDirectory}/thumbnail.jpg` + if ((await FileSystem.getInfoAsync(thumbnailJpg)).exists) { + await FileSystem.deleteAsync(thumbnailJpg) + } + await FFmpegKit.execute( + `-ss 00:00:01.000 -i ${uri} -vf 'scale=320:320:force_original_aspect_ratio=decrease' -frames:v 1 ${thumbnailJpg}`, + ) + return thumbnailJpg + }, + }) + + return ( + + {thumbnail && ( + + )} + + ) +} diff --git a/src/view/com/composer/videos/VideoTranscodeBackdrop.web.tsx b/src/view/com/composer/videos/VideoTranscodeBackdrop.web.tsx new file mode 100644 index 0000000000..a22c48a907 --- /dev/null +++ b/src/view/com/composer/videos/VideoTranscodeBackdrop.web.tsx @@ -0,0 +1,5 @@ +import React from 'react' + +export function VideoTranscodeBackdrop({uri}: {uri: string}) { + return