Dalam percubaan untuk menangkap halaman web menggunakan PhantomJS dan paipkan imej yang terhasil dengan lancar ke ffmpeg untuk penciptaan video, anda telah menghadapi cabaran. Melaksanakan arahan terus dalam terminal menghasilkan hasil yang diingini, tetapi halangannya terletak apabila menjalankannya melalui pakej os/exec Go.
Untuk mengatasi halangan ini dan mengelakkan tugas yang sukar untuk menulis imej ke fail, anda' telah meneroka kemungkinan melaksanakan keseluruhan arahan sebagai satu entiti. Berikut ialah penyelesaian yang boleh membantu:
import ( "fmt" "os/exec" ) func main() { 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" output, err := exec.Command("bash", "-c", cmd).Output() if err != nil { fmt.Printf("Failed to execute command: %s", cmd) } fmt.Println(string(output)) }
Dalam pendekatan ini, bukannya bergantung pada pakej os/exec secara langsung, kami menggunakan perintah 'bash' untuk melaksanakan keseluruhan rentetan sebagai satu entiti. Ini membolehkan kami mengekalkan kefungsian paip dan melaksanakan perintah dengan lancar.
Setelah pelaksanaan berjaya, output daripada ffmpeg akan ditangkap dalam pembolehubah 'output' dan anda boleh meneruskan untuk mengendalikan keputusan seperti yang anda perlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pakej `os/exec` Go untuk Menyalurkan Output PhantomJS ke FFmpeg untuk Penciptaan Video?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!