
x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
الهدف من السكريبت هو تحويل ملف M3U8 (وهو تنسيق يُستخدم لبث الفيديو مثل البث المباشر أو الفيديوهات عبر الإنترنت) إلى تنسيق MPD (يُستخدم لتدفق الفيديو بتقنية MPEG-DASH). هذا التحويل يسمح بتشغيل الفيديو على منصات تدعم DASH.
ما ستحتاجه:
برنامج FFmpeg: هو أداة مجانية للتعامل مع الفيديوهات. يجب تثبيته على جهازك.
يمكنك تحميله من موقع FFmpeg الرسمي وإضافته إلى جهازك.
Python: يجب أن يكون لديك Python مثبتًا.
مكتبة ffmpeg-python: لربط Python مع FFmpeg. يمكن تثبيتها باستخدام الأمر:
السكريبت التالي هو كود Python يقوم بتحويل ملف M3U8 إلى MPD:
= التحويل: يستخدم FFmpeg لتحويل البث من تنسيق HLS (M3U8) إلى تنسيق DASH (MPD).
= الإخراج: ينتج ملف MPD (مثل output.mpd) مع المقاطع التي يمكن تشغيلها باستخدام مشغلات تدعم DASH مثل VLC.
=افتح موجه الأوامر (Command Prompt أو Terminal) وانتقل إلى المجلد الذي يحتوي على الملف.
شغّل الأمر التالي:
استبدل input.m3u8 باسم ملف M3U8 أو الرابط الخاص به.
استبدل output.mpd بالاسم الذي تريده لملف MPD الناتج.
مثال:
ماذا سيحدث؟
إذا نجح التحويل، سترى رسالة: تم التحويل بنجاح من ... إلى ....
ستجد ملف myvideo.mpd في نفس المجلد، مع مقاطع الفيديو المرتبطة به.
ملاحظات مهمة:
إذا ظهر خطأ، تحقق من:
أن FFmpeg مثبت بشكل صحيح (اكتب ffmpeg -version في موجه الأوامر).
أن ملف M3U8 أو الرابط يعمل.
أن لديك صلاحيات الكتابة في المجلد.
ما ستحتاجه:
برنامج FFmpeg: هو أداة مجانية للتعامل مع الفيديوهات. يجب تثبيته على جهازك.
يمكنك تحميله من موقع FFmpeg الرسمي وإضافته إلى جهازك.
Python: يجب أن يكون لديك Python مثبتًا.
مكتبة ffmpeg-python: لربط Python مع FFmpeg. يمكن تثبيتها باستخدام الأمر:
Bash:
pip install ffmpeg-python
السكريبت التالي هو كود Python يقوم بتحويل ملف M3U8 إلى MPD:
Python:
import ffmpeg
import sys
import os
def convert_m3u8_to_mpd(input_m3u8, output_mpd):
try:
# التأكد من أن ملف الإدخال (M3U8) موجود
if not input_m3u8.startswith('http') and not os.path.exists(input_m3u8):
print("خطأ: ملف الإدخال غير موجود.")
return
# أمر FFmpeg لتحويل M3U8 إلى MPD
stream = ffmpeg.input(input_m3u8)
stream = ffmpeg.output(
stream,
output_mpd,
format='dash', # تحديد تنسيق الإخراج (DASH)
c='copy', # نسخ الفيديو والصوت بدون إعادة تشفير
f='dash', # تنسيق الإخراج
use_template=1, # استخدام نمط لتقسيم المقاطع
use_timeline=1, # استخدام جدول زمني للمقاطع
seg_duration=4, # مدة كل مقطع (4 ثوانٍ)
window_size=5, # عدد المقاطع المحفوظة
extra_window_size=5
)
# تشغيل الأمر
ffmpeg.run(stream, overwrite_output=True)
print(f"تم التحويل بنجاح من {input_m3u8} إلى {output_mpd}")
except ffmpeg.Error as e:
print(f"خطأ في FFmpeg: {e.stderr.decode()}")
except Exception as e:
print(f"خطأ: {str(e)}")
if __name__ == "__main__":
if len(sys.argv) != 3:
print("الاستخدام: python script.py <ملف_m3u8_المدخل> <ملف_mpd_الناتج>")
sys.exit(1)
input_m3u8 = sys.argv[1]
output_mpd = sys.argv[2]
convert_m3u8_to_mpd(input_m3u8, output_mpd)
كيف يعمل السكريبت؟
= الإدخال: يأخذ ملف M3U8 (إما ملف على جهازك أو رابط URL مثلhttp://example.com/playlist.m3u8
).= التحويل: يستخدم FFmpeg لتحويل البث من تنسيق HLS (M3U8) إلى تنسيق DASH (MPD).
ينسخ الفيديو والصوت مباشرة بدون تغيير جودتهما.
يقسم الفيديو إلى مقاطع صغيرة (كل مقطع 4 ثوانٍ).= الإخراج: ينتج ملف MPD (مثل output.mpd) مع المقاطع التي يمكن تشغيلها باستخدام مشغلات تدعم DASH مثل VLC.
كيف تستخدم السكريبت؟
=احفظ الكود في ملف باسم convert.py.=افتح موجه الأوامر (Command Prompt أو Terminal) وانتقل إلى المجلد الذي يحتوي على الملف.
شغّل الأمر التالي:
Bash:
python convert.py input.m3u8 output.mpd
استبدل output.mpd بالاسم الذي تريده لملف MPD الناتج.
مثال:
Bash:
python convert.py http://example.com/playlist.m3u8 myvideo.mpd
ماذا سيحدث؟
إذا نجح التحويل، سترى رسالة: تم التحويل بنجاح من ... إلى ....
ستجد ملف myvideo.mpd في نفس المجلد، مع مقاطع الفيديو المرتبطة به.
ملاحظات مهمة:
- إذا كان الفيديو مشفرًا (DRM): قد لا يعمل التحويل إذا كان الملف محميًا بتشفير. تحتاج إلى مفتاح فك التشفير.
- مدة المقاطع: يمكنك تغيير seg_duration=4 في الكود إذا أردت مقاطع أقصر أو أطول.
- البث المباشر: إذا كنت تستخدم بثًا مباشرًا، قد تحتاج إلى ضبط الإعدادات للتعامل مع تدفق مستمر.
- مشاكل الشبكة: إذا كنت تستخدم رابط URL، تأكد من أن الإنترنت مستقر.
إذا ظهر خطأ، تحقق من:
أن FFmpeg مثبت بشكل صحيح (اكتب ffmpeg -version في موجه الأوامر).
أن ملف M3U8 أو الرابط يعمل.
أن لديك صلاحيات الكتابة في المجلد.