Skip to content

Generate a thumnnail sprite for videos from your go code or your terminal

Notifications You must be signed in to change notification settings

joschahenningsen/thumbgen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

thumbgen

Thumbgen generates a thumbnail sprite for a given video file, usable by a variety of video players like videojs with https://github.com/phloxic/videojs-sprite-thumbnails.

Usage

Via command line:

  • go install github.com/joschahenningsen/thumbgen/cmd/thumbgen@latest
// generate a thumbnail sprite for video.mp4 with a width of 100px for every 2 seconds:
$ thumbgen -i video.mp4 -w 150 -n 2 -o thumbs.jpeg
g, err := thumbgen.New("video.mp4", 360, 100, "out.jpg")
if err != nil {
	fmt.Println(err)
}
err = g.Generate()
if err != nil {
	fmt.Println(err)
	return
}

Advanced:

You can pass a jpeg compression factor (0: worst quality, 100: best) to New:

g, err := thumbgen.New("video.mp4", 360, 2, "out.jpg", thumbgen.WithJpegCompression(90))

If you wish to track the progress, pass a channel to New:

progress := make(chan int)
g, err := thumbgen.New("video.mp4", 360, 100, "out.jpg", thumbgen.WithProgressChan(&progress))
go func(){
	for {
		p := <-progress
		fmt.Println("progress: ", p, "%") // or whatever
		if p == 100 {
			break
		}
	}
}()
g.Generate()

If you desire to keep all frames (out0000.jpeg, ...) pass a path to New:

g, err := thumbgen.New("video.mp4", 360, 2, "out.jpg", thumbgen.WithStoreSingleFrames("/tmp"))

About

Generate a thumnnail sprite for videos from your go code or your terminal

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages