summaryrefslogtreecommitdiff
path: root/internal/media/ffmpeg.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/media/ffmpeg.go')
-rw-r--r--internal/media/ffmpeg.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/internal/media/ffmpeg.go b/internal/media/ffmpeg.go
index 72ee1bc33..eb6dd9263 100644
--- a/internal/media/ffmpeg.go
+++ b/internal/media/ffmpeg.go
@@ -305,7 +305,15 @@ func (res *result) GetFileType() (gtsmodel.FileType, string) {
case "mov,mp4,m4a,3gp,3g2,mj2":
switch {
case len(res.video) > 0:
- return gtsmodel.FileTypeVideo, "mp4"
+ if len(res.audio) == 0 &&
+ res.duration <= 30 {
+ // Short, soundless
+ // video file aka gifv.
+ return gtsmodel.FileTypeGifv, "mp4"
+ } else {
+ // Video file (with or without audio).
+ return gtsmodel.FileTypeVideo, "mp4"
+ }
case len(res.audio) > 0 &&
res.audio[0].codec == "aac":
// m4a only supports [aac] audio.