99 run_ffmpeg_command_with_progress ,
1010)
1111from src .config .settings import (
12- ALLOWED_THREADS ,
12+ ALLOWED_CPU_THREADS ,
1313 AUDIO_PATH ,
1414 FINAL_VIDEO ,
1515 ORIGINAL_VIDEO ,
1616 RESOLUTION ,
17- TMP_VIDEO ,
17+ TMP_VIDEO_PATH ,
1818)
1919from src .utils .file_utils import delete_file
2020from src .video .video_helpers import get_video_duration
@@ -32,7 +32,7 @@ class AudioHandler:
3232 def __init__ (
3333 self ,
3434 input_video_path : str = ORIGINAL_VIDEO ,
35- merged_video_path : str = TMP_VIDEO ,
35+ merged_video_path : str = TMP_VIDEO_PATH ,
3636 output_video_path : str = FINAL_VIDEO ,
3737 audio_path : str = AUDIO_PATH ,
3838 audio_format : str = "mp3" ,
@@ -52,20 +52,6 @@ def __init__(
5252 print (f"\t Частота дискретизации: { self .SAMPLE_FREQ } Hz" )
5353 print (f"\t Каналы: { self .CANALS } (стерео)" )
5454
55- def check_audio_extracted (self , audio_file ) -> None :
56- """
57- Проверяет, было ли аудио успешно извлечено из видеофайла.
58- Возвращает True, если аудио существует, иначе False.
59- """
60- if audio_file and os .path .exists (audio_file ):
61- print (f"✅ Аудио успешно извлечено: { audio_file } \n " )
62- self .audio_path = audio_file
63- else :
64- print ("⚠️ Аудио не найдено или не было извлечено." )
65- raise FileNotFoundError (
66- "Аудиофайл не найден. Проверьте, было ли аудио успешно извлечено."
67- )
68-
6955 async def extract_audio (self ) -> Optional [str ]:
7056 """
7157 Извлекает аудио из видеофайла и сохраняет его как отдельный аудиофайл.
@@ -86,7 +72,7 @@ def __sync_extract():
8672 "-ac" , self .CANALS ,
8773 "-b:a" , self .BITRATE ,
8874 "-progress" , "-" ,
89- "-threads" , str (ALLOWED_THREADS ),
75+ "-threads" , str (ALLOWED_CPU_THREADS ),
9076 "-loglevel" , "error" ,
9177 audio_file ,
9278 ]
@@ -97,7 +83,8 @@ def __sync_extract():
9783 except subprocess .CalledProcessError as e :
9884 print (f"🚨 Ошибка при извлечении аудио: { e } " )
9985 return None
100- self .check_audio_extracted (audio_file )
86+ self .__check_audio_extracted (audio_file )
87+ return None
10188
10289 loop = asyncio .get_event_loop ()
10390 return await loop .run_in_executor (None , __sync_extract )
@@ -119,7 +106,7 @@ def __sync_insert():
119106 print (f"\t Кодек аудио: исходный ({ self .audio_format } )" )
120107 print (f"\t Длительность видео: { duration :.2f} сек" )
121108 print (f"\t FPS видео: { fps } " )
122- print (f"\t Потоков: { ALLOWED_THREADS } " )
109+ print (f"\t Потоков: { ALLOWED_CPU_THREADS } " )
123110 print (f"\t Разрешение: { self .resolution } " )
124111
125112 cmd = [
@@ -130,7 +117,7 @@ def __sync_insert():
130117 "-map" , "0:v:0" ,
131118 "-map" , "1:a:0" ,
132119 "-shortest" , "-progress" , "-" ,
133- "-threads" , str (ALLOWED_THREADS ),
120+ "-threads" , str (ALLOWED_CPU_THREADS ),
134121 "-nostats" , "-loglevel" , "error" ,
135122 self .out_video_path ,
136123 ]
@@ -147,6 +134,20 @@ def __sync_insert():
147134 loop = asyncio .get_event_loop ()
148135 await loop .run_in_executor (None , __sync_insert )
149136
137+ def __check_audio_extracted (self , audio_file ) -> None :
138+ """
139+ Проверяет, было ли аудио успешно извлечено из видеофайла.
140+ Возвращает True, если аудио существует, иначе False.
141+ """
142+ if audio_file and os .path .exists (audio_file ):
143+ print (f"✅ Аудио успешно извлечено: { audio_file } \n " )
144+ self .audio_path = audio_file
145+ else :
146+ print ("⚠️ Аудио не найдено или не было извлечено." )
147+ raise FileNotFoundError (
148+ "Аудиофайл не найден. Проверьте, было ли аудио успешно извлечено."
149+ )
150+
150151 def __str__ (self ):
151152 return (
152153 f"AudioHandler(in_video_path={ self .in_video_path } , "
0 commit comments