Reoo88 commited on
Commit
887846a
·
verified ·
1 Parent(s): a0965ad

Update streamlit_app.py

Browse files
Files changed (1) hide show
  1. streamlit_app.py +18 -13
streamlit_app.py CHANGED
@@ -61,10 +61,10 @@ def get_tiktok_stream_url():
61
  pass
62
  return None
63
 
64
- def start_stream_stable(stream_key, stream_url):
65
  if not stream_key or not stream_url:
66
  return None
67
- log("🎬 بدء البث المستقر (صوت بسيط + إشارة قوية)...")
68
  rtmp_url = f"rtmp://a.rtmp.youtube.com/live2/{stream_key}"
69
 
70
  cmd = [
@@ -99,13 +99,18 @@ def start_stream_stable(stream_key, stream_url):
99
  "-correct_ts_overflow", "1",
100
  "-max_interleave_delta", "0",
101
 
102
- # فيديو – إشارة مستقرة
 
 
 
 
 
103
  "-c:v", "libx264",
104
  "-preset", "ultrafast",
105
- "-crf", "23",
106
- "-maxrate", "6000k",
107
- "-minrate", "4000k",
108
- "-bufsize", "12000k",
109
  "-g", "60",
110
  "-vsync", "2",
111
  "-x264-params", "nal-hrd=cbr",
@@ -115,12 +120,12 @@ def start_stream_stable(stream_key, stream_url):
115
  "-color_trc", "bt709",
116
  "-colorspace", "bt709",
117
 
118
- # صوت – بسيط جدًا ومتناسق
119
  "-c:a", "aac",
120
  "-b:a", "192k",
121
  "-ac", "2",
122
  "-ar", "44100",
123
- "-async", "1", # ✅ تصحيح التزامن فقط
124
 
125
  # إرسال سلس
126
  "-max_muxing_queue_size", "65535",
@@ -154,7 +159,7 @@ def run_monitor():
154
  was_streaming = False
155
  consecutive_fails = 0
156
 
157
- log("🚀 محرك البث المستقر (صوت بسيط)")
158
 
159
  while True:
160
  try:
@@ -165,7 +170,7 @@ def run_monitor():
165
  log("🟢 بدء بث جديد...")
166
  if processes:
167
  kill_process_tree(processes["ffmpeg"].pid)
168
- processes = start_stream_stable(STREAM_KEY, stream_url)
169
  if processes:
170
  is_streaming = True
171
  was_streaming = True
@@ -173,7 +178,7 @@ def run_monitor():
173
  else:
174
  if is_streaming and processes and processes["ffmpeg"].poll() is not None:
175
  log("⚠️ ffmpeg مات، إعادة تشغيل...")
176
- processes = start_stream_stable(STREAM_KEY, stream_url)
177
  if not processes:
178
  is_streaming = False
179
  was_streaming = False
@@ -195,7 +200,7 @@ def run_monitor():
195
  time.sleep(10)
196
 
197
  if __name__ == "__main__":
198
- log("✅ بدء تشغيل المحرك المستقر")
199
  t = threading.Thread(target=run_monitor, daemon=True)
200
  t.start()
201
  while True:
 
61
  pass
62
  return None
63
 
64
+ def start_stream_high_quality(stream_key, stream_url):
65
  if not stream_key or not stream_url:
66
  return None
67
+ log("🎬 بدء البث (1080p + جودة عالية)...")
68
  rtmp_url = f"rtmp://a.rtmp.youtube.com/live2/{stream_key}"
69
 
70
  cmd = [
 
99
  "-correct_ts_overflow", "1",
100
  "-max_interleave_delta", "0",
101
 
102
+ # ═══════════════════════════════════
103
+ # فلتر 1080×1920 (شاشة كاملة للجوال)
104
+ # ═══════════════════════════════════
105
+ "-vf", "scale=1080:1920:force_original_aspect_ratio=increase,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black:eval=frame",
106
+
107
+ # فيديو – جودة 1080p مستقرة
108
  "-c:v", "libx264",
109
  "-preset", "ultrafast",
110
+ "-crf", "18", # جودة أعلى
111
+ "-maxrate", "8000k", # سقف عالٍ للجودة
112
+ "-minrate", "5000k", # أدنى مستوى ممتاز
113
+ "-bufsize", "16000k", # بفر ترميز كبير
114
  "-g", "60",
115
  "-vsync", "2",
116
  "-x264-params", "nal-hrd=cbr",
 
120
  "-color_trc", "bt709",
121
  "-colorspace", "bt709",
122
 
123
+ # صوت – بسيط ومتناسق
124
  "-c:a", "aac",
125
  "-b:a", "192k",
126
  "-ac", "2",
127
  "-ar", "44100",
128
+ "-async", "1",
129
 
130
  # إرسال سلس
131
  "-max_muxing_queue_size", "65535",
 
159
  was_streaming = False
160
  consecutive_fails = 0
161
 
162
+ log("🚀 محرك البث 1080p عالي الجودة")
163
 
164
  while True:
165
  try:
 
170
  log("🟢 بدء بث جديد...")
171
  if processes:
172
  kill_process_tree(processes["ffmpeg"].pid)
173
+ processes = start_stream_high_quality(STREAM_KEY, stream_url)
174
  if processes:
175
  is_streaming = True
176
  was_streaming = True
 
178
  else:
179
  if is_streaming and processes and processes["ffmpeg"].poll() is not None:
180
  log("⚠️ ffmpeg مات، إعادة تشغيل...")
181
+ processes = start_stream_high_quality(STREAM_KEY, stream_url)
182
  if not processes:
183
  is_streaming = False
184
  was_streaming = False
 
200
  time.sleep(10)
201
 
202
  if __name__ == "__main__":
203
+ log("✅ بدء تشغيل المحرك 1080p")
204
  t = threading.Thread(target=run_monitor, daemon=True)
205
  t.start()
206
  while True: