
- بواسطة x32x01 ||
لو عندك ملف M3U8 (اللي بيستخدم عادة في بث الفيديوهات أونلاين أو البث المباشر)، وعايز تحوّله إلى MPD علشان تقدر تشغله على مشغلات بتدعم MPEG-DASH زي VLC - البوست ده ليك 
الفكرة الأساسية
السكريبت اللي هنتكلم عنه هدفه ببساطة:
تحويل تنسيق M3U8 إلى MPD عن طريق أداة FFmpeg باستخدام سكريبت صغير بلغة Python.
وده مفيد جدًا لو بتشتغل في مجال بث الفيديوهات أو السيرفرات اللي بتعتمد على DASH streaming.
الأدوات اللي هتحتاجها
نزّلها من الموقع الرسمي:
https://ffmpeg.org
بعد ما تنزّلها، ضيفها لمسار النظام (PATH) عشان تقدر تستخدمها من أي مكان.
تقدر تتأكد بكتابة:
ثبّتها بالأمر ده
سكريبت تحويل M3U8 إلى MPD
الكود الجاي هو سكريبت بسيط بلغة Python بيحوّل ملف M3U8 إلى MPD بشكل مباشر:
ازاي السكريبت بيشتغل؟
طريقة الاستخدام
استبدل:
مثال عملي:
python convert.py http://example.com/playlist.m3u8 myvideo.mpd
هتلاقي بعد التنفيذ:
تم التحويل بنجاح من playlist.m3u8 إلى myvideo.mpd
ملاحظات مهمة
النتيجة النهائية
بعد ما تشغّل السكريبت، هتحصل على:

الفكرة الأساسية
السكريبت اللي هنتكلم عنه هدفه ببساطة:تحويل تنسيق M3U8 إلى MPD عن طريق أداة FFmpeg باستخدام سكريبت صغير بلغة Python.
وده مفيد جدًا لو بتشتغل في مجال بث الفيديوهات أو السيرفرات اللي بتعتمد على DASH streaming.
الأدوات اللي هتحتاجها
1. تثبيت FFmpeg
هو أداة قوية ومجانية للتعامل مع الفيديوهات، سواء تحويل، دمج، أو بث مباشر.نزّلها من الموقع الرسمي:

بعد ما تنزّلها، ضيفها لمسار النظام (PATH) عشان تقدر تستخدمها من أي مكان.
2. تثبيت Python
أكيد محتاج Python يكون متثبت عندك.تقدر تتأكد بكتابة:
python --version
3. تثبيت مكتبة ffmpeg-python
المكتبة دي بتربط Python بـ FFmpeg بطريقة سهلة.ثبّتها بالأمر ده

pip install ffmpeg-python
سكريبت تحويل M3U8 إلى MPD
الكود الجاي هو سكريبت بسيط بلغة Python بيحوّل ملف M3U8 إلى MPD بشكل مباشر: Python:
import ffmpeg
import sys
import os
def convert_m3u8_to_mpd(input_m3u8, output_mpd):
try:
if not input_m3u8.startswith('http') and not os.path.exists(input_m3u8):
print("خطأ: ملف الإدخال غير موجود.")
return
stream = ffmpeg.input(input_m3u8)
stream = ffmpeg.output(
stream,
output_mpd,
format='dash',
c='copy',
f='dash',
use_template=1,
use_timeline=1,
seg_duration=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 سواء من جهازك أو من لينك مباشر.
- التحويل: بيستخدم FFmpeg لتحويل البث من HLS (M3U8) إلى DASH (MPD).
- بينسخ الفيديو والصوت زي ما هم (من غير ما يغير الجودة).
- بيقسم الفيديو لمقاطع صغيرة كل واحدة مدتها 4 ثواني.
- الإخراج: بينتج ملف MPD جاهز للتشغيل على أي مشغل يدعم DASH.
طريقة الاستخدام
- احفظ الكود باسم convert.py
- افتح الـ Terminal أو CMD وروح للمجلد اللي فيه الملف.
- شغّل الأمر ده:
python convert.py input.m3u8 output.mpd
استبدل:
- input.m3u8 باسم ملفك أو اللينك بتاعه
- output.mpd بالاسم اللي عايزه لملف الناتج

python convert.py http://example.com/playlist.m3u8 myvideo.mpd
هتلاقي بعد التنفيذ:
تم التحويل بنجاح من playlist.m3u8 إلى myvideo.mpd

ملاحظات مهمة
لو الفيديو مشفّر (DRM): مش هيشتغل التحويل إلا بمفتاح فك التشفير.
مدة المقاطع: ممكن تغيّر seg_duration=4 لأي رقم يناسبك.
لو بتتعامل مع بث مباشر: عدّل الإعدادات للتعامل مع تدفق حي (Live Stream).
لو بتستخدم URL: تأكد إن الإنترنت مستقر.
لو حصل خطأ:
- تأكد إن FFmpeg متثبت (ffmpeg -version)
- تأكد إن المسار صحيح
- تأكد إن عندك صلاحيات الكتابة في المجلد
النتيجة النهائية
بعد ما تشغّل السكريبت، هتحصل على:- ملف .mpd
- مجموعة مقاطع .m4s
تقدر تشغلهم على أي مشغل بيدعم DASH زي VLC أو Shaka Player.
التعديل الأخير: