diff --git a/facefusion/apis/asset_helper.py b/facefusion/apis/asset_helper.py index f23d39be..1b65e10f 100644 --- a/facefusion/apis/asset_helper.py +++ b/facefusion/apis/asset_helper.py @@ -104,13 +104,13 @@ async def save_asset_files(upload_files : List[UploadFile]) -> List[str]: asset_file_name = uuid.uuid4().hex asset_path = os.path.join(temp_path, asset_file_name + file_extension) - upload_queue : UploadQueue = queue.SimpleQueue() + upload_queue : UploadQueue = queue.SimpleQueue() #todo: not sure if queue is even needed process_manager.start() upload_task = asyncio.create_task(feed_upload_queue(upload_file, upload_queue)) - if media_type == 'audio' and await asyncio.to_thread(ffmpeg.sanitize_audio, file_format, upload_queue.get, asset_path, api_security_strategy): + if media_type == 'audio' and await asyncio.to_thread(ffmpeg.sanitize_audio, file_format, upload_queue.get, asset_path, api_security_strategy): #todo: do not pass format, do not pass queue but bytes if same speed asset_paths.append(asset_path) if media_type == 'image' and await asyncio.to_thread(ffmpeg.sanitize_image, file_format, upload_queue.get, asset_path): diff --git a/facefusion/ffmpeg.py b/facefusion/ffmpeg.py index e70df943..af137116 100644 --- a/facefusion/ffmpeg.py +++ b/facefusion/ffmpeg.py @@ -56,7 +56,7 @@ def run_ffmpeg_with_pipe(commands : List[Command], media_chunk_reader : MediaChu process = subprocess.Popen(commands, stdin = subprocess.PIPE, stderr = subprocess.PIPE, stdout = subprocess.PIPE) while media_chunk := media_chunk_reader(): - if process.poll() is not None: + if process.poll() is not None: #todo - poll not allowed break process.stdin.write(media_chunk) @@ -309,7 +309,7 @@ def concat_video(output_path : str, temp_output_paths : List[str]) -> bool: def sanitize_audio(audio_format : str, media_chunk_reader : MediaChunkReader, asset_path : str, security_strategy : ApiSecurityStrategy) -> bool: - audio_pipe_format = ffmpeg_builder.resolve_audio_pipe_format(audio_format) + audio_pipe_format = ffmpeg_builder.resolve_audio_pipe_format(audio_format) #todo: does not make sense this methods are in the builder if security_strategy == 'strict': commands = ffmpeg_builder.chain( @@ -330,7 +330,7 @@ def sanitize_audio(audio_format : str, media_chunk_reader : MediaChunkReader, as def sanitize_image(image_format : str, media_chunk_reader : MediaChunkReader, asset_path : str) -> bool: - image_pipe_format = ffmpeg_builder.resolve_image_pipe_format(image_format) + image_pipe_format = ffmpeg_builder.resolve_image_pipe_format(image_format) #todo: does not make sense this methods are in the builder commands = ffmpeg_builder.chain( ffmpeg_builder.pipe_image(image_pipe_format), ffmpeg_builder.deep_copy_image(), @@ -341,14 +341,14 @@ def sanitize_image(image_format : str, media_chunk_reader : MediaChunkReader, as def sanitize_video(video_format : str, media_chunk_reader : MediaChunkReader, asset_path : str, security_strategy : ApiSecurityStrategy) -> bool: - video_pipe_format = ffmpeg_builder.resolve_video_pipe_format(video_format) + video_pipe_format = ffmpeg_builder.resolve_video_pipe_format(video_format) #todo: does not make sense this methods are in the builder if security_strategy == 'strict': commands = ffmpeg_builder.chain( ffmpeg_builder.pipe_input(video_pipe_format), - ffmpeg_builder.set_video_encoder('libx264'), - ffmpeg_builder.set_video_preset('libx264', 'ultrafast'), - ffmpeg_builder.set_pixel_format('libx264'), + ffmpeg_builder.set_video_encoder('libx264'), #todo - remove hard coded + ffmpeg_builder.set_video_preset('libx264', 'ultrafast'), #todo - remove hard coded + ffmpeg_builder.set_pixel_format('libx264'), #todo - remove hard coded ffmpeg_builder.deep_copy_video(), ffmpeg_builder.deep_copy_audio(), ffmpeg_builder.strip_metadata(), diff --git a/facefusion/ffprobe.py b/facefusion/ffprobe.py index 16bff1cb..68d38078 100644 --- a/facefusion/ffprobe.py +++ b/facefusion/ffprobe.py @@ -32,7 +32,7 @@ def get_audio_entries(audio_path : str) -> Dict[str, str]: return audio_entries -def detect_audio_codec(audio_path : str) -> Optional[str]: +def detect_audio_codec(audio_path : str) -> Optional[str]: #todo: extend get_audio_entries and reuse it commands = ffprobe_builder.chain( ffprobe_builder.show_entries([ 'codec_name' ]), ffprobe_builder.format_to_value(), @@ -74,7 +74,7 @@ def detect_audio_frame_total(audio_path : str) -> Optional[int]: return None -def detect_video_codec(video_path : str) -> Optional[str]: +def detect_video_codec(video_path : str) -> Optional[str]: #todo: could be generic entries method like audio has commands = ffprobe_builder.chain( ffprobe_builder.show_entries([ 'codec_name' ]), ffprobe_builder.format_to_value(),