diff options
Diffstat (limited to 'internal/media/ffmpeg.go')
-rw-r--r-- | internal/media/ffmpeg.go | 10 |
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. |