Recadrer une vidéo pour les réseaux
Recadrer une vidéo pour les réseaux, c’est adapter la forme de l’image au format attendu par chaque plateforme : le vertical plein écran, le carré du fil ou le paysage classique. L’outil recentre l’image sur l’essentiel plutôt que d’ajouter des bandes noires autour.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Un format par plateforme
Une vidéo filmée en paysage s’affiche mal dans un fil pensé pour le vertical : bandes noires, image minuscule, message noyé. Le recadrage change le rapport de l’image — vertical 9:16, carré 1:1 ou paysage 16:9 — pour occuper tout l’écran là où la vidéo sera vue. Vous choisissez le format cible selon la plateforme visée, et l’outil retaille l’image en conséquence, sans déformer les proportions du contenu conservé.
Recentrer sur l’essentiel
Passer d’un paysage à un vertical impose de retirer des côtés de l’image : le sujet doit rester dans le cadre. L’outil vise à conserver la zone la plus utile — un visage, un produit, l’action principale — plutôt que de couper au hasard. Sur une vidéo où le sujet bouge beaucoup d’un bord à l’autre, un contrôle du résultat reste conseillé avant publication, le temps d’affiner le cadrage.
Limites, tarif et statut
La vidéo peut atteindre 500 Mo et 60 min. Le service se paie à l’usage, en dollars US : $0.077 par requête, puis $0.0045 par minute. Une vidéo de trois minutes revient à environ $0.09, sans abonnement. Cette capacité est en version bêta : elle fonctionne, mais le cadrage automatique s’affine encore, et elle est par ailleurs en cours de déploiement, d’abord sur cette page, puis via l’API.
Cas d’usage
Vertical plein écran
Studio Lumen SAS convertit une vidéo paysage en format vertical 9:16 pour qu’elle remplisse l’écran du mobile dans un fil, sans bandes noires.
Carré pour le fil
Une créatrice recadre au format carré une démonstration filmée à l’horizontale, mieux adaptée à l’aperçu d’un fil que le paysage d’origine.
Décliner une même vidéo
Atelier Garnier SARL tire du même tournage une version verticale et une version carrée, pour publier sur deux plateformes aux formats différents.
Questions fréquentes
Quels formats de recadrage sont proposés ?
Le vertical 9:16 pour le plein écran mobile, le carré 1:1 pour le fil, et le paysage 16:9 classique. Vous choisissez selon la plateforme où la vidéo sera publiée.
L’image est-elle déformée par le recadrage ?
Non. Les proportions du contenu conservé sont respectées : le recadrage retire des bords pour changer de format, il n’étire pas l’image.
Le sujet reste-t-il bien dans le cadre ?
L’outil vise à garder la zone la plus utile de l’image. Sur une vidéo où le sujet se déplace beaucoup, vérifiez le résultat avant publication : le cadrage automatique s’affine encore, la capacité étant en bêta.
Combien coûte un recadrage ?
Le tarif est de $0.077 par requête, plus $0.0045 par minute. Trois minutes reviennent à environ $0.09, en dollars US, sans abonnement.
Ma vidéo est-elle supprimée après le recadrage ?
Oui. Le fichier passe par nos serveurs le temps du réencodage, via un transfert chiffré, puis l’original et la version recadrée sont effacés une fois le résultat récupéré.
L’outil est-il déjà disponible ?
Il est en bêta et en cours de déploiement. Le tarif est publié ; l’exécution ouvrira sous peu, sur cette page puis via l’API.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/video/social-crop \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/video/social-crop", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/social-crop",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/social-crop", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/social-crop", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"audio": "https://ejemplo.com/audio.mp3"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.social_crop",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |