ホームページ > バックエンド開発 > Golang > `os/exec` パッケージを使用して Go でパイプされたコマンド (例: phantomjs | ffmpeg) を実行するにはどうすればよいですか?

`os/exec` パッケージを使用して Go でパイプされたコマンド (例: phantomjs | ffmpeg) を実行するにはどうすればよいですか?

DDD
リリース: 2024-11-23 13:16:11
オリジナル
506 人が閲覧しました

How Can I Run a Piped Command (e.g., phantomjs | ffmpeg) in Go using the `os/exec` package?

exec を使用して Go でパイプを使用してコマンドを実行する

os/exec を使用して Go でパイプを使用してコマンドを実行しようとする場合パッケージを使用するには、パイプのメカニズムがどのように機能するかを理解することが重要です。 Command() 関数の最初のパラメーターは実行可能ファイルを表し、パイプ自体とは異なります。パイプを正常に確立するには、bash や cmd などの外部コマンドを利用してパイプ処理の側面を処理する必要があります。

次のコマンドを検討してください。

phantomjs runner.js | ffmpeg -y -c:v png -f image2pipe -r 25 -t 10  -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart dragon.mp4
ログイン後にコピー

このコマンドには、phantomjs を使用してイメージを生成することが含まれます。次に、ffmpeg にパイプされてビデオが作成されます。 Go でパイプを使用してこのコマンドを実行するには、次のコードを使用します。

    cmd := exec.Command("bash", "-c", cmdString)
    output, err := cmd.Output()
    if err != nil {
        return fmt.Sprintf("Failed to execute command: %s", cmdString)
    }
    fmt.Println(string(output))
ログイン後にコピー

この例では、実行可能ファイルとして bash を使用してコマンドを作成し、引数としてコマンド文字列を指定します。 Output() メソッドは、結合された標準出力と標準エラーをバイト配列としてキャプチャします。最後に、出力を文字列として出力します。

bash や cmd などの外部コマンドの機能を利用することで、os/exec パッケージを使用して Go のコマンド間のパイプをシームレスに確立でき、複雑なパイプラインを実行できるようになります。効果的に。

以上が`os/exec` パッケージを使用して Go でパイプされたコマンド (例: phantomjs | ffmpeg) を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート