Maison > développement back-end > Golang > Comment puis-je utiliser le package « os/exec » de Go pour canaliser la sortie PhantomJS vers FFmpeg pour la création vidéo ?

Comment puis-je utiliser le package « os/exec » de Go pour canaliser la sortie PhantomJS vers FFmpeg pour la création vidéo ?

Mary-Kate Olsen
Libérer: 2024-12-02 04:09:10
original
227 Les gens l'ont consulté

How Can I Use Go's `os/exec` Package to Pipe PhantomJS Output to FFmpeg for Video Creation?

Utilisation du package Exec de Golang : exécuter des commandes avec Pipe et enregistrer une page Web avec PhantomJS

Pour tenter de capturer une page Web à l'aide de PhantomJS et de diriger de manière transparente les images résultantes vers ffmpeg pour création vidéo, vous avez rencontré un défi. L'exécution de la commande directement dans le terminal donne les résultats souhaités, mais la pierre d'achoppement réside lors de son exécution via le package os/exec de Go.

Pour surmonter cet obstacle et éviter la tâche laborieuse d'écriture d'images dans des fichiers, vous' J'ai exploré la possibilité d'exécuter l'intégralité de la commande en tant qu'entité unique. Voici une solution qui pourrait aider :

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))
}
Copier après la connexion

Dans cette approche, au lieu de nous appuyer directement sur le package os/exec, nous utilisons une commande « bash » pour exécuter la chaîne entière en tant qu'entité unique. Cela nous permet de maintenir la fonctionnalité du tube et d'exécuter la commande de manière transparente.

Une fois l'exécution réussie, la sortie de ffmpeg sera capturée dans la variable 'output' et vous pourrez continuer à gérer les résultats selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal