# x264-go **Repository Path**: mirrors/x264-go ## Basic Information - **Project Name**: x264-go - **Description**: x264-go 为 Go 语言提供了 H.264/MPEG-4 AVC 编解码的实现,基于 x264 库 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/x264-go - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2018-02-18 - **Last Updated**: 2025-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## x264-go [![Build Status](https://github.com/gen2brain/x264-go/actions/workflows/build.yml/badge.svg)](https://github.com/gen2brain/x264-go/actions) [![GoDoc](https://godoc.org/github.com/gen2brain/x264-go?status.svg)](https://godoc.org/github.com/gen2brain/x264-go) [![Go Report Card](https://goreportcard.com/badge/github.com/gen2brain/x264-go?branch=master)](https://goreportcard.com/report/github.com/gen2brain/x264-go) `x264-go` provides H.264/MPEG-4 AVC codec encoder based on [x264](https://www.videolan.org/developers/x264.html) 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` ### Installation go get -u github.com/gen2brain/x264-go ### Build tags * `extlib` - use external x264 library * `pkgconfig` - enable pkg-config (used with extlib) ### Examples See [screengrab](https://github.com/gen2brain/x264-go/blob/master/examples/screengrab/screengrab.go) example. ### Usage ```go package main import ( "bytes" "image" "image/color" "image/draw" "github.com/gen2brain/x264-go" ) func main() { 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) if err != 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) for i := 0; i < opts.Width/2; i++ { img.Set(i, opts.Height/2, color.RGBA{255, 0, 0, 255}) err = enc.Encode(img) if err != nil { panic(err) } } err = enc.Flush() if err != nil { panic(err) } err = enc.Close() if err != nil { panic(err) } } ``` ## More For AAC encoder see [aac-go](https://github.com/gen2brain/aac-go).