diff --git a/examples/example_test.go b/examples/example_test.go index 4624454..8b3947e 100644 --- a/examples/example_test.go +++ b/examples/example_test.go @@ -30,6 +30,18 @@ func TestExampleReadFrameAsJpeg(t *testing.T) { } } +func TestExampleReadTimePositionAsJpeg(t *testing.T) { + reader := ExampleReadTimePositionAsJpeg("./sample_data/in1.mp4", 4) + img, err := imaging.Decode(reader) + if err != nil { + t.Fatal(err) + } + err = imaging.Save(img, "./sample_data/out2.jpeg") + if err != nil { + t.Fatal(err) + } +} + func TestExampleShowProgress(t *testing.T) { ExampleShowProgress("./sample_data/in1.mp4", "./sample_data/out2.mp4") } diff --git a/examples/readTimePositionAsJpeg.go b/examples/readTimePositionAsJpeg.go new file mode 100644 index 0000000..6946962 --- /dev/null +++ b/examples/readTimePositionAsJpeg.go @@ -0,0 +1,21 @@ +package examples + +import ( + "bytes" + "io" + "os" + + ffmpeg "github.com/u2takey/ffmpeg-go" +) + +func ExampleReadTimePositionAsJpeg(inFileName string, seconds int) io.Reader { + buf := bytes.NewBuffer(nil) + err := ffmpeg.Input(inFileName, ffmpeg.KwArgs{"ss": seconds}). + Output("pipe:", ffmpeg.KwArgs{"vframes": 1, "format": "image2", "vcodec": "mjpeg"}). + WithOutput(buf, os.Stdout). + Run() + if err != nil { + panic(err) + } + return buf +} diff --git a/examples/sample_data/out1.jpeg b/examples/sample_data/out1.jpeg index 174d3ac..33560a7 100644 Binary files a/examples/sample_data/out1.jpeg and b/examples/sample_data/out1.jpeg differ diff --git a/examples/sample_data/out2.jpeg b/examples/sample_data/out2.jpeg new file mode 100644 index 0000000..8d139c5 Binary files /dev/null and b/examples/sample_data/out2.jpeg differ