- Notifications
You must be signed in to change notification settings - Fork44
gen2brain/x264-go
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
x264-go
provides H.264/MPEG-4 AVC codec encoder based onx264 library.
C source code is included in package. If you want to use external shared/static library (i.e. built with asm and/or OpenCL) use-tags extlib
go get -u github.com/gen2brain/x264-go
extlib
- use external x264 librarypkgconfig
- enable pkg-config (used with extlib)
Seescreengrab example.
package mainimport ("bytes""image""image/color""image/draw""github.com/gen2brain/x264-go")funcmain() {buf:=bytes.NewBuffer(make([]byte,0))opts:=&x264.Options{Width:640,Height:480,FrameRate:25,Tune:"zerolatency",Preset:"veryfast",Profile:"baseline",LogLevel:x264.LogDebug,}enc,err:=x264.NewEncoder(buf,opts)iferr!=nil {panic(err)}img:=x264.NewYCbCr(image.Rect(0,0,opts.Width,opts.Height))draw.Draw(img,img.Bounds(),image.Black,image.ZP,draw.Src)fori:=0;i<opts.Width/2;i++ {img.Set(i,opts.Height/2, color.RGBA{255,0,0,255})err=enc.Encode(img)iferr!=nil {panic(err)}}err=enc.Flush()iferr!=nil {panic(err)}err=enc.Close()iferr!=nil {panic(err)}}
For AAC encoder seeaac-go.