summaryrefslogtreecommitdiff
path: root/media/video.go
diff options
context:
space:
mode:
authorJames Mills <prologic@shortcircuit.net.au>2020-03-21 10:46:03 +1000
committerJames Mills <prologic@shortcircuit.net.au>2020-03-21 10:46:03 +1000
commit84cba437249e3c109435c9b93a4026c6098cb491 (patch)
tree0fc8228a4eb3c9fa67db25e21ce4e9508141be0a /media/video.go
parent4dae45a68ff1ff32a251a5835b2a2723ae125d1c (diff)
Add support for on-demand thumbnail generation via github.com/mutschler/mt
Diffstat (limited to 'media/video.go')
-rw-r--r--media/video.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/media/video.go b/media/video.go
index 9340e86..9c10b1e 100644
--- a/media/video.go
+++ b/media/video.go
@@ -1,8 +1,11 @@
package media
import (
+ "fmt"
+ "io/ioutil"
"os"
"path"
+ "path/filepath"
"strings"
"time"
@@ -72,6 +75,17 @@ func ParseVideo(p *Path, name string) (*Video, error) {
if pic != nil {
v.Thumb = pic.Data
v.ThumbType = pic.MIMEType
+ } else if cmdExists("mt") {
+ if err := runCmd(3, "mt", "-s", "-n", "1", pth); err != nil {
+ return nil, err
+ }
+ data, err := ioutil.ReadFile(fmt.Sprintf("%s.jpg", strings.TrimSuffix(pth, filepath.Ext(pth))))
+ if err != nil {
+ return nil, err
+ }
+ v.Thumb = data
+ v.ThumbType = "image/jpeg"
}
+
return v, nil
}