Skip to content

fix: Handle Edge TTS failures with Azure fallback and stabilize media pipeline (Issue #785)#787

Closed
JAAAACCCCCCKKKK wants to merge 1 commit intoharry0703:mainfrom
JAAAACCCCCCKKKK:main
Closed

fix: Handle Edge TTS failures with Azure fallback and stabilize media pipeline (Issue #785)#787
JAAAACCCCCCKKKK wants to merge 1 commit intoharry0703:mainfrom
JAAAACCCCCCKKKK:main

Conversation

@JAAAACCCCCCKKKK
Copy link
Copy Markdown

This pull request introduces improvements to video and voice processing services, focusing on robustness, error handling, and resource management. The most significant changes include enhanced file handling for video merging, improved cleanup of video/image clip resources, and a new fallback mechanism for voice synthesis using Azure Speech SDK when Edge TTS fails. Additionally, the test suite now covers the voice synthesis fallback logic.

Video Processing Improvements:

  • Added checks and file removal before overwriting existing video files during merging, and switched from os.rename to os.replace for safer file operations in combine_videos (app/services/video.py). [1] [2]
  • Improved resource cleanup by ensuring all video and image clips are closed after processing, even when exceptions occur in preprocess_video (app/services/video.py). [1] [2]
  • Ensured temporary files are deleted before copying the base video during merging (app/services/video.py).

Voice Synthesis Enhancements:

  • Implemented a fallback to Azure Speech SDK in azure_tts_v1 when Edge TTS encounters network errors, with improved logging and credential checks (app/services/voice.py). [1] [2]
  • Added _ensure_voice_directory to create necessary directories before saving voice files, used throughout voice synthesis functions (app/services/voice.py). [1] [2] [3]

Testing Improvements:

  • Added a unit test for the Azure TTS fallback logic, verifying that the fallback is triggered and behaves as expected (test/services/test_voice.py).

Miscellaneous:

  • Improved resource cleanup in video tests by ensuring clips are closed after inspection (test/services/test_video.py).
  • Added missing import for ClientConnectorError in voice service (app/services/voice.py).

@JAAAACCCCCCKKKK
Copy link
Copy Markdown
Author

复现日志:
***** Current directory: C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\ *****
***** FFmpeg file: C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe *****
***** ImageMagick file: C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\imagemagic\ImageMagick-7.1.1-29-portable-Q16-x64\magick.exe *****

You can now view your Streamlit app in your browser.

Local URL: http://localhost:8501
Network URL: http://10.41.133.161:8501

******** sys.path ********
['C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\webui\Main.py', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\webui', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\python\python310.zip', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\python\DLLs', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\python\lib', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\python', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\python\lib\site-packages', 'C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo']

2025-10-01 22:06:54.502 | INFO | app.config.config:load_config:23 - load config from file: C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo/config.toml
2025-10-01 22:06:54.518 | INFO | app.config.config::78 - MoneyPrinterTurbo v1.2.6
2025-10-01 22:09:37 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:09:39 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\temp\tmp-voice-bb306042-a584-4688-8c4a-97b038c6e351.mp3
2025-10-01 22:09:52 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:09:54 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\temp\tmp-voice-d40441fd-5357-40ea-80da-ee5e50d6a9ff.mp3
2025-10-01 22:10:54 | INFO | "./webui\Main.py:960": - 开始生成视频
2025-10-01 22:10:54 | INFO | "./webui\Main.py:961": - {
"video_subject": "asjfyg",
"video_script": "ADSAKHSBFDJHZDF:ljsadhbFKAUGHSDF",
"video_terms": "Aweoeyifuguhrisuoeytg",
"video_aspect": "9:16",
"video_concat_mode": "random",
"video_transition_mode": "None",
"video_clip_duration": 3,
"video_count": 1,
"video_source": "local",
"video_materials": [
{
"provider": "local",
"url": "C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4",
"duration": 0
},
{
"provider": "local",
"url": "C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4",
"duration": 0
}
],
"video_language": "zh-CN",
"voice_name": "zh-CN-XiaoxiaoNeural-Female",
"voice_volume": 1.0,
"voice_rate": 1.0,
"bgm_type": "random",
"bgm_file": "",
"bgm_volume": 0.2,
"subtitle_enabled": true,
"subtitle_position": "bottom",
"custom_position": 70.0,
"font_name": "MicrosoftYaHeiBold.ttc",
"text_fore_color": "#FFFFFF",
"text_background_color": true,
"font_size": 60,
"stroke_color": "#000000",
"stroke_width": 1.5,
"n_threads": 2,
"paragraph_number": 1
}
2025-10-01 22:10:54 | INFO | "./app\services\task.py:211": start - start task: 3f3a6f4b-4251-4670-8074-7adcbd6542ef, stop_at: video
2025-10-01 22:10:54 | INFO | "./app\services\task.py:17": generate_script -

generating video script

2025-10-01 22:10:54 | DEBUG | "./app\services\task.py:26": generate_script - video script:
ADSAKHSBFDJHZDF:ljsadhbFKAUGHSDF
2025-10-01 22:10:54 | INFO | "./app\services\task.py:74": generate_audio -

generating audio

2025-10-01 22:10:54 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:10:55 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\audio.mp3
2025-10-01 22:10:55 | INFO | "./app\services\task.py:102": generate_subtitle -

generating subtitle, provider: edge

2025-10-01 22:10:55 | INFO | "./app\services\voice.py:1532": create_subtitle - completed, subtitle file created: .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\subtitle.srt, duration: 4.237
2025-10-01 22:10:55 | INFO | "./app\services\task.py:128": get_video_materials -

preprocess local materials

{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:10:56 | INFO | "./app\services\task.py:175": generate_final_videos -

combining video: 1 => .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\combined-1.mp4

2025-10-01 22:10:56 | INFO | "./app\services\video.py:129": combine_videos - audio duration: 4.82 seconds
2025-10-01 22:10:56 | INFO | "./app\services\video.py:133": combine_videos - maximum clip duration: 3 seconds
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:10:56 | DEBUG | "./app\services\video.py:162": combine_videos - total subclipped items: 2
2025-10-01 22:10:56 | DEBUG | "./app\services\video.py:169": combine_videos - processing clip 1: 580x751, current duration: 0.00s, remaining: 4.82s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:10:56 | DEBUG | "./app\services\video.py:179": combine_videos - resizing clip, source: 580x751, ratio: 0.77, target: 1080x1920, ratio: 0.56
2025-10-01 22:12:01 | DEBUG | "./app\services\video.py:169": combine_videos - processing clip 2: 580x751, current duration: 3.00s, remaining: 1.82s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:12:01 | DEBUG | "./app\services\video.py:179": combine_videos - resizing clip, source: 580x751, ratio: 0.77, target: 1080x1920, ratio: 0.56
2025-10-01 22:12:30 | INFO | "./webui\Main.py:960": - 开始生成视频
2025-10-01 22:12:30 | INFO | "./webui\Main.py:961": - {
"video_subject": "asjfyg",
"video_script": "ADSAKHSBFDJHZDF:ljsadhbFKAUGHSDF",
"video_terms": "Aweoeyifuguhrisuoeytg",
"video_aspect": "9:16",
"video_concat_mode": "random",
"video_transition_mode": "None",
"video_clip_duration": 3,
"video_count": 1,
"video_source": "local",
"video_materials": [
{
"provider": "local",
"url": "C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4",
"duration": 0
},
{
"provider": "local",
"url": "C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4",
"duration": 0
}
],
"video_language": "zh-CN",
"voice_name": "zh-CN-XiaoxiaoNeural-Female",
"voice_volume": 1.0,
"voice_rate": 1.0,
"bgm_type": "random",
"bgm_file": "",
"bgm_volume": 0.2,
"subtitle_enabled": true,
"subtitle_position": "bottom",
"custom_position": 70.0,
"font_name": "MicrosoftYaHeiBold.ttc",
"text_fore_color": "#FFFFFF",
"text_background_color": true,
"font_size": 60,
"stroke_color": "#000000",
"stroke_width": 1.5,
"n_threads": 2,
"paragraph_number": 1
}
2025-10-01 22:12:30 | INFO | "./app\services\task.py:211": start - start task: a4b3ebcd-00b1-4942-9fce-a6642c9fcc7a, stop_at: video
2025-10-01 22:12:30 | INFO | "./app\services\task.py:17": generate_script -

generating video script

2025-10-01 22:12:30 | DEBUG | "./app\services\task.py:26": generate_script - video script:
ADSAKHSBFDJHZDF:ljsadhbFKAUGHSDF
2025-10-01 22:12:30 | INFO | "./app\services\task.py:74": generate_audio -

generating audio

2025-10-01 22:12:30 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:12:32 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\tasks\a4b3ebcd-00b1-4942-9fce-a6642c9fcc7a\audio.mp3
2025-10-01 22:12:32 | INFO | "./app\services\task.py:102": generate_subtitle -

generating subtitle, provider: edge

2025-10-01 22:12:32 | INFO | "./app\services\voice.py:1532": create_subtitle - completed, subtitle file created: .\storage\tasks\a4b3ebcd-00b1-4942-9fce-a6642c9fcc7a\subtitle.srt, duration: 4.237
2025-10-01 22:12:32 | INFO | "./app\services\task.py:128": get_video_materials -

preprocess local materials

{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:12:32 | INFO | "./app\services\task.py:175": generate_final_videos -

combining video: 1 => .\storage\tasks\a4b3ebcd-00b1-4942-9fce-a6642c9fcc7a\combined-1.mp4

2025-10-01 22:12:33 | INFO | "./app\services\video.py:129": combine_videos - audio duration: 4.82 seconds
2025-10-01 22:12:33 | INFO | "./app\services\video.py:133": combine_videos - maximum clip duration: 3 seconds
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:12:33 | DEBUG | "./app\services\video.py:162": combine_videos - total subclipped items: 2
2025-10-01 22:12:33 | DEBUG | "./app\services\video.py:169": combine_videos - processing clip 1: 580x751, current duration: 0.00s, remaining: 4.82s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\42c8609d-c50d-4ffe-8673-608b4089f2ec_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:12:33 | DEBUG | "./app\services\video.py:179": combine_videos - resizing clip, source: 580x751, ratio: 0.77, target: 1080x1920, ratio: 0.56
2025-10-01 22:13:00 | INFO | "./app\services\video.py:244": combine_videos - starting clip merging process
2025-10-01 22:13:00 | INFO | "./app\services\video.py:271": combine_videos - merging clip 1/1, duration: 3.00s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.1.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [1080, 1920], 'bitrate': 344, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.3.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 349, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High)', 'video_size': [1080, 1920], 'video_bitrate': 344, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef/temp-merged-video.mp4 -loglevel error -f image2pipe -vf scale=1080:1920 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.1.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [1080, 1920], 'bitrate': 369, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.3.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 374, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High)', 'video_size': [1080, 1920], 'video_bitrate': 369, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef/temp-clip-2.mp4 -loglevel error -f image2pipe -vf scale=1080:1920 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:13:07 | INFO | "./app\services\video.py:311": combine_videos - video combining completed
2025-10-01 22:13:07 | INFO | "./app\services\task.py:192": generate_final_videos -

generating video: 1 => .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\final-1.mp4

2025-10-01 22:13:07 | INFO | "./app\services\video.py:379": generate_video - generating video: 1080 x 1920
2025-10-01 22:13:07 | INFO | "./app\services\video.py:380": generate_video - ① video: .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\combined-1.mp4
2025-10-01 22:13:07 | INFO | "./app\services\video.py:381": generate_video - ② audio: .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\audio.mp3
2025-10-01 22:13:07 | INFO | "./app\services\video.py:382": generate_video - ③ subtitle: .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\subtitle.srt
2025-10-01 22:13:07 | INFO | "./app\services\video.py:383": generate_video - ④ output: .\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\final-1.mp4
2025-10-01 22:13:07 | INFO | "./app\services\video.py:398": generate_video - ⑤ font: C:/Users/a1523/Downloads/MoneyPrinterTurbo-Portable-Windows-1.2.6/MoneyPrinterTurbo/resource/fonts/MicrosoftYaHeiBold.ttc
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.1.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [1080, 1920], 'bitrate': 333, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.3.100 libx264'}}], 'input_number': 0}], 'duration': 6.0, 'bitrate': 337, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High)', 'video_size': [1080, 1920], 'video_bitrate': 333, 'video_fps': 30.0, 'video_duration': 6.0, 'video_n_frames': 180}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\tasks\3f3a6f4b-4251-4670-8074-7adcbd6542ef\combined-1.mp4 -loglevel error -f image2pipe -vf scale=1080:1920 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:13:21 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:13:23 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\temp\tmp-voice-eedf8098-d6f8-4885-aee5-0f16059b9de2.mp3
2025-10-01 22:13:26 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:13:27 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\temp\tmp-voice-4b51a2d8-4a76-43ee-8b99-adb53ff7531a.mp3
2025-10-01 22:13:38 | DEBUG | "./app\services\video.py:169": combine_videos - processing clip 2: 580x751, current duration: 3.00s, remaining: 1.82s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\880545fd-db24-481e-9219-a324a79e08f2_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:13:39 | DEBUG | "./app\services\video.py:179": combine_videos - resizing clip, source: 580x751, ratio: 0.77, target: 1080x1920, ratio: 0.56
2025-10-01 22:13:39 | INFO | "./webui\Main.py:960": - 开始生成视频
2025-10-01 22:13:39 | INFO | "./webui\Main.py:961": - {
"video_subject": "TASFDKFYLHN:AOI",
"video_script": "SDV给;NA“OSK反对者士大夫看见A{OSfmi",
"video_terms": "zsskyfigbf'gASPGfy'mszdkojfg",
"video_aspect": "9:16",
"video_concat_mode": "random",
"video_transition_mode": "None",
"video_clip_duration": 3,
"video_count": 1,
"video_source": "local",
"video_materials": [
{
"provider": "local",
"url": "C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\aa381880-8d5a-4e71-ba11-33558b76b9d6_2.png.mp4",
"duration": 0
},
{
"provider": "local",
"url": "C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\013363f4-06c9-42ad-89da-be65fb8e1a0f_3.png.mp4",
"duration": 0
}
],
"video_language": "zh-CN",
"voice_name": "zh-CN-XiaoxiaoNeural-Female",
"voice_volume": 1.0,
"voice_rate": 1.0,
"bgm_type": "random",
"bgm_file": "",
"bgm_volume": 0.2,
"subtitle_enabled": true,
"subtitle_position": "bottom",
"custom_position": 70.0,
"font_name": "MicrosoftYaHeiBold.ttc",
"text_fore_color": "#FFFFFF",
"text_background_color": true,
"font_size": 60,
"stroke_color": "#000000",
"stroke_width": 1.5,
"n_threads": 2,
"paragraph_number": 1
}
2025-10-01 22:13:39 | INFO | "./app\services\task.py:211": start - start task: eb0762bc-f525-4e5b-b16f-d0ff6c57c102, stop_at: video
2025-10-01 22:13:39 | INFO | "./app\services\task.py:17": generate_script -

generating video script

2025-10-01 22:13:39 | DEBUG | "./app\services\task.py:26": generate_script - video script:
SDV给;NA“OSK反对者士大夫看见A{OSfmi
2025-10-01 22:13:39 | INFO | "./app\services\task.py:74": generate_audio -

generating audio

2025-10-01 22:13:39 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: zh-CN-XiaoxiaoNeural, try: 1
2025-10-01 22:13:41 | INFO | "./app\services\voice.py:1164": azure_tts_v1 - Edge TTS completed, output file: .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\audio.mp3
2025-10-01 22:13:41 | INFO | "./app\services\task.py:102": generate_subtitle -

generating subtitle, provider: edge

2025-10-01 22:13:41 | INFO | "./app\services\voice.py:1532": create_subtitle - completed, subtitle file created: .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\subtitle.srt, duration: 4.938
2025-10-01 22:13:41 | INFO | "./app\services\task.py:128": get_video_materials -

preprocess local materials

{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\aa381880-8d5a-4e71-ba11-33558b76b9d6_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\013363f4-06c9-42ad-89da-be65fb8e1a0f_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:13:42 | INFO | "./app\services\task.py:175": generate_final_videos -

combining video: 1 => .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\combined-1.mp4

2025-10-01 22:13:42 | INFO | "./app\services\video.py:129": combine_videos - audio duration: 5.52 seconds
2025-10-01 22:13:42 | INFO | "./app\services\video.py:133": combine_videos - maximum clip duration: 3 seconds
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\aa381880-8d5a-4e71-ba11-33558b76b9d6_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\013363f4-06c9-42ad-89da-be65fb8e1a0f_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:13:42 | DEBUG | "./app\services\video.py:162": combine_videos - total subclipped items: 2
2025-10-01 22:13:42 | DEBUG | "./app\services\video.py:169": combine_videos - processing clip 1: 580x751, current duration: 0.00s, remaining: 5.52s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 180, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 185, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 180, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\aa381880-8d5a-4e71-ba11-33558b76b9d6_2.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:13:42 | DEBUG | "./app\services\video.py:179": combine_videos - resizing clip, source: 580x751, ratio: 0.77, target: 1080x1920, ratio: 0.56
2025-10-01 22:14:44 | SUCCESS | "./app\services\task.py:312": start - task 3f3a6f4b-4251-4670-8074-7adcbd6542ef finished, generated 1 videos.
2025-10-01 22:14:52 | INFO | "./app\services\video.py:244": combine_videos - starting clip merging process
2025-10-01 22:14:56 | DEBUG | "./app\services\video.py:169": combine_videos - processing clip 2: 580x751, current duration: 3.00s, remaining: 2.52s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.7.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [580, 751], 'bitrate': 190, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High 4:4:4 Predictive)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.19.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 195, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High 4:4:4 Predictive)', 'video_size': [580, 751], 'video_bitrate': 190, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\local_videos\013363f4-06c9-42ad-89da-be65fb8e1a0f_3.png.mp4 -loglevel error -f image2pipe -vf scale=580:751 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:14:56 | DEBUG | "./app\services\video.py:179": combine_videos - resizing clip, source: 580x751, ratio: 0.77, target: 1080x1920, ratio: 0.56
2025-10-01 22:15:49 | INFO | "./app\services\video.py:244": combine_videos - starting clip merging process
2025-10-01 22:15:49 | INFO | "./app\services\video.py:271": combine_videos - merging clip 1/1, duration: 3.00s
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.1.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [1080, 1920], 'bitrate': 344, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.3.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 349, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High)', 'video_size': [1080, 1920], 'video_bitrate': 344, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102/temp-merged-video.mp4 -loglevel error -f image2pipe -vf scale=1080:1920 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.1.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [1080, 1920], 'bitrate': 369, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.3.100 libx264'}}], 'input_number': 0}], 'duration': 3.0, 'bitrate': 374, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High)', 'video_size': [1080, 1920], 'video_bitrate': 369, 'video_fps': 30.0, 'video_duration': 3.0, 'video_n_frames': 90}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102/temp-clip-2.mp4 -loglevel error -f image2pipe -vf scale=1080:1920 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:15:53 | INFO | "./app\services\video.py:311": combine_videos - video combining completed
2025-10-01 22:15:53 | INFO | "./app\services\task.py:192": generate_final_videos -

generating video: 1 => .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\final-1.mp4

2025-10-01 22:15:53 | INFO | "./app\services\video.py:379": generate_video - generating video: 1080 x 1920
2025-10-01 22:15:53 | INFO | "./app\services\video.py:380": generate_video - ① video: .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\combined-1.mp4
2025-10-01 22:15:53 | INFO | "./app\services\video.py:381": generate_video - ② audio: .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\audio.mp3
2025-10-01 22:15:53 | INFO | "./app\services\video.py:382": generate_video - ③ subtitle: .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\subtitle.srt
2025-10-01 22:15:53 | INFO | "./app\services\video.py:383": generate_video - ④ output: .\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\final-1.mp4
2025-10-01 22:15:53 | INFO | "./app\services\video.py:398": generate_video - ⑤ font: C:/Users/a1523/Downloads/MoneyPrinterTurbo-Portable-Windows-1.2.6/MoneyPrinterTurbo/resource/fonts/MicrosoftYaHeiBold.ttc
{'video_found': True, 'audio_found': False, 'metadata': {'major_brand': 'isom', 'minor_version': '512', 'compatible_brands': 'isomiso2avc1mp41', 'encoder': 'Lavf61.1.100'}, 'inputs': [{'streams': [{'input_number': 0, 'stream_number': 0, 'stream_type': 'video', 'language': None, 'default': True, 'size': [1080, 1920], 'bitrate': 333, 'fps': 30.0, 'codec_name': 'h264', 'profile': '(High)', 'metadata': {'Metadata': '', 'handler_name': 'VideoHandler', 'vendor_id': '[0][0][0][0]', 'encoder': 'Lavc61.3.100 libx264'}}], 'input_number': 0}], 'duration': 6.0, 'bitrate': 337, 'start': 0.0, 'default_video_input_number': 0, 'default_video_stream_number': 0, 'video_codec_name': 'h264', 'video_profile': '(High)', 'video_size': [1080, 1920], 'video_bitrate': 333, 'video_fps': 30.0, 'video_duration': 6.0, 'video_n_frames': 180}
C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe -i C:\Users\a1523\Downloads\MoneyPrinterTurbo-Portable-Windows-1.2.6\MoneyPrinterTurbo\storage\tasks\eb0762bc-f525-4e5b-b16f-d0ff6c57c102\combined-1.mp4 -loglevel error -f image2pipe -vf scale=1080:1920 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
2025-10-01 22:17:03 | SUCCESS | "./app\services\task.py:312": start - task eb0762bc-f525-4e5b-b16f-d0ff6c57c102 finished, generated 1 videos.
2025-10-01 22:17:03 | INFO | "./webui\Main.py:982": - 视频生成完成

@JAAAACCCCCCKKKK
Copy link
Copy Markdown
Author

单测日志(v1断开时):
2025-10-01 22:33:02 | INFO | "./app\services\voice.py:1137": azure_tts_v1 - Edge TTS start, voice name: en-US-JennyNeural, try: 1
2025-10-01 22:33:02 | WARNING | "./app\services\voice.py:1167": azure_tts_v1 - Edge TTS encountered a network issue:
2025-10-01 22:33:02 | INFO | "./app\services\voice.py:1173": azure_tts_v1 - Attempting Azure Speech SDK fallback with voice: en-US-JennyNeural-V2
2025-10-01 22:33:02 | INFO | "./app\services\voice.py:1186": azure_tts_v1 - Azure Speech SDK fallback completed, output file: C:\Users\a1523\Desktop\MoneyPrinterTurbo\storage\temp/tts-azure-fallback-en-US-JennyNeural.mp3
.zh-CN-XiaoxiaoMultilingualNeural-V2
2025-10-01 22:33:02 | INFO | "./app\services\voice.py:1373": azure_tts_v2 - start, voice name: zh-CN-XiaoxiaoMultilingualNeural, try: 1
2025-10-01 22:33:02 | SUCCESS | "./app\services\voice.py:1428": azure_tts_v2 - azure v2 speech synthesis succeeded: C:\Users\a1523\Desktop\MoneyPrinterTurbo\storage\temp/tts-azure-v2-zh-CN-XiaoxiaoMultilingualNeural-V2.mp3
2025-10-01 22:33:02 | INFO | "./app\services\voice.py:1532": create_subtitle - completed, subtitle file created: C:\Users\a1523\Desktop\MoneyPrinterTurbo\storage\temp/tts-azure-v2-zh-CN-XiaoxiaoMultilingualNeural-V2.srt, duration: 19.237
voice: zh-CN-XiaoxiaoMultilingualNeural-V2, audio duration: 19.55s
.2025-10-01 22:33:02 | INFO | "./app\services\voice.py:1261": siliconflow_tts - start siliconflow tts, model: FunAudioLLM/CosyVoice2-0.5B, voice: FunAudioLLM/CosyVoice2-0.5B:alex, try: 1
2025-10-01 22:33:06 | SUCCESS | "./app\services\voice.py:1335": siliconflow_tts - siliconflow tts succeeded: C:\Users\a1523\Desktop\MoneyPrinterTurbo\storage\temp/tts-siliconflow-alex.mp3
s ['预计未来3天深圳冷空气活动频繁', '未来两天持续阴天有小雨', '出门带好雨具', '10-11日持续阴天有小雨', '日温差小', '气温在13-17℃之间', '体感阴凉', '12日天气短暂好转', '早晚清凉'] [(0, 34714285), (34714285, 60171427), (60171427, 74057141), (74057141, 104142855), (104142855, 113399997), (113399997, 138857139), (138857139, 148114281), (148114281, 168942852), (168942852, 178199994)]
2025-10-01 22:33:06 | INFO | "./app\services\voice.py:1532": create_subtitle - completed, subtitle file created: C:\Users\a1523\Desktop\MoneyPrinterTurbo\storage\temp/tts-siliconflow-alex.srt, duration: 17.82
voice: siliconflow:FunAudioLLM/CosyVoice2-0.5B:alex, audio duration: 17.8199994s

Ran 7 tests in 273.605s

OK

@harry0703
Copy link
Copy Markdown
Owner

Rejected after local validation: this fallback only handles timeout/connector errors and does not fix the current Edge TTS 403 failure mode, so the reported issue remains unresolved.

@harry0703 harry0703 closed this Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants