compute fps
parent
03cd2dedcc
commit
3dd752cb34
|
|
@ -67,17 +67,29 @@ func Run(ctx context.Context, args []string) error {
|
|||
if seriesHasMovement, err := seriesHasMovement(ctx, seriesFiles, movementInterval); err != nil {
|
||||
return err
|
||||
} else if seriesHasMovement {
|
||||
log.Println("found movement in", series)
|
||||
firstFileInfo, err := os.Stat(seriesFiles[0])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
lastFileInfo, err := os.Stat(seriesFiles[len(seriesFiles)-1])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
durationSeconds := lastFileInfo.ModTime().Sub(firstFileInfo.ModTime()).Seconds()
|
||||
frames := len(seriesFiles)
|
||||
fps := int(float64(frames) / durationSeconds)
|
||||
|
||||
log.Println("found movement in", series, "over", durationSeconds, "seconds at", fps, "fps")
|
||||
|
||||
outd := strings.ReplaceAll(cam, "record", "movement")
|
||||
os.MkdirAll(outd, os.ModePerm)
|
||||
cmd := exec.CommandContext(ctx,
|
||||
"ffmpeg",
|
||||
"-y",
|
||||
"-framerate", "3",
|
||||
"-framerate", strconv.Itoa(fps),
|
||||
"-pattern_type", "glob",
|
||||
"-i", path.Join(cam, series)+".*.jpg",
|
||||
//"-filter_complex", "fps=3,scale=-1:-1:flags=lanczos[x];[x]split[x1][x2];[x1]palettegen[p];[x2][p]paletteuse",
|
||||
"-r", "3",
|
||||
"-r", strconv.Itoa(fps),
|
||||
path.Join(outd, series+".mp4"),
|
||||
)
|
||||
if out, err := cmd.CombinedOutput(); err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue