From e11924ea8aca82df47b1d13df922f8a09219d94d Mon Sep 17 00:00:00 2001 From: Rogee Date: Thu, 5 Dec 2024 17:05:39 +0800 Subject: [PATCH] feat: add poster --- backend/fixtures/poster.jpg | Bin 0 -> 34024 bytes .../modules/tasks/discover/discover_medias.go | 28 ++++++++++++++++++ mp.code-workspace | 6 ++-- 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 backend/fixtures/poster.jpg diff --git a/backend/fixtures/poster.jpg b/backend/fixtures/poster.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04726a30973ae3d2fa5277e9594947bdc5b8bcf3 GIT binary patch literal 34024 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 W77hQ^1jEq1%fDm&KVA)gmj6HV8h;A_ literal 0 HcmV?d00001 diff --git a/backend/modules/tasks/discover/discover_medias.go b/backend/modules/tasks/discover/discover_medias.go index 6599502..1318b0f 100644 --- a/backend/modules/tasks/discover/discover_medias.go +++ b/backend/modules/tasks/discover/discover_medias.go @@ -1,6 +1,7 @@ package discover import ( + "fmt" "os" "os/exec" "path/filepath" @@ -66,6 +67,12 @@ func (d *DiscoverMedias) RunE(from, to string) error { if err := d.ffmpegVideoToM3U8(video, to); err != nil { return errors.Wrapf(err, "ffmpeg video to m3u8: %s", video) } + + d.log.Infof("snapshot", video) + posterPath := filepath.Join(to, "poster.jpg") + if err := d.ffmpegVideoToPoster(video, posterPath, 5); err != nil { + return errors.Wrapf(err, "ffmpeg snapshot : %s", video) + } } audios := d.globAudio(dirPath) @@ -213,3 +220,24 @@ func (d *DiscoverMedias) runCleanup(to string) { } } } + +// getSnapshot get the snapshot of target seconds of a video +func (d *DiscoverMedias) ffmpegVideoToPoster(video string, output string, seconds int) error { + // ffmpeg -i input_video.mp4 -ss N -vframes 1 -vf "scale=width:height" output_image.jpg + args := []string{ + "-i", video, + "-ss", fmt.Sprintf("00:%02d:00", seconds), + "-vframes", "1", + "-vf", "scale=640:360", + output, + } + + d.log.Infof("cmd: ffmpeg %s", strings.Join(args, " ")) + logs, err := exec.Command("ffmpeg", args...).CombinedOutput() + if err != nil { + return errors.Wrapf(err, "get snapshot: %s", video) + } + + d.log.Infof("get snapshot: %s", logs) + return nil +} diff --git a/mp.code-workspace b/mp.code-workspace index 77b8fc7..74b299b 100644 --- a/mp.code-workspace +++ b/mp.code-workspace @@ -5,15 +5,13 @@ }, { "path": "backend" - }, - { - "path": "arco" } ], "settings": { "vue3snippets.enable-compile-vue-file-on-did-save-code": true, "cSpell.words": [ "qvyun" - ] + ], + "git.ignoreLimitWarning": true } }