media-agent-mcp 0.4.8__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.8 → media_agent_mcp-0.4.9}/PKG-INFO +1 -1
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/pyproject.toml +1 -1
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/video/processor.py +22 -10
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/PKG-INFO +1 -1
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/README.md +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/setup.cfg +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/__init__.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/__init__.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/openaiedit.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seed16.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seedance.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seededit.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seedream.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/async_server.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/async_wrapper.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/__init__.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/image_selector.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/video_selector.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/server.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/storage/__init__.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/storage/tos_client.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp/video/__init__.py +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/SOURCES.txt +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/dependency_links.txt +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/entry_points.txt +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/requires.txt +0 -0
- {media_agent_mcp-0.4.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/top_level.txt +0 -0
@@ -122,25 +122,37 @@ def concat_videos(video_urls: list, output_path: Optional[str] = None) -> Dict[s
|
|
122
122
|
|
123
123
|
# Get video properties from the first video
|
124
124
|
first_cap = video_captures[0]
|
125
|
-
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)
|
126
131
|
width = int(first_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
|
127
132
|
height = int(first_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
128
|
-
|
133
|
+
|
129
134
|
# Create video writer with H.264 codec for better compatibility
|
130
|
-
|
135
|
+
logger.info("Initializing video writer with 'avc1' (H.264) codec.")
|
136
|
+
fourcc = cv2.VideoWriter_fourcc(*'avc1')
|
131
137
|
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
|
132
|
-
|
138
|
+
|
133
139
|
# Check if video writer was initialized successfully
|
134
140
|
if not out.isOpened():
|
135
|
-
|
141
|
+
logger.warning("Failed to initialize video writer with 'avc1' codec. Falling back to 'mp4v'.")
|
136
142
|
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
137
143
|
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
|
138
144
|
if not out.isOpened():
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
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.")
|
144
156
|
|
145
157
|
# Write frames from all videos in order
|
146
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.8 → 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.8 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/dependency_links.txt
RENAMED
File without changes
|
{media_agent_mcp-0.4.8 → 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
|