Skip to content

动作检测

从视频片段中追踪并提取指定人物的动作数据,输出可直接用于驱动 3D 角色的动作文件。支持通过 person_ids 精确锁定多人场景中的特定人物。

典型应用场景

  • 单人动作捕捉:从舞蹈、体育等视频中直接提取人物动作
  • 多人场景精确追踪:配合姿态检测接口,锁定特定人物后再执行动作捕捉

本页使用的 API 参考 POST /videos/motion_detections

基础示例

bash
curl -X POST 'https://api.v2fun.ai/api/v1/videos/motion_detections' \
  -H 'Authorization: Bearer $V2FUN_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "input_video": "videos/example.mp4",
      "start_time_seconds": 1.5,
      "duration_seconds": 3
    }'
javascript
const response = await fetch('https://api.v2fun.ai/api/v1/videos/motion_detections', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer $V2FUN_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "input_video": "videos/example.mp4",
    "start_time_seconds": 1.5,
    "duration_seconds": 3
  }),
});
const data = await response.json();
python
import requests

resp = requests.post(
    'https://api.v2fun.ai/api/v1/videos/motion_detections',
    headers={
        'Authorization': 'Bearer $V2FUN_API_KEY',
        'Content-Type': 'application/json',
    },
    json={
        "input_video": "videos/example.mp4",
        "start_time_seconds": 1.5,
        "duration_seconds": 3
    },
)
print(resp.json())
java
import java.net.URI;
import java.net.http.*;

HttpClient client = HttpClient.newHttpClient();
String body = "{\"input_video\":\"videos/example.mp4\",\"start_time_seconds\":1.5,\"duration_seconds\":3}";
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.v2fun.ai/api/v1/videos/motion_detections"))
    .header("Authorization", "Bearer $V2FUN_API_KEY")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();
HttpResponse<String> response = client.send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

核心用例

视频片段动作捕捉

指定视频、起始时间和时长,系统截取对应片段并追踪其中人物,生成标准化动作数据。可配合 person_ids 在多人场景中精确锁定特定目标。

bash
curl -X POST 'https://api.v2fun.ai/api/v1/videos/motion_detections' \
  -H 'Authorization: Bearer $V2FUN_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "input_video": "videos/example.mp4",
      "start_time_seconds": 0,
      "duration_seconds": 5
    }'
javascript
const response = await fetch('https://api.v2fun.ai/api/v1/videos/motion_detections', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer $V2FUN_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "input_video": "videos/example.mp4",
    "start_time_seconds": 0,
    "duration_seconds": 5
  }),
});
const data = await response.json();
python
import requests

resp = requests.post(
    'https://api.v2fun.ai/api/v1/videos/motion_detections',
    headers={
        'Authorization': 'Bearer $V2FUN_API_KEY',
        'Content-Type': 'application/json',
    },
    json={
        "input_video": "videos/example.mp4",
        "start_time_seconds": 0,
        "duration_seconds": 5
    },
)
print(resp.json())
java
import java.net.URI;
import java.net.http.*;

HttpClient client = HttpClient.newHttpClient();
String body = "{\"input_video\":\"videos/example.mp4\",\"start_time_seconds\":0,\"duration_seconds\":5}";
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.v2fun.ai/api/v1/videos/motion_detections"))
    .header("Authorization", "Bearer $V2FUN_API_KEY")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();
HttpResponse<String> response = client.send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
输入视频
输出结果