From 0782179c943a59c16ad3a58dbcddefa3a9ce9d60 Mon Sep 17 00:00:00 2001 From: "wanglei.w" Date: Thu, 19 Nov 2020 15:05:55 +0800 Subject: [PATCH] add more example doc --- README.md | 74 ++++++++++++++++++++++++++- examples/opencv.go | 10 ++-- examples/sample_data/face-detect.jpg | Bin 0 -> 46637 bytes 3 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 examples/sample_data/face-detect.jpg diff --git a/README.md b/README.md index 18427e8..d84ec65 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ffmpeg-go is golang port of https://github.com/kkroening/ffmpeg-python check ffmpeg_test.go for examples. -# example +# Examples ```go split := Input(TestInputFile1).VFlip().Split() @@ -21,7 +21,77 @@ err := Concat([]*Stream{ Run() ``` -# view +## Task Frame From Video + +```bash +func ExampleReadFrameAsJpeg(inFileName string, frameNum int) io.Reader { + buf := bytes.NewBuffer(nil) + err := ffmpeg.Input(inFileName). + Filter("select", ffmpeg.Args{fmt.Sprintf("gte(n,%d)", frameNum)}). + Output("pipe:", ffmpeg.KwArgs{"vframes": 1, "format": "image2", "vcodec": "mjpeg"}). + WithOutput(buf, os.Stdout). + Run() + if err != nil { + panic(err) + } + return buf +} + +reader := ExampleReadFrameAsJpeg("./sample_data/in1.mp4", 5) +img, err := imaging.Decode(reader) +if err != nil { + t.Fatal(err) +} +err = imaging.Save(img, "./sample_data/out1.jpeg") +if err != nil { + t.Fatal(err) +} +``` +result : + +![image](./examples/sample_data/out1.jpeg) + + +## Show Ffmpeg Progress + +see complete example at: [showProgress](./examples/showProgress.go) + +```bash +func ExampleShowProgress(inFileName, outFileName string) { + a, err := ffmpeg.Probe(inFileName) + if err != nil { + panic(err) + } + totalDuration := gjson.Get(a, "format.duration").Float() + + err = ffmpeg.Input(inFileName). + Output(outFileName, ffmpeg.KwArgs{"c:v": "libx264", "preset": "veryslow"}). + GlobalArgs("-progress", "unix://"+TempSock(totalDuration)). + OverWriteOutput(). + Run() + if err != nil { + panic(err) + } +} +ExampleShowProgress("./sample_data/in1.mp4", "./sample_data/out2.mp4") +``` + +result + +```bash +progress: .0 +progress: 0.72 +progress: 1.00 +progress: done +``` + +## Use Ffmpeg-go With Open-cv (gocv) For Face-detect + +see complete example at: [opencv](./examples/opencv.go) + +result: ![image](./examples/sample_data/face-detect.jpg) + +# View Graph function view generate [mermaid](https://mermaid-js.github.io/mermaid/#/) chart, which can be use in markdown or view [online](https://mermaid-js.github.io/mermaid-live-editor/) diff --git a/examples/opencv.go b/examples/opencv.go index 928ac32..646be2b 100644 --- a/examples/opencv.go +++ b/examples/opencv.go @@ -62,23 +62,25 @@ func openCvProcess(xmlFile string, reader io.ReadCloser, w, h int) { if img.Empty() { continue } + img2 := gocv.NewMat() + gocv.CvtColor(img, &img2, gocv.ColorBGRToRGB) // detect faces - rects := classifier.DetectMultiScale(img) + rects := classifier.DetectMultiScale(img2) fmt.Printf("found %d faces\n", len(rects)) // draw a rectangle around each face on the original image, // along with text identifing as "Human" for _, r := range rects { - gocv.Rectangle(&img, r, blue, 3) + gocv.Rectangle(&img2, r, blue, 3) size := gocv.GetTextSize("Human", gocv.FontHersheyPlain, 1.2, 2) pt := image.Pt(r.Min.X+(r.Min.X/2)-(size.X/2), r.Min.Y-2) - gocv.PutText(&img, "Human", pt, gocv.FontHersheyPlain, 1.2, blue, 2) + gocv.PutText(&img2, "Human", pt, gocv.FontHersheyPlain, 1.2, blue, 2) } // show the image in the window, and wait 1 millisecond - window.IMShow(img) + window.IMShow(img2) if window.WaitKey(10) >= 0 { break } diff --git a/examples/sample_data/face-detect.jpg b/examples/sample_data/face-detect.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e496691d64c8ee99d411148f180bacd998d34261 GIT binary patch literal 46637 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 literal 0 HcmV?d00001