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) } }
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) }