Aller au contenu
A small, square, flat-design icon features simplified shapes: a film strip, camera, and scissors grouped to indicate video cutting; a jagged line for an audio waveform to suggest audio extraction; and a plain rectangle representing extracted video frames. The icon uses a basic, 8-bit, 5-color palette, all in a geometric, corporate style, with no background, people, or text.

Vidéos comme Entrées

AI generated translation.

Bien que la plupart des LLM ne prennent pas en charge les vidéos nativement, elles peuvent être intégrées dans des scripts en rendant des images et en les ajoutant comme images au prompt. Cela peut être fastidieux et GenAIScript fournit des assistants efficaces pour simplifier ce processus.

Les fonctionnalités de rendu et d’analyse des vidéos reposent sur ffmpeg et ffprobe.

Sous Linux, vous pouvez essayer

Fenêtre de terminal
sudo apt-get update && sudo apt-get install ffmpeg

Assurez-vous que ces outils sont installés localement et disponibles dans votre PATH, ou configurez les variables d’environnement FFMPEG_PATH / FFPROBE_PATH pour pointer vers l’exécutable ffmpeg/ffprobe.

Comme indiqué ci-dessus, les LLM multimodaux prennent généralement en charge les images sous forme d’une séquence d’images (ou captures d’écran).

La fonction ffmpeg.extractFrames va rendre des images à partir d’un fichier vidéo et les retourner sous forme de tableau de chemins de fichiers. Vous pouvez utiliser le résultat directement avec defImages.

  • par défaut, extraire les images clés (intra-images)
const frames = await ffmpeg.extractFrames("path_to_video")
defImages(frames)
  • spécifiez un nombre d’images à l’aide de count
const frames = await ffmpeg.extractFrames("...", { count: 10 })
  • spécifiez des horodatages en secondes ou en pourcentages de la durée de la vidéo avec timestamps (ou times)
const frames = await ffmpeg.extractFrames("...", {
timestamps: ["00:00", "05:00"],
})
  • spécifiez la transcription calculée par la fonction transcribe. GenAIScript extraira une image au début de chaque segment.
const transcript = await transcribe("...")
const frames = await ffmpeg.extractFrames("...", { transcript })
  • spécifiez un seuil de scène (entre 0 et 1)
const transcript = await transcribe("...", { sceneThreshold: 0.3 })

La fonction ffmpeg.extractAudio extraira l’audio d’un fichier vidéo au format .wav.

const audio = await ffmpeg.extractAudio("path_to_video")

La conversion vers l’audio se fait automatiquement pour les vidéos lors de l’utilisation de transcribe.

Vous pouvez extraire un extrait d’un fichier vidéo en utilisant ffmpeg.extractClip.

const clip = await ffmpeg.extractClip("path_to_video", {
start: "00:00:10",
duration: 5,
})

Vous pouvez extraire les métadonnées d’un fichier vidéo en utilisant ffmpeg.probe.

const info = await ffmpeg.probe("path_to_video")
const { duration } = info.streams[0]
console.log(`video duration: ${duration} seconds`)

Vous pouvez personnaliser davantage la configuration de ffmpeg en passant outputOptions.

const audio = await ffmpeg.extractAudio("path_to_video", {
outputOptions: "-b:a 16k",
})

Ou interagir directement avec le constructeur de commandes ffmpeg (qui est le constructeur de commandes natif de fluent-ffmpeg). Notez que dans ce cas, vous devez également fournir un « hash » de cache pour éviter le rerendu.

const custom = await ffmpeg.run(
"src/audio/helloworld.mp4",
(cmd) => {
cmd.noAudio()
cmd.keepDisplayAspectRatio()
cmd.autopad()
cmd.size(`200x200`)
return "out.mp4"
},
{ cache: "kar-200x200" }
)

Le cli prend en charge diverses commandes pour exécuter les transformations vidéo.

Fenêtre de terminal
genaiscript video probe myvid.mp4