Skip to content

gen2brain/aac-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 19, 2023
ef1e765 · Jan 19, 2023

History

13 Commits
Jan 19, 2023
Jan 19, 2023
Jan 19, 2023
Mar 6, 2018
Mar 6, 2018
Mar 6, 2018
Jan 19, 2023
Jan 19, 2023
Jan 19, 2023
Jan 19, 2023
Jan 19, 2023

Repository files navigation

aac-go

Build Status GoDoc Go Report Card

aac-go provides AAC codec encoder based on VisualOn AAC encoder library.

Installation

go get -u github.com/gen2brain/aac-go

Examples

See micgrab example.

Usage

package main

import (
	"bytes"
	"os"

	"github.com/gen2brain/aac-go"
	"github.com/youpy/go-wav"
)

func main() {
	file, err := os.Open("test.wav")
	if err != nil {
		panic(err)
	}

	wreader := wav.NewReader(file)
	f, err := wreader.Format()
	if err != nil {
		panic(err)
	}

	buf := bytes.NewBuffer(make([]byte, 0))

	opts := &aac.Options{}
	opts.SampleRate = int(f.SampleRate)
	opts.NumChannels = int(f.NumChannels)

	enc, err := aac.NewEncoder(buf, opts)
	if err != nil {
		panic(err)
	}

	err = enc.Encode(wreader)
	if err != nil {
		panic(err)
	}

	err = enc.Close()
	if err != nil {
		panic(err)
	}

	err = os.WriteFile("test.aac", buf.Bytes(), 0644)
	if err != nil {
		panic(err)
	}
}

More

For H.264 encoder see x264-go.