سؤال

أحتاج إلى إنشاء شيء يبدأ في عرض مقطع فيديو مشفر بـ H.264 إلى مشغل فلاش في منتصف الملف (لدعم التخطي إلى نقطة في الفيديو لم يتم تخزينها مؤقتًا بعد).

في الوقت الحالي، تكون مقاطع الفيديو بتنسيق حاوية FLV، ولكن تحويل الشفرة يعد خيارًا.تمكنت من إعادة كتابة رأس الملف ومعلومات البيانات الوصفية لإزاحة بايت معينة.يعمل هذا مع مقاطع الفيديو القديمة، ولكن ليس مع الملفات المشفرة بـ H.264.أظن أن السبب في ذلك هو أنه يجب أيضًا تغيير علامات الفيديو الموجودة داخل الملف، وهو أمر غير ممكن (قد يتطلب الأمر قدرًا كبيرًا من قوة المعالجة).

ما هي الطريقة "الصحيحة" للقيام بذلك؟

هل كانت مفيدة؟

المحلول

يمكن لمشغل الفلاش أن يبدأ تشغيل فيديو H.264 فقط بعد تنزيل MOOV atom.يوفر لك موفرو البث الزائف الموجودون رأس FLV - إما أول 13 بايت من الملف أو بايت مضمن - ثم يقدمون الملف من الإزاحة المحددة.إذا كنت تريد إنشاء ناقل زائف لـ H.264، فستحتاج إلى إخراج رأس FLV، ثم ذرة MOOV، ثم خدمة بقية الملف من الإزاحة المحددة.إذا كنت لا تستخدم حاوية FLV، فلن تحتاج إلى رأس FLV، ولكنك ستظل بحاجة إلى ذرة MOOV.

لسوء الحظ، لا أعتقد أنك ستتمكن من استخدام ذرة MOOV من الملف الموجود على القرص؛المعلومات التي تحتوي عليها لن تكون مناسبة لجزء الملف الذي تخدمه.لذلك يتعين عليك تحليل الذرة الموجودة وإنشاء واحدة خاصة بك والتي كانت مناسبة للجزء المقدم من الملف.

إذا كانت هناك بنيات معقدة داخل ملف H.264، فقد يكون الأمر أكثر تعقيدًا بالنسبة للتدفق الزائف.إذا لم يكن تحليل الملف ممكنًا، فأنا أخشى أنك قد لا تتمكن من البث الزائف للوسائط الخاصة بك.

نصائح أخرى

@ yoavf - أعتقد أن OP مهتم بالجوانب من جانب الخادم للبث عند الطلب h.264 داخل ملفات FLV.أعتقد أن إعادة استخدام اللاعبين الحاليين سيكون أمرًا رائعًا بالنسبة له.أو ربما هذا هو احتياجاتي الخاصة الخروج؟<:س

من الرابط الثاني لـ yoavf، هناك رابط آخر لـ Tinic Uro ماذا حدث للتو للفيديو على شبكة الإنترنت؟ .اقتباس ذو صلة:

هل سيكون من الممكن وضع تدفقات H.264 في بنية ملف FLV التقليدية؟سيتم ذلك، ولكننا نشجع الجميع بشدة على تبني تنسيق الملف القياسي الجديد.هناك حدود وظيفية لبنية FLV عند دفق H.264 والتي لم نتمكن من التغلب عليها دون إعادة تصميم تنسيق الملف.وهذا هو أحد أسباب ابتعادنا عن بنية ملفات FLV التقليدية.يعد التعامل على وجه التحديد مع رؤوس التسلسل ونهاياته أمرًا صعبًا مع تدفقات FLV.

لذا، يبدو أنه يمكن للمرء إما التلاعب بتشفير ffmpeg (إذا كانت هذه هي الطريقة التي تحصل بها على ملفات FLV الخاصة بك، مثلي) أو يمكن للمرء الدخول في التنسيق الجديد.هممممم....

شيئين يمكنك القيام به:

1) استخدم lighttpd وهو مكون إضافي للبث بتنسيق mp4 والذي سينشئ حاوية البث المطلوبة بسرعة

2) أنشئ ملف FLV ذو إطار رئيسي واستخدم برنامجًا نصيًا للبث الزائف (مثل XMOOV) لدفق ملفك.

إذا كنت بحاجة إلى mp4/aac، يمكنك فقط وضعها داخل حاوية FLV، مما يثير استياء Adobe، لكنه يعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top