Releases: cshum/imagorvideo
v0.3.9
v0.3.8
What's Changed
- build(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 by @dependabot in #45
- build(deps): ffmpeg 5.1.2 by @cshum in #46
- build(deps): go 1.19.3 by @cshum in #47
- build(deps): libvips 8.13.3 by @cshum in #48
- build(deps): imagor 1.3.3 by @cshum
New Contributors
- @dependabot made their first contribution in #45
Full Changelog: v0.3.3...v0.3.8
v0.3.3
Seeking Support
imagorvideo introduces seek(n)
filter and there are differences you may want to choose one over the other.
While frame(n)
gives you the precise time frame specified, precise may not be the best in some circumstances:
http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
Retrieving the frame at 5 minutes elapsed time of this video:
http://localhost:8000/unsafe/filters:frame(5m)/http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
It results a complete black frame.
This is where seek(n)
comes handy. It seeks to the key frame before the 5 minutes elapsed time, then perform best frame selection starting from that point using root-mean-square error (RMSE).
The result is a reasonable image that sits close to the specified time:
http://localhost:8000/unsafe/filters:seek(5m)/http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
What's Changed
- fix: seeker initialization by @cshum in #42
- feat: seek() filter and ffmpeg.SeekPosition, ffmpeg.SeekDuration by @cshum in #43
- fix(ffmpeg): 0s frame handling by @cshum in #44
Full Changelog: v0.3.0...v0.3.3
v0.3.0
What's Changed
- refactor(ffmpeg): selected_frame and frame(n) starts from 1 by @cshum in #38
- feat(ffmpeg): seek and select frame by duration and float position by @cshum in #39
- feat(ffmpeg): select frame by duration and float position by @cshum in #40
- refactor(ffmpeg): use r_frame_rate for FPS by @cshum in #41
Full Changelog: v0.2.2...v0.3.0
v0.2.2
v0.2.0
v0.2.0 marks the beginning of a major refactoring of the ffmpeg code base, which also introduced more fine grain control over the frame selection and metadata:
New Filters
frame(n)
specifying the frame indexn
for imaging. This allows skipping the default automatic selection, which involves computing root-mean-square error (RMSE) of histogram frames data.max_frames(n)
restrict the maximum number of frames allocated for image selection. The smaller the number, the faster the processing time.
Enriched Metadata
Enriched metadata to include more header info. Also included frames per second fps
and selected frame data, if frame processing is activated:
{
"format": "mp4",
"content_type": "video/mp4",
"orientation": 1,
"duration": 10000,
"width": 1920,
"height": 1080,
"title": "Big Buck Bunny, Sunflower version",
"artist": "Blender Foundation 2008, Janus Bager Kristensen 2013",
"fps": 30,
"selected_frame": 21,
"has_video": true,
"has_audio": false
}
What's Changed
- refactor: duration metadata in millisecond by @cshum in #25
- feat(ffmpeg): add fps metadata by @cshum in #26
- refactor(ffmpeg): refactor process frames by @cshum in #27
- feat: ffmpeg select specific frame and frame(n) filter by @cshum in #28
- test: ffmpeg select frame and frame(n) filter by @cshum in #29
- feat(imagvideo): max_frames(n) filter by @cshum in #30
- refactor(ffmpeg): process on select frame by @cshum in #31
- refactor(ffmpeg): skip histogram if frame selected by @cshum in #32
- fix(ffmpeg): no codec handling by @cshum in #33
- test(ffmpeg): mp3 cover art tests by @cshum in #34
Full Changelog: v0.1.7...v0.2.0
v0.1.7
Improved memory consumption and read performance for large files over 100MB for non-seekable source.
What's Changed
- refactor: imagor seek stream implementation by @cshum in #21
- build: imagor 1.2.0 by @cshum in #22
- refactor: metadata add format and content type by @cshum in #23
Full Changelog: v0.1.6...v0.1.7
v0.1.6
v0.1.5
v0.1.3
What's Changed
- fix(imagorvideo): close reader on ReadSeeker size <= 0 by @cshum in #9
- build: libvips 8.13.2 by @cshum in #10
- refactor(ffmpeg): refactor pointer and reader stream by @cshum in #11
- build(deps): imagor 1.1.5 by @cshum in #13
- fix(imagorvideo): fix reader and read seeker close sequence by @cshum in #12
Full Changelog: v0.1.2...v0.1.3