예제 #1
0
func TestConvertToM4A1(t *testing.T) {
	// if err := c.ConvertToM4A("/tmp/1464287110893755332.amr", "2"); err != nil {
	// 	t.Error()
	// }
	// fmt.Println("ffmpeg", "-i", "/tmp/1464287110893755332.amr", "/tmp/1464287110893755332.m4a")
	// comm := exec.Command("ffmpeg", "-i", "/tmp/1464287110893755332.amr", "/tmp/1464287110893755332.m4a")
	// if err := comm.Run(); err != nil {
	// 	// return ConvertError
	// 	t.Error()
	// }
	f, err := os.Open("./audio/test.amr")
	if err != nil {
		t.Error(err)
	}
	defer f.Close()

	// Read from it
	var buf bytes.Buffer
	if _, err := buf.ReadFrom(f); err != nil {
		t.Error(err)
	}

	tmp := c.Request{"amr", "m4a", buf.Bytes(), "2"}
	var response []byte
	cc := c.NewConverter(2)
	if err := cc.Convert(tmp, &response); err != nil {
		t.Error()
	}
	ff, err := os.Create("./audio/result.m4a")
	if err != nil {
		t.Error(err)
	}
	defer ff.Close()

	if _, err := ff.Write(response); err != nil {
		t.Error(err)
	}
}
예제 #2
0
파일: main.go 프로젝트: seka17/bracelet
func main() {

	rpcAddr := flag.String("rpc", ":8556", "address for rpc connections")
	audioDir := flag.String("dir", "/tmp", "directory to store temporary files")
	numberOfConnections := flag.Int("n", 10, "number of conversions at the same time")
	flag.Parse()

	c.AudioDir = *audioDir
	converter := c.NewConverter(*numberOfConnections)

	addy, err := net.ResolveTCPAddr("tcp", *rpcAddr)
	if err != nil {
		log.Fatal(err)
	}

	inbound, err := net.ListenTCP("tcp", addy)
	if err != nil {
		log.Fatal(err)
	}

	rpc.Register(converter)
	rpc.Accept(inbound)
}