In einem Versuch, eine Webseite mit PhantomJS zu erfassen und die resultierenden Bilder nahtlos an ffmpeg weiterzuleiten Bei der Videoerstellung stehen Sie vor einer Herausforderung. Die Ausführung des Befehls direkt im Terminal führt zu den gewünschten Ergebnissen, der Stolperstein liegt jedoch darin, ihn über das os/exec-Paket von Go auszuführen.
Um diese Hürde zu überwinden und die mühsame Aufgabe des Schreibens von Bildern in Dateien zu vermeiden, müssen Sie Wir haben die Möglichkeit untersucht, den gesamten Befehl als eine einzige Einheit auszuführen. Hier ist eine Lösung, die helfen könnte:
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)) }
Anstatt uns bei diesem Ansatz direkt auf das os/exec-Paket zu verlassen, verwenden wir einen „Bash“-Befehl, um die gesamte Zeichenfolge als eine einzelne Einheit auszuführen. Dadurch können wir die Pipe-Funktionalität beibehalten und den Befehl nahtlos ausführen.
Nach erfolgreicher Ausführung wird die Ausgabe von ffmpeg in der Variablen „output“ erfasst und Sie können mit der Bearbeitung der Ergebnisse nach Bedarf fortfahren.
Das obige ist der detaillierte Inhalt vonWie kann ich das „os/exec'-Paket von Go verwenden, um die PhantomJS-Ausgabe zur Videoerstellung an FFmpeg weiterzuleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!