39588


<https://github.com/bwmarrin/dca/tree/master/cmd/dca>

dcaというコマンドはwavなどの音声形式をdca形式に変換するためのコマンドなのですが、これをGoのプログラムから動かしたく以下のようなプログラムを作成したのですが、普通にコマンドを入力して作成したファイルよりも容量が小さく正しいファイルが生成できません。どう修正すれば正しいファイルを生成できるのでしょうか。

コマンド

[code]

    dca -i hello.wav --raw > hello.dca
    
[/code]

プログラム

[code]

    package main
    
    import (
        "io"
        "io/ioutil"
        "os"
        "os/exec"
    )
    
    func main() {
        b, err := ioutil.ReadFile("hello.wav")
        if err != nil {
            panic(err)
        }
    
        cmd := exec.Command("dca", "--raw", "-i", "pipe:0")
        stdin, _ := cmd.StdinPipe()
        io.WriteString(stdin, string(b))
        stdin.Close()
        out, err := cmd.Output()
        if err != nil {
            panic(err)
        }
    
        f, err := os.Create("hello.dca")
        if err != nil {
            panic(err)
        }
    
        defer func() {
            if err := f.Close(); err != nil {
                panic(err)
            }
        }()
    
        if _, err := f.Write(out); err != nil {
            panic(err)
        }
    }
    
[/code]


CC BY-SA 3.0
2017-10-24T09:43:41.570
38997
2017-11-15T05:45:21.507
7232
question
go bash
dcaというコマンドをGoプログラムを利用して実行したい


<https://github.com/jonas747/dca>

上記のライブラリを用いることで、メモリ上でdca形式への変換ができたのでそれを使いました。


CC BY-SA 3.0
2017-11-15T05:45:21.507
39588
2017-11-15T05:45:21.507
7232
38997
answer