passes tests by converting a series to a webm
parent
5b0b1aaf7f
commit
38ea2b8128
|
|
@ -66,16 +66,23 @@ func Run(ctx context.Context, args []string) error {
|
||||||
if seriesHasMovement, err := seriesHasMovement(ctx, seriesFiles, movementInterval); err != nil {
|
if seriesHasMovement, err := seriesHasMovement(ctx, seriesFiles, movementInterval); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if seriesHasMovement {
|
} else if seriesHasMovement {
|
||||||
for _, seriesFile := range seriesFiles {
|
outd := strings.ReplaceAll(cam, "record", "movement")
|
||||||
if err := mv(strings.ReplaceAll(seriesFile, "record", "movement"), seriesFile); err != nil {
|
os.MkdirAll(outd, os.ModePerm)
|
||||||
return fmt.Errorf("failed to mv series %s: %w", series, err)
|
cmd := exec.CommandContext(ctx, "ffmpeg",
|
||||||
}
|
"-y",
|
||||||
|
"-framerate", "1",
|
||||||
|
"-pattern_type", "glob",
|
||||||
|
"-i", path.Join(cam, series)+".*.jpg",
|
||||||
|
"-r", "3",
|
||||||
|
path.Join(outd, series+".webm"),
|
||||||
|
)
|
||||||
|
if out, err := cmd.CombinedOutput(); err != nil {
|
||||||
|
return fmt.Errorf("failed to webm series %s: (%w) %s", series, err, out)
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
for _, seriesFile := range seriesFiles {
|
for _, seriesFile := range seriesFiles {
|
||||||
if err := os.Remove(seriesFile); err != nil {
|
if err := os.Remove(seriesFile); err != nil {
|
||||||
return fmt.Errorf("failed to rm series %s[%s]: %w", series, seriesFile, err)
|
return fmt.Errorf("failed to rm series %s[%s]: %w", series, seriesFile, err)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
|
@ -48,35 +47,23 @@ func TestRun(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := Run(context.Background(), []string{path.Dir(d), "1s"}); err != nil {
|
if err := Run(context.Background(), []string{path.Dir(d), "1s"}); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
time.Sleep(time.Minute)
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if results, err := lsf(path.Join(path.Dir(d), "movement")); err != nil {
|
if results, err := lsf(path.Join(path.Dir(d), "movement")); err != nil {
|
||||||
t.Fatal("failed to lsf for results:", err)
|
t.Fatal("failed to lsf for results:", err)
|
||||||
} else if len(results) != 4 {
|
} else if len(results) != 1 {
|
||||||
t.Fatal(results)
|
t.Fatal(results)
|
||||||
} else if path.Base(results[0]) != "series.0.jpg" {
|
} else if path.Base(results[0]) != "series.webm" {
|
||||||
t.Fatal(results)
|
t.Fatal(results)
|
||||||
} else if b0, err := os.ReadFile(results[0]); err != nil || !bytes.Equal(a, b0) {
|
|
||||||
t.Fatal("series.0.jpg changed", err)
|
|
||||||
} else if path.Base(results[1]) != "series.1.jpg" {
|
|
||||||
t.Fatal(results)
|
|
||||||
} else if b1, err := os.ReadFile(results[1]); err != nil || !bytes.Equal(a, b1) {
|
|
||||||
t.Fatal("series.1.jpg changed", err)
|
|
||||||
} else if path.Base(results[2]) != "series.2.jpg" {
|
|
||||||
t.Fatal(results)
|
|
||||||
} else if b2, err := os.ReadFile(results[2]); err != nil || !bytes.Equal(b, b2) {
|
|
||||||
t.Fatal("series.2.jpg changed", err)
|
|
||||||
} else if path.Base(results[3]) != "series.3.jpg" {
|
|
||||||
t.Fatal(results)
|
|
||||||
} else if b3, err := os.ReadFile(results[3]); err != nil || !bytes.Equal(b, b3) {
|
|
||||||
t.Fatal("series.3.jpg changed", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if records, err := lsf(d); err != nil {
|
if records, err := lsf(d); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if len(records) != 1 {
|
} else if len(records) != 1 {
|
||||||
t.Fatal(err)
|
t.Fatal(records)
|
||||||
} else if path.Base(records[0]) != "zlast.0.jpg" {
|
} else if path.Base(records[0]) != "zlast.0.jpg" {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue