Groundwork for displaying clips

This commit is contained in:
Carl Pearson
2024-11-05 06:06:30 -07:00
parent ad7445b6f6
commit 63d10c3e7a
3 changed files with 33 additions and 3 deletions

View File

@@ -29,6 +29,13 @@ import (
var ytdlpAudioOptions = []string{"-f", "bestvideo[height<=1080]+bestaudio/best[height<=1080]"}
var ytdlpVideoOptions = []string{"-f", "bestaudio"}
type DisplayVideoClip struct {
TempURL
ID uint // VideoClip.ID
Start float64
Stop float64
}
func registerHandler(c echo.Context) error {
return c.Render(http.StatusOK, "register.html", nil)
}
@@ -814,11 +821,16 @@ func videoHandler(c echo.Context) error {
Order("CASE WHEN source = 'original' THEN 1 ELSE 0 END, bps ASC").
Find(&audios)
var videoClips []media.VideoClip
db.Where("original_id = ?", id).
Find(&videoClips)
dataDir := config.GetDataDir()
// create temporary URLs
var videoURLs []VideoTemplate
var audioURLs []AudioTemplate
var clipDisplays []DisplayVideoClip
for _, video := range videos {
tempURL, err := CreateTempURL(filepath.Join(dataDir, video.Filename))
if err != nil {
@@ -861,11 +873,26 @@ func videoHandler(c echo.Context) error {
})
}
for _, clip := range videoClips {
tempURL, err := CreateTempURL(filepath.Join(dataDir, clip.Filename))
if err != nil {
continue
}
clipDisplays = append(clipDisplays, DisplayVideoClip{
TempURL: tempURL,
ID: clip.ID,
Start: float64(1000 * clip.StartMS),
Stop: float64(1000 * clip.StopMS),
})
}
return c.Render(http.StatusOK, "video.html",
map[string]interface{}{
"original": orig,
"videos": videoURLs,
"audios": audioURLs,
"clips": clipDisplays,
"dataDir": dataDir,
"Footer": handlers.MakeFooter(),
})

View File

@@ -95,8 +95,9 @@ func main() {
sqlDB.SetMaxOpenConns(1)
// Migrate the schema
db.AutoMigrate(&originals.Original{}, &playlists.Playlist{}, &media.Video{},
&media.Audio{}, &users.User{}, &TempURL{}, &transcodes.Transcode{})
db.AutoMigrate(&originals.Original{}, &playlists.Playlist{},
&media.Video{}, &media.Audio{}, &media.VideoClip{},
&users.User{}, &TempURL{}, &transcodes.Transcode{})
database.Init(db, log)
defer database.Fini()

View File

@@ -43,8 +43,10 @@ type Video struct {
Status Status
}
type Clip struct {
type VideoClip struct {
gorm.Model
VideoFile
OriginalID uint // Original.ID
StartMS uint
StopMS uint
}