Ffmpeg Api Images to Video
Integrar
ffmpeg-api/images-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ffmpeg-api/images-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/ffmpeg-api/images-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1,
},
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ffmpeg-api/images-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/pt-PT/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "ffmpeg-api/images-to-video",
"input": {
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
}
}
Chame o modelo Ffmpeg Api Images to Video (ffmpeg-api/images-to-video) através da Doitong API. Documentação para agentes: https://doitong.com/pt-PT/developers/models/ffmpeg-api/images-to-video.md
POST https://api.doitong.com/v1/run/ffmpeg-api/images-to-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
}
Se o estado da resposta for "queued" ou "running", consulte GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 repetidamente até ficar "succeeded"; os ficheiros estão em outputs[].url. POST https://api.doitong.com/v1/quote/ffmpeg-api/images-to-video com o mesmo corpo devolve o preço exato antes da execução.
Este pedido: ≈0,005 $ 5 créditos da API Executar nesta página
A sua nova chave de API. É apresentada apenas agora e já está inserida no código e no campo da chave de API abaixo. Mantenha-a secreta: nunca a coloque em código que seja executado num navegador.
O seu primeiro resultado aparece aqui
Crie um pedido abaixo e execute-o com a sua chave de API. As saídas são copiadas para o nosso armazenamento, guardadas para sempre ou durante 7 dias gratuitamente.
Criar um pedido
Os controlos são gerados a partir do esquema do modelo. O código e o preço são atualizados à medida que os altera.
/run/ffmpeg-api/images-to-video?wait=20
cotação → 0,005 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ffmpeg-api/images-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/ffmpeg-api/images-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1,
},
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ffmpeg-api/images-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "ffmpeg-api/images-to-video",
"input": {
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
},
"wait_seconds": 20
}
}
}
Executar este pedido
A sua chave permanece neste navegador: é enviada apenas para a Doitong API e guardada em localStorage apenas se selecionar Lembrar. Obter uma chave de API
Sobre Ffmpeg Api Images to Video
Ferramenta de processamento que transforma uma lista ordenada de imagens num MP4. Recebe 1 a 200 entradas em `images`, e cada imagem permanece durante o número de fotogramas especificado antes de passar à seguinte. `fps` define a taxa de fotogramas da saída entre 1 e 120, com predefinição 24. Não há geração envolvida.
Parâmetros
imagesobrigatório
images[].urlobrigatório
images[].framesobrigatório
fpsopcional
Resultado
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "ffmpeg-api/images-to-video",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 5,
"usd": "0.005",
"charged": 5,
"refunded": 0
},
"input": {
"images": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frames": 1
}
]
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
}
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Campos do resultado
- video
- object {url, content_type, file_name, file_size}Vídeo gerado no formato MP4.
Outras variantes de FFmpeg API
Mais modelos: Imagem para vídeo
Para agentes de IA: esta página em Markdown está disponível em https://doitong.com/pt-PT/developers/models/ffmpeg-api/images-to-video.md. Todos os modelos e guias: https://doitong.com/developers/llms.txt