You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
978 B
Go
46 lines
978 B
Go
4 years ago
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/Danile71/joy4/av"
|
||
|
"github.com/Danile71/joy4/av/transcode"
|
||
|
"github.com/Danile71/joy4/format"
|
||
|
"github.com/Danile71/joy4/av/avutil"
|
||
|
"github.com/Danile71/joy4/cgo/ffmpeg"
|
||
|
)
|
||
|
|
||
|
// need ffmpeg with libfdkaac installed
|
||
|
|
||
|
func init() {
|
||
|
format.RegisterAll()
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
infile, _ := avutil.Open("speex.flv")
|
||
|
|
||
|
findcodec := func(stream av.AudioCodecData, i int) (need bool, dec av.AudioDecoder, enc av.AudioEncoder, err error) {
|
||
|
need = true
|
||
|
dec, _ = ffmpeg.NewAudioDecoder(stream)
|
||
|
enc, _ = ffmpeg.NewAudioEncoderByName("libfdk_aac")
|
||
|
enc.SetSampleRate(stream.SampleRate())
|
||
|
enc.SetChannelLayout(av.CH_STEREO)
|
||
|
enc.SetBitrate(12000)
|
||
|
enc.SetOption("profile", "HE-AACv2")
|
||
|
return
|
||
|
}
|
||
|
|
||
|
trans := &transcode.Demuxer{
|
||
|
Options: transcode.Options{
|
||
|
FindAudioDecoderEncoder: findcodec,
|
||
|
},
|
||
|
Demuxer: infile,
|
||
|
}
|
||
|
|
||
|
outfile, _ := avutil.Create("out.ts")
|
||
|
avutil.CopyFile(outfile, trans)
|
||
|
|
||
|
outfile.Close()
|
||
|
infile.Close()
|
||
|
trans.Close()
|
||
|
}
|
||
|
|