refactor(ffmpeg): refactor process frames
* refactor best frame process * refactor best frame process, remove alpha * move thumb context to export * process_frames() filter * test: update golden files * process_frames() filter * test: update golden files * tweak fps * test: update golden files * cleanup
This commit is contained in:
parent
c86b39430d
commit
4d71837fb8
17 changed files with 127 additions and 122 deletions
23
processor.go
23
processor.go
|
|
@ -112,6 +112,23 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp
|
|||
return
|
||||
}
|
||||
defer av.Close()
|
||||
bands := 3
|
||||
for _, filter := range params.Filters {
|
||||
switch filter.Name {
|
||||
case "format":
|
||||
if s := strings.ToLower(filter.Args); s == "webp" || s == "png" {
|
||||
switch mime.Extension() {
|
||||
case ".webm", ".flv", ".mov", ".avi":
|
||||
bands = 4
|
||||
}
|
||||
break
|
||||
}
|
||||
case "process_frames":
|
||||
if err = av.ProcessFrames(); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
meta := av.Metadata()
|
||||
if params.Meta {
|
||||
out = imagor.NewBlobFromJsonMarshal(Metadata{
|
||||
|
|
@ -129,17 +146,13 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp
|
|||
case 8:
|
||||
filters = append(filters, imagorpath.Filter{Name: "orient", Args: "90"})
|
||||
}
|
||||
buf, err := av.Export()
|
||||
buf, err := av.Export(bands)
|
||||
if err != nil || len(buf) == 0 {
|
||||
if err == nil {
|
||||
err = imagor.ErrUnsupportedFormat
|
||||
}
|
||||
return
|
||||
}
|
||||
bands := 3
|
||||
if meta.HasAlpha {
|
||||
bands = 4
|
||||
}
|
||||
out = imagor.NewBlobFromMemory(buf, meta.Width, meta.Height, bands)
|
||||
|
||||
if len(filters) > 0 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue