android - ال واتساب الفيديو كما تقاسم جيف على الروبوت بشكل منهجي



video ffmpeg (1)

"... المشكلة هي أنني لا يمكن تحرير ملف MP4 آخر لإضافة هذه الذرة دون فساد الملف .

اختبار هذا small_VC1edit.mp4 في ال واتساب. إذا كان يفعل ما تريد ثم قراءة على ...

لجعل MP4 للعب :

باستخدام الأصلي small.mp4 كمثال التحرير (تحميل الملف وفتح مع محرر عرافة).

1) في صفيف بايت فارغة، إضافة أول 72 بايت من رأس MP4 على غرار ال واتساب على غرار.

00 00 00 1C 66 74 79 70 6D 70 34 32 00 00 00 01 6D 70 34 31 6D 70 34 32 69 73 6F 6D 00 00 00 18 62 65 61 6D 01 00 00 00 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 0C 6C 6F 6F 70 00 00 00 00 00 00 00 08 77 69 64 65

لقد عرضت 80 بايت ولكن لا تحتاج إلى 8 بايتات أخرى بعد (أيضا أربعة من تلك القيم ثمانية بايت يجب أن تكون مختلفة لملف الإخراج الخاص بك).

2) حساب الدلتا.

  • لاحظ رأس ( ال واتساب ) (الجديد) هو 72 بايت (قبل ذرة moov ).

  • لاحظ (الأصلي) Small.mp4 ديه 160 بايت من رأس (قبل ذرة moov ).

لذلك فقط استخدم هذا المنطق ( أ أو ب ):

  • أ) إذا رأس ال واتساب هو أكبر من المدخلات MP4:
    delta = ( WhatsApp_header - input_MP4_header)

  • ب) إذا كان رأس الإدخال MP4 أكبر من ال واتساب:
    delta = ( input_MP4_header - WhatsApp_header )

لذلك بالنسبة للمدخلات الصغيرة. mp4 التي تحتوي على 160 بايت الرأس (يتبعها بعد ذلك 4 بايت من حجم موف (كما 00 00 0D 83 ) ثم يتبع 4 بايتات أخرى الآن من اسم موف (كما 6D 6F 6F 76 أو أوتف-8 النص من " moov ").

يمكننا أن نقول: 160 MP4 bytes - 72 WhatsApp bytes = Delta of 88 .

إذا قمت بحذف هذه 160 بايت الأصلي واستبدالها مع أقصر 72 ال واتساب بايت، وأنها سوف تكون 88 بايت أقل والتي يجب الآن أن يتم احتسابها في قسم آخر من البيانات MOOV . هذا القسم هو ذرة STCO .

3) تحديث ذرة STCO مع تعويضات جديدة:

في سمال. STCO تبدأ ذرة STCO عند الإزاحة 1579 (كما 73 74 63 6F ). أما البايتات الأربعة السابقة (الإزاحة: 1575 إلى 1578) فهي stco s ( 00 00 00 B8 ) وهي قيمة عشرية 184 . هذا الحجم الإجمالي من طول البايت يتضمن المحاسبة لتلك 4 بايت سيز جدا.

تخطي 12 بايتا من البايتة البادئة 73 من stco الخاصة ب stco 's نيم 73 74 63... تخطي هذه:

73 74 63 6F 00 00 00 00 00 00 00 2A

الآن يمكنك الوصول إلى نقطة بتحديث متتابع كل عدد صحيح 32 بت (4 بايت) من إزاحة مع قيمة delta جديدة. ولكن كم عدد تعويضات لتحديث؟

atomEditTotal = ( (stco_SIZE - 16) / 4); //gives 42 //PS: Minus by 16 is to trim off non-offset bytes.

لذلك هناك 42 إدخالات لتعديل. لدينا Delta كما 88 لذلك لكل عدد صحيح نقرأ قيمة، ناقص ذلك من قبل 88، ثم كتابة مرة أخرى قيمة جديدة في نفس المكان، كرر آخر 41 مرات (باستخدام حلقة مع حالة if break; حلقة).

للاختبار، نظرا لملف فاسد، إذا قمت بتحرير الإدخال الأول يجب أن يكون كافيا لإظهار الإطار 1 من الفيديو (إذا كان ملف غير الصوت).

بس: بعد تحرير إزاحة ستكو من small.mp4، مجرد حذف بداية 160 بايت والانضمام / كونكات تلك البايت MP4 المتبقية إلى الخلف / نهاية 72 بايت رأس ال واتساب. حفظ صفيف كملف جديد واختبار.

كيف يمكنني تحويل ملف الفيديو MP4 إلى ملف جيف ال واتساب (انها تظهر بسيطة كما جيف داخل واجهة المستخدم التطبيق ولكن داخليا هو شكل MP4 معين) لاستخدامها في الروبوت حصة نية، ويجري الاعتراف بهذا النوع من وسائل الإعلام من قبل التطبيق الدردشة ال واتساب؟ ؟؟

أبحث كثيرا ولكن لا يمكن العثور على أي معلومات من مستندات ال واتساب (لم يكن لديهم هذا النوع من وثيقة على أي حال) أو أي ديف مع نفس المشكلة كما أنا.

ماذا املك:

لقد اكتشفت أنه في بداية ال واتساب "جيف" ملفات mp4 هو موجود قيمة حلقة إذا كنت تقرأ على محرر عرافة، وجميع الملفات لديها هذا. يرجى إزالة هذه القيمة التي تجعل تلقي واتساب كفيديو عادي (وليس مشاركة كصورة جيف).

كيف يمكنني إضافة هذه القيمة باستخدام فميغ ترميز؟ (تحرير بلدي MP4 الملفات يدويا مع هذه القيمة تالف الملفات، ربما لدي لإصلاح بعض مؤشر رأس mp4 أن لا أعرف حتى الآن ...)


أول 80 بيتس في الست عشري (من البداية إلى بداية ذرة "موف" من بنية MP4):

00 00 00 1C 66 74 79 70 6D 70 34 32 00 00 00 01 6D 70 34 31 6D 70 34 32 69 73 6F 6D 00 00 00 18 62 65 61 6D 01 00 00 00 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 0C 6C 6F 6F 70 00 00 00 00 00 00 00 08 77 69 64 65 00 00 04F 6D 6F 6F 76

ملف MP4 قصير ولدت من قبل ال واتساب أن داخليا (في التطبيق) وأظهرت كما جيف (مع واجهة المستخدم المختلفة):

https://www.dropbox.com/s/kpynmx1bg3z76lz/VID-20171024-WA0009.mp4؟dl=0





whatsapp