diff --git a/README.md b/README.md index 8dc96ae..56e4fd5 100644 --- a/README.md +++ b/README.md @@ -49,18 +49,13 @@ http://localhost:8000/unsafe/300x0/7x7/filters:max_frames(70):fill(yellow)/http: ### Metadata -imagorvideo provides metadata endpoint that extracts video metadata, dimension and duration data. By default, it only process the header without extracting the frame data for better processing speed. +imagorvideo provides metadata endpoint that extracts video metadata, including dimension, duration and FPS data. The endpoint only processes the header without extracting the frame data. To use the metadata endpoint, add `/meta` right after the URL signature hash before the image operations: ``` http://localhost:8000/unsafe/meta/https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_30MB.mp4 ``` -Appending the `max_frames()` or `frame(n)` filter however, would activate frame processing. This results more processing time but would also allows retrieving frame related info such as frames per second `fps`: - -``` -http://localhost:8000/unsafe/meta/filters:max_frames()/https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_30MB.mp4 -``` ```jsonc { @@ -72,13 +67,12 @@ http://localhost:8000/unsafe/meta/filters:max_frames()/https://test-videos.co.uk "height": 1080, "title": "Big Buck Bunny, Sunflower version", "artist": "Blender Foundation 2008, Janus Bager Kristensen 2013", - "fps": 30, // available only if frame processing activated + "fps": 30, "has_video": true, "has_audio": false } ``` - ### Configuration Configuration options specific to imagorvideo. Please see [imagor configuration](https://github.com/cshum/imagor#configuration) for all existing options available. diff --git a/ffmpeg/ffmpeg.go b/ffmpeg/ffmpeg.go index b3cec57..8aa0635 100644 --- a/ffmpeg/ffmpeg.go +++ b/ffmpeg/ffmpeg.go @@ -133,8 +133,8 @@ func (av *AVContext) Close() { func (av *AVContext) Metadata() *Metadata { var fps float64 - if av.availableDuration > 0 { - fps = float64(av.availableIndex) * float64(time.Second) / float64(av.availableDuration) + if av.stream != nil { + fps = float64(av.stream.r_frame_rate.num) / float64(av.stream.r_frame_rate.den) } return &Metadata{ Orientation: av.orientation, @@ -143,7 +143,7 @@ func (av *AVContext) Metadata() *Metadata { Height: av.height, Title: av.title, Artist: av.artist, - FPS: math.Round(fps*10) / 10, + FPS: fps, HasVideo: av.hasVideo, HasAudio: av.hasAudio, } diff --git a/processor.go b/processor.go index a52831c..773ade2 100644 --- a/processor.go +++ b/processor.go @@ -114,6 +114,15 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp return } defer av.Close() + meta := av.Metadata() + if params.Meta { + out = imagor.NewBlobFromJsonMarshal(Metadata{ + Format: strings.TrimPrefix(mime.Extension(), "."), + ContentType: mime.String(), + Metadata: meta, + }) + return + } bands := 3 for _, filter := range params.Filters { switch filter.Name { @@ -148,15 +157,7 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp } } } - meta := av.Metadata() - if params.Meta { - out = imagor.NewBlobFromJsonMarshal(Metadata{ - Format: strings.TrimPrefix(mime.Extension(), "."), - ContentType: mime.String(), - Metadata: meta, - }) - return - } + switch meta.Orientation { case 3: filters = append(filters, imagorpath.Filter{Name: "orient", Args: "180"}) diff --git a/testdata/golden/meta/alpha-webm.webm-9999.meta.json b/testdata/golden/meta/alpha-webm.webm-9999.meta.json index 0d1dc4f..e45c027 100644 --- a/testdata/golden/meta/alpha-webm.webm-9999.meta.json +++ b/testdata/golden/meta/alpha-webm.webm-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":12040,"width":720,"height":576,"fps":9.8,"has_video":true,"has_audio":false} \ No newline at end of file +{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"has_video":true,"has_audio":false} \ No newline at end of file diff --git a/testdata/golden/meta/alpha-webm.webm.meta.json b/testdata/golden/meta/alpha-webm.webm.meta.json index 357c63c..e45c027 100644 --- a/testdata/golden/meta/alpha-webm.webm.meta.json +++ b/testdata/golden/meta/alpha-webm.webm.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":12040,"width":720,"height":576,"has_video":true,"has_audio":false} \ No newline at end of file +{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"has_video":true,"has_audio":false} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json index cb2195e..1444d9e 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json index 85f93c9..1444d9e 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30.1,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json index f194f33..1444d9e 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":1.2,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json index b2449ea..1444d9e 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":16,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv.meta.json b/testdata/golden/meta/everybody-betray-me.mkv.meta.json index 07cc731..1444d9e 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-10.meta.json b/testdata/golden/meta/macabre.mp4-10.meta.json index 419bf8d..67cbce9 100644 --- a/testdata/golden/meta/macabre.mp4-10.meta.json +++ b/testdata/golden/meta/macabre.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-5.meta.json b/testdata/golden/meta/macabre.mp4-5.meta.json index 419bf8d..67cbce9 100644 --- a/testdata/golden/meta/macabre.mp4-5.meta.json +++ b/testdata/golden/meta/macabre.mp4-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-9999.meta.json b/testdata/golden/meta/macabre.mp4-9999.meta.json index 419bf8d..67cbce9 100644 --- a/testdata/golden/meta/macabre.mp4-9999.meta.json +++ b/testdata/golden/meta/macabre.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-99999.meta.json b/testdata/golden/meta/macabre.mp4-99999.meta.json index 419bf8d..67cbce9 100644 --- a/testdata/golden/meta/macabre.mp4-99999.meta.json +++ b/testdata/golden/meta/macabre.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4.meta.json b/testdata/golden/meta/macabre.mp4.meta.json index e247d01..67cbce9 100644 --- a/testdata/golden/meta/macabre.mp4.meta.json +++ b/testdata/golden/meta/macabre.mp4.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-10.meta.json b/testdata/golden/meta/schizo.flv-10.meta.json index 6399177..eaa82ba 100644 --- a/testdata/golden/meta/schizo.flv-10.meta.json +++ b/testdata/golden/meta/schizo.flv-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":27.9,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-5.meta.json b/testdata/golden/meta/schizo.flv-5.meta.json index 63e7bc0..eaa82ba 100644 --- a/testdata/golden/meta/schizo.flv-5.meta.json +++ b/testdata/golden/meta/schizo.flv-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":25.6,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-9999.meta.json b/testdata/golden/meta/schizo.flv-9999.meta.json index 5d8e788..eaa82ba 100644 --- a/testdata/golden/meta/schizo.flv-9999.meta.json +++ b/testdata/golden/meta/schizo.flv-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.6,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-99999.meta.json b/testdata/golden/meta/schizo.flv-99999.meta.json index 66cb6d9..eaa82ba 100644 --- a/testdata/golden/meta/schizo.flv-99999.meta.json +++ b/testdata/golden/meta/schizo.flv-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.3,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv.meta.json b/testdata/golden/meta/schizo.flv.meta.json index 62d3cfb..eaa82ba 100644 --- a/testdata/golden/meta/schizo.flv.meta.json +++ b/testdata/golden/meta/schizo.flv.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-10.meta.json b/testdata/golden/meta/schizo_0.mp4-10.meta.json index 3dda84e..d98cf3c 100644 --- a/testdata/golden/meta/schizo_0.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-5.meta.json b/testdata/golden/meta/schizo_0.mp4-5.meta.json index 3dda84e..d98cf3c 100644 --- a/testdata/golden/meta/schizo_0.mp4-5.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-9999.meta.json b/testdata/golden/meta/schizo_0.mp4-9999.meta.json index 3dda84e..d98cf3c 100644 --- a/testdata/golden/meta/schizo_0.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-99999.meta.json b/testdata/golden/meta/schizo_0.mp4-99999.meta.json index 3dda84e..d98cf3c 100644 --- a/testdata/golden/meta/schizo_0.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4.meta.json b/testdata/golden/meta/schizo_0.mp4.meta.json index 39438cd..d98cf3c 100644 --- a/testdata/golden/meta/schizo_0.mp4.meta.json +++ b/testdata/golden/meta/schizo_0.mp4.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-10.meta.json b/testdata/golden/meta/schizo_180.mp4-10.meta.json index f992f3e..0dfaf2b 100644 --- a/testdata/golden/meta/schizo_180.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-5.meta.json b/testdata/golden/meta/schizo_180.mp4-5.meta.json index f992f3e..0dfaf2b 100644 --- a/testdata/golden/meta/schizo_180.mp4-5.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-5.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-9999.meta.json b/testdata/golden/meta/schizo_180.mp4-9999.meta.json index f992f3e..0dfaf2b 100644 --- a/testdata/golden/meta/schizo_180.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-99999.meta.json b/testdata/golden/meta/schizo_180.mp4-99999.meta.json index f992f3e..0dfaf2b 100644 --- a/testdata/golden/meta/schizo_180.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4.meta.json b/testdata/golden/meta/schizo_180.mp4.meta.json index 66e5afd..0dfaf2b 100644 --- a/testdata/golden/meta/schizo_180.mp4.meta.json +++ b/testdata/golden/meta/schizo_180.mp4.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-10.meta.json b/testdata/golden/meta/schizo_270.mp4-10.meta.json index 10bc562..ecdd37c 100644 --- a/testdata/golden/meta/schizo_270.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-5.meta.json b/testdata/golden/meta/schizo_270.mp4-5.meta.json index 10bc562..ecdd37c 100644 --- a/testdata/golden/meta/schizo_270.mp4-5.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-5.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-9999.meta.json b/testdata/golden/meta/schizo_270.mp4-9999.meta.json index 10bc562..ecdd37c 100644 --- a/testdata/golden/meta/schizo_270.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-99999.meta.json b/testdata/golden/meta/schizo_270.mp4-99999.meta.json index 10bc562..ecdd37c 100644 --- a/testdata/golden/meta/schizo_270.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4.meta.json b/testdata/golden/meta/schizo_270.mp4.meta.json index 14ea544..ecdd37c 100644 --- a/testdata/golden/meta/schizo_270.mp4.meta.json +++ b/testdata/golden/meta/schizo_270.mp4.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-10.meta.json b/testdata/golden/meta/schizo_90.mp4-10.meta.json index ee3a3aa..90e1578 100644 --- a/testdata/golden/meta/schizo_90.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-5.meta.json b/testdata/golden/meta/schizo_90.mp4-5.meta.json index ee3a3aa..90e1578 100644 --- a/testdata/golden/meta/schizo_90.mp4-5.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-5.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-9999.meta.json b/testdata/golden/meta/schizo_90.mp4-9999.meta.json index ee3a3aa..90e1578 100644 --- a/testdata/golden/meta/schizo_90.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-99999.meta.json b/testdata/golden/meta/schizo_90.mp4-99999.meta.json index ee3a3aa..90e1578 100644 --- a/testdata/golden/meta/schizo_90.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4.meta.json b/testdata/golden/meta/schizo_90.mp4.meta.json index 7216654..90e1578 100644 --- a/testdata/golden/meta/schizo_90.mp4.meta.json +++ b/testdata/golden/meta/schizo_90.mp4.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/with_cover.mp3-10.meta.json b/testdata/golden/meta/with_cover.mp3-10.meta.json index 53301b3..00ce5c9 100644 --- a/testdata/golden/meta/with_cover.mp3-10.meta.json +++ b/testdata/golden/meta/with_cover.mp3-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":1906,"width":1280,"height":720,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":1906,"width":1280,"height":720,"fps":90000,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/with_cover.mp3-5.meta.json b/testdata/golden/meta/with_cover.mp3-5.meta.json index 53301b3..00ce5c9 100644 --- a/testdata/golden/meta/with_cover.mp3-5.meta.json +++ b/testdata/golden/meta/with_cover.mp3-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":1906,"width":1280,"height":720,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":1906,"width":1280,"height":720,"fps":90000,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/with_cover.mp3-9999.meta.json b/testdata/golden/meta/with_cover.mp3-9999.meta.json index 53301b3..00ce5c9 100644 --- a/testdata/golden/meta/with_cover.mp3-9999.meta.json +++ b/testdata/golden/meta/with_cover.mp3-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":1906,"width":1280,"height":720,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":1906,"width":1280,"height":720,"fps":90000,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/with_cover.mp3-99999.meta.json b/testdata/golden/meta/with_cover.mp3-99999.meta.json index 53301b3..00ce5c9 100644 --- a/testdata/golden/meta/with_cover.mp3-99999.meta.json +++ b/testdata/golden/meta/with_cover.mp3-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":1906,"width":1280,"height":720,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":1906,"width":1280,"height":720,"fps":90000,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/with_cover.mp3.meta.json b/testdata/golden/meta/with_cover.mp3.meta.json index 53301b3..00ce5c9 100644 --- a/testdata/golden/meta/with_cover.mp3.meta.json +++ b/testdata/golden/meta/with_cover.mp3.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":1906,"width":1280,"height":720,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":1906,"width":1280,"height":720,"fps":90000,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/result/meta/everybody-betray-me.mkv b/testdata/golden/result/meta/everybody-betray-me.mkv index 045e431..586d7e6 100644 --- a/testdata/golden/result/meta/everybody-betray-me.mkv +++ b/testdata/golden/result/meta/everybody-betray-me.mkv @@ -1 +1 @@ -{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"has_video":true,"has_audio":true} \ No newline at end of file +{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv b/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv index 87a8093..586d7e6 100644 --- a/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv +++ b/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv @@ -1 +1 @@ -{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"has_video":true,"has_audio":true} \ No newline at end of file +{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv b/testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv index ea245f6..586d7e6 100644 --- a/testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv +++ b/testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv @@ -1 +1 @@ -{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":29.9,"has_video":true,"has_audio":true} \ No newline at end of file +{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":29.97002997002997,"has_video":true,"has_audio":true} \ No newline at end of file