media-agent-mcp 0.4.7__tar.gz → 0.4.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/PKG-INFO +1 -1
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/pyproject.toml +1 -1
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/video/processor.py +24 -11
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/PKG-INFO +1 -1
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/README.md +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/setup.cfg +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/__init__.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/__init__.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/openaiedit.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seed16.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seedance.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seededit.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seedream.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/async_server.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/async_wrapper.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/__init__.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/image_selector.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/video_selector.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/server.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/storage/__init__.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/storage/tos_client.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/video/__init__.py +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/SOURCES.txt +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/dependency_links.txt +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/entry_points.txt +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/requires.txt +0 -0
- {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/top_level.txt +0 -0
@@ -8,6 +8,7 @@ import json
|
|
8
8
|
import logging
|
9
9
|
import os
|
10
10
|
import tempfile
|
11
|
+
import time
|
11
12
|
import uuid
|
12
13
|
from typing import Optional, Dict, Any
|
13
14
|
from urllib.parse import urlparse
|
@@ -87,7 +88,7 @@ def concat_videos(video_urls: list, output_path: Optional[str] = None) -> Dict[s
|
|
87
88
|
}
|
88
89
|
|
89
90
|
if not output_path:
|
90
|
-
output_path = f"concatenated_{int(
|
91
|
+
output_path = f"concatenated_{int(time.time())}.mp4"
|
91
92
|
|
92
93
|
# Download videos if they are URLs and prepare local paths
|
93
94
|
video_paths = []
|
@@ -121,25 +122,37 @@ def concat_videos(video_urls: list, output_path: Optional[str] = None) -> Dict[s
|
|
121
122
|
|
122
123
|
# Get video properties from the first video
|
123
124
|
first_cap = video_captures[0]
|
124
|
-
fps =
|
125
|
+
fps = first_cap.get(cv2.CAP_PROP_FPS)
|
126
|
+
if fps <= 0:
|
127
|
+
logger.warning("Invalid FPS detected, setting to 30.")
|
128
|
+
fps = 30
|
129
|
+
else:
|
130
|
+
fps = int(fps)
|
125
131
|
width = int(first_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
|
126
132
|
height = int(first_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
127
|
-
|
133
|
+
|
128
134
|
# Create video writer with H.264 codec for better compatibility
|
129
|
-
|
135
|
+
logger.info("Initializing video writer with 'avc1' (H.264) codec.")
|
136
|
+
fourcc = cv2.VideoWriter_fourcc(*'avc1')
|
130
137
|
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
|
131
|
-
|
138
|
+
|
132
139
|
# Check if video writer was initialized successfully
|
133
140
|
if not out.isOpened():
|
134
|
-
|
141
|
+
logger.warning("Failed to initialize video writer with 'avc1' codec. Falling back to 'mp4v'.")
|
135
142
|
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
136
143
|
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
|
137
144
|
if not out.isOpened():
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
145
|
+
logger.warning("Failed to initialize video writer with 'mp4v' codec. Falling back to 'XVID'.")
|
146
|
+
fourcc = cv2.VideoWriter_fourcc(*'XVID')
|
147
|
+
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
|
148
|
+
if not out.isOpened():
|
149
|
+
logger.error("Failed to initialize video writer with 'avc1', 'mp4v', or 'XVID' codecs.")
|
150
|
+
return {
|
151
|
+
"status": "error",
|
152
|
+
"data": None,
|
153
|
+
"message": "Could not initialize video writer with any of the supported codecs."
|
154
|
+
}
|
155
|
+
logger.info("Video writer initialized successfully.")
|
143
156
|
|
144
157
|
# Write frames from all videos in order
|
145
158
|
for i, cap in enumerate(video_captures):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/dependency_links.txt
RENAMED
File without changes
|
{media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|