You've already forked FrameTour-RenderWorker
u
This commit is contained in:
@@ -23,8 +23,10 @@ def temp_dir():
|
||||
def test_ffmpeg_config():
|
||||
"""测试用FFmpeg配置"""
|
||||
return FFmpegConfig(
|
||||
encoder_args="-c:v h264",
|
||||
video_args="",
|
||||
encoder_args=["-c:v", "h264"],
|
||||
video_args=["-profile:v", "high"],
|
||||
audio_args=["-c:a", "aac"],
|
||||
default_args=["-shortest"],
|
||||
)
|
||||
|
||||
|
||||
@@ -49,9 +51,8 @@ def test_storage_config():
|
||||
def sample_render_task():
|
||||
"""示例渲染任务"""
|
||||
return RenderTask(
|
||||
task_id="test_task_001",
|
||||
template_id="test_template",
|
||||
output_path="test_output.mp4",
|
||||
input_files=["test_input.mp4"],
|
||||
output_file="test_output.mp4",
|
||||
frame_rate=25,
|
||||
effects=["zoom:0,2.0,3.0", "ospeed:1.5"],
|
||||
ext_data={
|
||||
|
||||
@@ -96,7 +96,7 @@ class TestFFmpegCommandBuilder:
|
||||
task.ext_data = {"posJson": "{}"}
|
||||
|
||||
builder = FFmpegCommandBuilder(task)
|
||||
filter_args = []
|
||||
filter_args: list[str] = []
|
||||
|
||||
result_input, result_index = builder._add_effects(filter_args, "[0:v]", 1)
|
||||
|
||||
@@ -112,7 +112,7 @@ class TestFFmpegCommandBuilder:
|
||||
task.ext_data = {"posJson": "{}"}
|
||||
|
||||
builder = FFmpegCommandBuilder(task)
|
||||
filter_args = []
|
||||
filter_args: list[str] = []
|
||||
|
||||
result_input, result_index = builder._add_effects(filter_args, "[0:v]", 1)
|
||||
|
||||
@@ -127,7 +127,7 @@ class TestFFmpegCommandBuilder:
|
||||
task.effects = ["invalid_effect:params"]
|
||||
|
||||
builder = FFmpegCommandBuilder(task)
|
||||
filter_args = []
|
||||
filter_args: list[str] = []
|
||||
|
||||
result_input, result_index = builder._add_effects(filter_args, "[0:v]", 1)
|
||||
|
||||
@@ -141,7 +141,7 @@ class TestFFmpegCommandBuilder:
|
||||
task.effects = []
|
||||
|
||||
builder = FFmpegCommandBuilder(task)
|
||||
filter_args = []
|
||||
filter_args: list[str] = []
|
||||
|
||||
result_input, result_index = builder._add_effects(filter_args, "[0:v]", 1)
|
||||
|
||||
@@ -210,7 +210,7 @@ class TestFFmpegCommandBuilder:
|
||||
task.frame_rate = 30
|
||||
|
||||
builder = FFmpegCommandBuilder(task)
|
||||
filter_args = []
|
||||
filter_args: list[str] = []
|
||||
|
||||
builder._add_effects(filter_args, "[0:v]", 1)
|
||||
|
||||
|
||||
@@ -16,21 +16,41 @@ class MockRenderTask:
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
task_id: str = "test_task",
|
||||
template_id: str = "test_template",
|
||||
effects: List[str] = None,
|
||||
ext_data: Dict[str, Any] = None,
|
||||
input_files: Optional[List[str]] = None,
|
||||
output_file: str = "test_output.mp4",
|
||||
effects: Optional[List[str]] = None,
|
||||
ext_data: Optional[Dict[str, Any]] = None,
|
||||
frame_rate: int = 25,
|
||||
output_path: str = "test_output.mp4",
|
||||
):
|
||||
self.task_id = task_id
|
||||
self.template_id = template_id
|
||||
self.effects = effects or []
|
||||
self.ext_data = ext_data or {}
|
||||
# RenderTask required fields
|
||||
self.input_files = input_files or []
|
||||
self.output_file = output_file
|
||||
self.task_type = "copy" # TaskType.COPY equivalent
|
||||
|
||||
# Optional fields that match RenderTask
|
||||
self.resolution = None
|
||||
self.frame_rate = frame_rate
|
||||
self.output_path = output_path
|
||||
self.input_files = []
|
||||
self.overlays = []
|
||||
self.speed = 1.0
|
||||
self.mute = True
|
||||
self.annexb = False
|
||||
|
||||
# Cut parameters
|
||||
self.zoom_cut = None
|
||||
self.center_cut = None
|
||||
|
||||
# Resource lists
|
||||
self.subtitles: List[str] = []
|
||||
self.luts: List[str] = []
|
||||
self.audios: List[str] = []
|
||||
self.overlays: List[str] = []
|
||||
self.effects = effects or []
|
||||
|
||||
# Extension data
|
||||
self.ext_data = ext_data or {}
|
||||
|
||||
# Legacy compatibility
|
||||
self.task_id = "test_task"
|
||||
self.template_id = "test_template"
|
||||
self.use_center_cut = False
|
||||
self.use_zoom_cut = False
|
||||
self.audio_file = None
|
||||
|
||||
Reference in New Issue
Block a user