66 "log"
77
88 "github.com/Prateet-Github/worker-go/internal/config"
9+ "github.com/Prateet-Github/worker-go/internal/ffmpeg"
910 "github.com/Prateet-Github/worker-go/internal/queue"
1011 "github.com/Prateet-Github/worker-go/internal/s3"
1112
@@ -18,15 +19,18 @@ import (
1819type VideoHandler struct {
1920 s3Client * awss3.Client
2021 cfg * config.Config
22+ ffmpeg * ffmpeg.Service
2123}
2224
2325func NewVideoHandler (
2426 s3Client * awss3.Client ,
2527 cfg * config.Config ,
28+ ffmpeg * ffmpeg.Service ,
2629) * VideoHandler {
2730 return & VideoHandler {
2831 s3Client : s3Client ,
2932 cfg : cfg ,
33+ ffmpeg : ffmpeg ,
3034 }
3135}
3236
@@ -41,23 +45,57 @@ func (h *VideoHandler) ProcessVideo(
4145 return err
4246 }
4347
44- localPath := filepath .Join (
48+ // localPath := filepath.Join(
49+ // "temp",
50+ // payload.VideoID+".mp4",
51+ // )
52+
53+ workspace := filepath .Join (
4554 "temp" ,
46- payload .VideoID + ".mp4" ,
55+ payload .VideoID ,
56+ )
57+
58+ inputPath := filepath .Join (
59+ workspace ,
60+ "input.mp4" ,
4761 )
4862
63+ outputDir := filepath .Join (
64+ workspace ,
65+ "hls" ,
66+ )
67+
68+ log .Println ("Starting download..." )
69+
4970 err := s3 .DownloadFile (
5071 h .s3Client ,
5172 h .cfg .S3RawBucket ,
5273 payload .S3Key ,
53- localPath ,
74+ inputPath ,
5475 )
5576
5677 if err != nil {
5778 return err
5879 }
5980
60- log .Println ("Download completed:" , localPath )
81+ log .Println ("Download complete" )
82+
83+ log .Println ("Calling FFmpeg..." )
84+
85+ if err := h .ffmpeg .GenerateHLS (
86+ ctx ,
87+ inputPath ,
88+ outputDir ,
89+ ); err != nil {
90+ log .Printf ("GenerateHLS failed: %v\n " , err )
91+ return err
92+ }
93+
94+ log .Println ("FFmpeg finished" )
95+
96+ log .Println ("HLS generated successfully" )
97+
98+ log .Println ("Download completed:" , inputPath )
6199
62100 log .Println ("Processing video..." )
63101 log .Println ("Video ID:" , payload .VideoID )
0 commit comments