aac

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

README

aac-go

TravisCI Build Status AppVeyor Build Status GoDoc Go Report Card

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

Installation

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

Examples

See micgrab example.

Usage

package main

import (
	"bytes"
	"io/ioutil"
	"os"

	"github.com/dreadatour/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 = ioutil.WriteFile("test.aac", buf.Bytes(), 0644)
	if err != nil {
		panic(err)
	}
}

More

For H.264 encoder see x264-go.

Documentation

Overview

Package aac provides AAC codec encoder based on [VisualOn AAC encoder](https://github.com/mstorsjo/vo-aacenc) library.

Package aac contains required external dependencies

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Encoder

type Encoder struct {
	// contains filtered or unexported fields
}

Encoder type.

func NewEncoder

func NewEncoder(w io.Writer, opts *Options) (e *Encoder, err error)

NewEncoder returns new AAC encoder.

func (*Encoder) Close

func (e *Encoder) Close() error

Close closes encoder.

func (*Encoder) Encode

func (e *Encoder) Encode(r io.Reader) (err error)

Encode encodes data from reader.

type Options

type Options struct {
	// Audio file sample rate
	SampleRate int
	// Encoder bit rate in bits/sec
	BitRate int
	// Number of channels on input (1,2)
	NumChannels int
}

Options represent encoding options.

Directories

Path Synopsis
external
Package external contains required external dependencies
Package external contains required external dependencies
external/aacenc
Package aacenc contains required external dependencies
Package aacenc contains required external dependencies
external/aacenc/include
Package include contains required external dependencies
Package include contains required external dependencies
external/aacenc/src
Package src contains required external dependencies
Package src contains required external dependencies
examples
basic command
micgrab command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL