Skip to content

Commit f57e33d

Browse files
authored
perf: optimize rendering (#132)
* perf: optimize rendering * perf: fine tune danmakus parameter
1 parent c79e537 commit f57e33d

File tree

5 files changed

+15
-111
lines changed

5 files changed

+15
-111
lines changed

docs/scan.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
+ [Using FFmpeg with NVIDIA GPU Hardware Acceleration](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/ffmpeg-with-nvidia-gpu/index.html)
1111
+ [使用GPU为FFmpeg 加速](https://yukihane.work/li-gong/ffmpeg-with-gpu)
1212

13+
## 渲染速率为什么下降
14+
15+
长时间地使用 GPU,温度升高可能会导致 GPU 降频,从而导致渲染速率下降。可以通过 `nvidia-smi -q -d CLOCK` 查看 GPU 频率信息。
1316

1417
## requests 请求错误
1518
```

src/burn/generate_danmakus.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ def process_danmakus(in_xml_path, resolution):
4242
update_sc_prices(in_xml_path)
4343
in_ass_path = in_xml_path[:-4] + '.ass'
4444
if resolution == '1280x720':
45-
boxsize = '450x720'
46-
boxfont = '28'
45+
boxsize = '470x720'
46+
boxfont = '25'
4747
danmakufont = '38'
4848
subtitle_font_size = '15'
49-
subtitle_margin_v = '60'
49+
subtitle_margin_v = '40'
5050
elif resolution == '1920x1080':
5151
boxsize = '500x1080'
5252
boxfont = '50'

src/subtitle/en.ini

Lines changed: 1 addition & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,7 @@
1-
[LanguageModeGUI]
2-
Title = Subtitle Generator
3-
InterfaceLanguage = Choose Interface Language:
4-
SubtitleLanguage = Choose Spoken Language:
5-
Mode = Choose Mode:
6-
ModeBase = fast
7-
ModeMedium = standard
8-
ModeLarge = accurate
9-
InterfaceDefault = English
10-
LanguageAUTO = Auto Detect
11-
LanguageZH-CN = Mandarin(China, Mainland)
12-
LanguageZH-TW = Mandarin(China, Taiwan)
13-
LanguageZH-HK = Mandarin(China, HONG KONG)
14-
LanguageZH-SG = Singaporean Mandarin
15-
LanguageZH-HANS = Chinese(Simplified)
16-
LanguageZH-HANT = Chinese(Traditional)
17-
LanguageEN = English
18-
LanguageJA = Japanese
19-
LanguageKO = Korean
20-
LanguageDE = German
21-
LanguageES = Spanish
22-
LanguageRU = Russian
23-
LanguageFR = French
24-
LanguagePT = Portuguese
25-
LanguageVI = Vietnamese
26-
LanguageTR = Turkish
27-
LanguagePL = Polish
28-
LanguageCA = Catalan
29-
LanguageNL = Dutch
30-
LanguageAR = Arabic
31-
LanguageSV = Swedish
32-
LanguageIT = Italian
33-
LanguageID = Indonesian
34-
LanguageHI = Hindi
35-
LanguageFI = Finnish
36-
LanguageHE = Hebrew
37-
LanguageUK = Ukrainian
38-
LanguageEL = Greek
39-
LanguageMS = Malay
40-
LanguageCS = Czech
41-
LanguageRO = Romanian
42-
LanguageDA = Danish
43-
LanguageHU = Hungarian
44-
LanguageTA = Tamil
45-
LanguageNO = Norwegian
46-
LanguageTH = Thai
47-
LanguageUR = Urdu
48-
LanguageHR = Croatian
49-
LanguageBG = Bulgarian
50-
LanguageLT = Lithuanian
51-
LanguageLA = Latin
52-
LanguageML = Malayalam
53-
LanguageCY = Welsh
54-
LanguageSK = Slovak
55-
LanguageTE = Telugu
56-
LanguageFA = Persian
57-
LanguageLV = Latvian
58-
LanguageBN = Bengali
59-
LanguageSR = Serbian
60-
LanguageAZ = Azerbaijani
61-
LanguageSL = Slovenian
62-
LanguageKN = Kannada
63-
LanguageET = Estonian
64-
LanguageMK = Macedonian
65-
LanguageBR = Breton
66-
LanguageEU = Basque
67-
LanguageIS = Icelandic
68-
LanguageHY = Armenian
69-
LanguageNE = Nepali
70-
LanguageMN = Mongolian
71-
LanguageBS = Bosnian
72-
LanguageKK = Kazakh
73-
LanguageSQ = Albanian
74-
LanguageSW = Swahili
75-
LanguageGL = Galician
76-
LanguageMR = Marathi
77-
LanguagePA = Punjabi
78-
LanguageSI = Sinhala
79-
LanguageKM = Khmer
80-
LanguageSN = Shona
81-
LanguageYO = Yoruba
82-
LanguageSO = Somali
83-
LanguageAF = Afrikaans
84-
LanguageOC = Occitan
85-
LanguageKA = Georgian
86-
LanguageBE = Belarusian
87-
LanguageTG = Tajik
88-
LanguageSD = Sindhi
89-
90-
[SubtitleGeneratorGUI]
91-
Title = Subtitle Generator
92-
Open = Open
93-
AllFile = All Files
94-
Run = Run
95-
Setting = Settings
96-
OpenFileSuccess = File opened successfully
97-
OpenVideoFirst = Please open video/audio file first
98-
99-
1001
[Main]
101-
RecSubLang = language
102-
RecMode = mode
103-
IllegalPathWarning = 【Warning】illegal file path
104-
IllegalLanguageCode = 【Warning】Language code not support, use auto detection
1052
LanguageDetected = 【Info】Language Detected:
1063
StartGenerateSub = 【Processing】start to generator subs please wait for a moment...
1074
FinishGenerateSub = 【Finished】subtitle file generated successfully
1085
Elapse = elapse
1096
SubLocation = Subtitle file generated at:
110-
InputFile = Please enter the full path of video or audio file:
7+
InputFile = Please enter the full path of video or audio file:

src/subtitle/generate.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ def run(self, output=None):
249249
"""
250250
audio_filename, audio_rate = self.extract_audio()
251251
regions = self.find_speech_regions(audio_filename)
252-
pool = multiprocessing.Pool(12)
252+
pool = multiprocessing.Pool(10)
253253
converter = FLACConverter(source_path=audio_filename)
254254
recognizer = AudioRecogniser(language=self.language)
255255
transcripts = []
@@ -297,8 +297,6 @@ def run(self, output=None):
297297

298298
if __name__ == '__main__':
299299
parser = argparse.ArgumentParser(description='Subtitle Generator')
300-
301-
parser.add_argument('-l', '--language', help=config.get_interface_config()['LanguageModeGUI']['SubtitleLanguage'], required=False)
302300
parser.add_argument('filename', nargs='?', help=config.get_interface_config()['Main']['InputFile'])
303301

304302
args = parser.parse_args()

src/utils/adjustPrice.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,13 @@ def update_sc_prices(file_path):
3737
# Convert price to integer, divide by 1000, and update the attribute
3838
new_price_toast = int(price_toast) / 1000
3939
toast.set('price', str(int(new_price_toast)))
40-
40+
41+
# Remove 'gift' elements with price less than 1000
42+
for gift in root.findall('gift'):
43+
price_gift = gift.get('price')
44+
if int(price_gift) < 1000:
45+
root.remove(gift)
46+
4147
# Write the updated XML back to the file
4248
tree.write(file_path, encoding='utf-8', xml_declaration=True)
4349

0 commit comments

Comments
 (0)