init
This commit is contained in:
commit
fa47df6d89
22 changed files with 1724 additions and 0 deletions
62
ffmpeg/slices.go
Normal file
62
ffmpeg/slices.go
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
package ffmpeg
|
||||
|
||||
import (
|
||||
"encoding/csv"
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"stream-poc2/model"
|
||||
)
|
||||
|
||||
func ReadSegmentsCSV(fname string) ([]model.Slice, error) {
|
||||
log.Println("read csv:", fname)
|
||||
f, err := os.OpenFile(fname, os.O_RDONLY, 0)
|
||||
if err != nil {
|
||||
log.Println("failed to open CSV:", err)
|
||||
return nil, err
|
||||
}
|
||||
defer func(f *os.File) {
|
||||
err := f.Close()
|
||||
if err != nil {
|
||||
log.Println("Failed to close CSV:", err)
|
||||
}
|
||||
}(f)
|
||||
|
||||
r := csv.NewReader(f)
|
||||
var slices []model.Slice
|
||||
|
||||
for {
|
||||
var cols []string
|
||||
cols, err = r.Read()
|
||||
if err != nil {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
}
|
||||
log.Println("failed reading csv row", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var startTime float64
|
||||
var endTime float64
|
||||
startTime, err = strconv.ParseFloat(cols[1], 64)
|
||||
if err != nil {
|
||||
log.Println("Failed to parse float", err)
|
||||
return nil, err
|
||||
}
|
||||
endTime, err = strconv.ParseFloat(cols[2], 64)
|
||||
if err != nil {
|
||||
log.Println("Failed to parse float", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
slices = append(slices, model.Slice{
|
||||
Name: cols[0],
|
||||
StartTime: startTime,
|
||||
EndTime: endTime,
|
||||
})
|
||||
}
|
||||
|
||||
return slices, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue