نظام الفيديو الخاص به هو جودة ffmpeg وترميز الفيديو. الجزء 2


لينا تحب أن تبدو جيدة - عارضة الأزياء بعد كل شيء. هناك أساطير مفادها أن إضافتها إلى عنوان مقالة تتعلق بمعالجة البيانات المرئية تمنح +5 فرصة للإيجابيات.

أواصل الكشف عن ميزات خدمات الفيديو. يلاحظ اليوم حول خيارات الترميز واختيارهم.

الجزء الاول

تقدم معظم برامج الترميز قيمًا افتراضية متوازنة إلى حد ما ، مما يسمح لك بالحصول على نتيجة طبيعية دون تحديد طويل للمعلمات. ومع ذلك ، عندما يتعلق الأمر بأرشيف كبير من مواد الفيديو ، والقيود المفروضة على معدل البت ، واعتبارات التوافق مع أجهزة العميل والرغبة المعقولة في الحفاظ على جودة الأصلي ، يصبح كل شيء أكثر إثارة للاهتمام.

لسوء الحظ ، لا يتم توفير الزر السحري "ترميز جيدًا". مثل التناظرية caniuse لترميز المعلمات. يجب أن نفهم ميزات برامج الترميز.

مقدمة: الملامح


هناك العديد من الإعدادات والمعلمات لـ H264 حتى أن المطورين أنفسهم ، لكي لا يخلطوا في الحيرة ، قرروا عمل قائمة من الملفات الشخصية - تكوينات "جيدة" لأغراض مختلفة. ملامح القياسية التي تم تحديدها كثيرا. بالإضافة إلى ذلك ، من خلال تعيين معلمات الترميز الخاصة بك ، في الواقع ، يمكنك إنشاء ملف التعريف الخاص بك ، والخلط بين الجميع تماما. لذلك ، للأسف ، اتضح كما هو الحال دائما.



في البداية ، تم إنشاء ملفات تعريف لتحديد ما إذا كان سيتم تشغيل الفيديو النهائي على نوع الجهاز المطلوب ، ولكن الآن لا يوجد فصل واضح بين اللاعبين حسب نوع الجهاز وملف التعريف.

في الممارسة العملية ، أود أن أفرد ، حسب مستوى شدة فك شفرة الموارد ، ثلاث مجموعات من المعلمات:

  • مع تعطيل CABAC. لمحات الرئيسية والشرط الأساسي. لا يزال من الممكن استخدامها للبث الحساسة للتأخيرات ؛
  • مع تمكين CABAC ؛ مكانة عالية نسبيا. لكل شيء يمكن لمعظم المعدات الحديثة (وليس كذلك) أن تلعب مثل هذا الشيء. زيادة في الكفاءة مقارنة الرئيسية - 20 ٪ + ؛
  • مع دعم لأخذ عينات من 10 بت وغيرها من المعلمات المتقدمة. مشروط Hi10P. تكمن مشكلة ملفات التعريف هذه في الافتقار شبه الكامل لدعم الأجهزة وزيادة المتطلبات لمعدات فك التشفير ؛ لا يمكن للهواتف ، حتى تلك الموجودة في الهواتف الذكية ، التعامل مع هذه الملفات. يمكن استخدامه لمكتبة شخصية إذا كنت واثقًا من جهازك. آخر 10-20 ٪ زيادة في الكفاءة.

لم يتم تطوير مفهوم ملفات التعريف الخاصة ببرامج الترميز الأخرى كما في H264. بالنسبة لهم ، يمكننا أن نفترض أنه إذا كان برنامج الترميز مدعومًا ، فهذا يعني أنه مدعوم بالكامل ، ويمكن أن يكون التقييد أثناء التشغيل مجرد معدل بت مرتفع للغاية ، أو معلمة أخرى مبالغ فيها بوضوح. ومع ذلك ، مع انتشار وحدات فك ترميز الأجهزة VP8 و VP9 ، قد يتغير الموقف.

الآن إلى المعلمات الفردية.

مساحة اللون


لا يؤثر اختيار فراغ اللون تقريبًا على كفاءة الترميز ؛ يمكن ترك هذه المعلمة لاختيار برنامج الترميز (من المهم عند معالجة البيانات الأولية غير المشفرة) إذا لم تكن متعلقة بميزة واحدة: يعالج العديد من المشغلين معلومات مساحة اللون بشكل محدد للغاية ، بحيث يمكن لمعظم المستخدمين عرض الفيديو مع تشوهات الألوان (في معظمها خضراء).

للحفاظ على الألوان لمعظم اللاعبين ، يجب ترميز مقاطع فيديو H264 المختلفة في مسافات مختلفة:

  • ل SD (العرض <1280) - BT.601
  • ل HD (العرض> = 1280) - BT.709

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

معدل الإطار


إذا كان مصدرك لا يتدفق من الألعاب أو مقاطع الفيديو العملية ، فمن المنطقي قصر معدل الإطار العلوي على 25-30 إطارًا - وكلما قل عدد الإطارات ، تبقى المزيد من البيانات لوصف إطار واحد. من الأفضل تقليل هذه القيمة بعامل - بحيث يكون تخطي الإطار موحدًا ، وإلا فقد يتعرض الفيديو إلى تباطؤ.

هناك شيء مثل معدل الإطار المتغير. العمل مع VFR غير مريح لسببين: أولاً ، يعطي قمم معدل البت في المناطق عالية التردد التي تفرغ المخزن المؤقت على الفور ؛ ثانياً ، VFR تعقد إعداد خطة التحويل ، مما يفرض استخدام معلمات Q (كتبت عنها في المقالة الأولى).

حجم GOP


مجموعات الصور هي كتل يمكن أن تشير بعض الصور فيها إلى بيانات الآخرين. تؤدي زيادة حجم GOP إلى تحسين أداء برنامج الترميز في مقابل زيادة متطلبات الذاكرة. تعد القيم الأكبر فعالة بشكل خاص للملفات التي لها نفس النوع من الحركات الدورية (تعرف ماذا أقصد). أيضًا ، مع وجود قيم كبيرة ، قد تكون هناك مشاكل في إرجاع الفيديو ، لأن سوف تحتاج إلى مزيد من البيانات المستعادة.
قد يختلف اسم المعلمة ، وكذلك وحدات القياس ، من برنامج الترميز إلى برنامج الترميز - راجع الوثائق.

شرائح


لتسريع فك التشفير (والترميز) ، يمكن تقسيم الفيديو إلى أجزاء منخفضة الدقة. تكمن الفكرة في أن معالجة أربعة مقاطع فيديو بدقة ، على سبيل المثال ، 1280 × 720 أسهل من واحد ، ولكن 2560 × 1440. فمن المنطقي في دقة أعلى من FHD. لمزيد من الأجزاء ، وانخفاض كفاءة الترميز. أيضا ، استخدام هذا الفصل يبسط المعالجة متعددة الخيوط.

صورة بصرية مشوهة


تظهر وحدات البكسل المستطيلة عندما تختلف نسبة العرض إلى الارتفاع ونسبة عرض البكسل إلى الارتفاع - أقراص DVD ذات الشاشة العريضة ، حيث تبلغ دقة الفيديو 16: 9 دقة 704 × 480 (3: 2 مع ضريبة القيمة المضافة التماثلية وتصحيح الرياح). لن يؤدي تشغيل مقاطع الفيديو هذه إلى حدوث مشكلات ، ولكن عند الترميز ، يجب أن تأخذ في الاعتبار كل من الدقة ونسبة العرض إلى الارتفاع ، وإلا فمن السهل تحويل صورة بصرية مشوهة إما إلى بكسلات مربعة قياسية مع فقدان الكفاءة (تصل إلى ~ 35٪!) ، أو حتى الحصول على شيء مستوٍ أفقيًا.

معدل البت التحكم


هناك ثلاثة أوضاع رئيسية من برامج الترميز المرتبطة بالبت.

  • معدل البت الثابت ، CBR ، عندما تنخفض الجودة بما يتناسب مع تعقيد المشهد ؛
  • جودة ثابتة ، const Q VBR ، عندما يزيد معدل البت بما يتناسب مع تعقيد المشهد ؛
  • معدل البت وجودة محدودة - VBR الكلاسيكية.

تجدر الإشارة إلى أن معظم برامج الترميز (بما في ذلك ffmpeg) لا تقم بتعيين برامج الترميز على وضع CBR عند ضبط معدل البت - يتم إنشاء الملفات بواسطة VBR ، مع قيود لا يتم تعريفها دائمًا في الوثائق (يتم تشغيل وضع CBR ، عادةً عن طريق ضبط نفس minrate و maxrate).

للتشغيل عبر الإنترنت (وللتدفق) تعد VBR المقيدة مناسبة تمامًا. فهو يوفر جودة أفضل من CBR ويسمح لك بتركيب البث في قناة الإنترنت.

يعتمد اختيار التكبير / التصغير على قناة العميل ، ومن الأفضل عدم القيام بفارق أكثر من 20٪.

متعدد تمرير الترميز


من الصعب التنبؤ بتوزيع البيانات على ملف في وضع VBR ، يجب على برامج الترميز تخمين ما يحدث ليس دائمًا. في وضع التمرير المتعدد ، يقوم برنامج الترميز أولاً بتعيين معدل البت المطلوب ، ثم ترميزه. بهذه الطريقة ، يتم تحسين جودة الفيديو في المشاهد المعقدة والديناميكية (على سبيل المثال ، انتبه إلى عدد عناصر "تموج في النسيج" وعدد التحولات بين المشاهد). نظرًا لأن برنامج الترميز في المرحلة الأولى يحلل الملف المصدر فقط ، خلافًا للاعتقاد السائد ، لا تتطلب المعالجة في هذا الوضع أكثر من ضعف الوقت ، ولكن بنسبة 10-15٪ فقط.

لحن


بالنسبة لأنواع مختلفة من مواد المصدر ، تم إعداد العديد من الإعدادات المسبقة التي تقوم بضبط بعض معلمات الترميز الأساسية - مثل مستويات عامل تصفية فتح ، ومعلمات التحسين النفسي - البصرية. يؤدي استخدام هذه الإعدادات المسبقة إلى تحسين إدراك الفيديو ويعمل بشكل جيد إذا كنت تعرف نوع المصدر مقدمًا ، أو إذا كان لديك مجموعة منظمة من مقاطع الفيديو (في حالة المعالجة الجماعية).

الإعدادات المسبقة:

  • فيلم - للأفلام وكل شيء مع بنية إطار معقدة. هذا بالتأكيد فيلم ؛
  • الرسوم المتحركة - لمقاطع الفيديو ذات المساحات الصلبة الكبيرة. وهذا هو ، من الأفضل أن ترمز مع الرسوم المتحركة مسبقا ، وهذا هو الفيلم ، على الرغم من حقيقة أن الرسوم المتحركة ؛
  • stillimage - لمقاطع الفيديو التي لا توجد فيها حركة تقريبًا ؛ تحسين جيد لتلك الأغاني بتنسيق mp4 ، حيث يكون غلاف الألبوم هو خلفية الفيديو بالكامل (شخص ما ، أخبرهم أنه حتى flac لا يمكن أن يزن 300 ميغابايت لمدة 10 دقائق!) ؛
  • الحبوب - لترميز مصادر "صاخبة" ، مثل كاميرات المراقبة ؛
  • psnr / ssim - لتقييم فعالية المعلمات المتبقية من الترميز ؛
  • fastdecode - القسري الرئيسي الشخصي للأجهزة ضعيفة.
  • zerolatency - كما يوحي الاسم ، للتدفق المنخفض الكمون.

شكل بكسل


يؤثر التنسيق والشهادة بشدة على كيفية ضغط الملفات وإلغاء ضغطها ، وبأي نوع يتم فقده. المعلمات الرئيسية التي يصفها تنسيق البكسل هي:

  • وسيلة لتحليل اللون إلى مكونات - YUV ، RGB ؛
  • معلمات العينة الفرعية للألوان (كيف يمكنك أن تكون العينة الفرعية للكروما أكثر دراية) عندما يتم حفظ بعض مكونات الألوان بدقة أقل ؛
  • عمق مكونات اللون في بت.

يتطلب الاختيار الواعي لتنسيق البكسل تحليلًا منفصلًا ومجموعة من المواد ويعتمد اعتمادًا كبيرًا على نوع المادة المصدر.

باختصار:

  • لا تدعم جميع برامج الترميز (والأهم من ذلك أجهزة فك التشفير) التنسيقات الممكنة ؛
  • العمل مع بعض التنسيقات أكثر طلبًا على الموارد - يختلف Hi10P عن مجرد ملف تعريف بارز في هذا ؛
  • يمكن أن يوفر العمل باستخدام التنسيقات التي تم أخذ عينات منها عينات فرعية زيادة ملحوظة في كفاءة الضغط ، ولكن من الصعب التحكم في فقد الجودة.

تشبيك


تم ابتكار التداخل لمضاعفة معدل الإطار المتصور بأقل تكلفة - معدل البت والدقة متماثلان ، لكن التردد أعلى. ومع ذلك ، مع الحركة السريعة ، تصبح الأسنان مرئية - خطوط الإطار السابق. يمكنك التخلص من التأثير دون إسقاط الإطارات وعدم تقليل الدقة الرأسية باستخدام المرشحات ، ولكنها ستقلل من الوضوح. إذا كان سيتم تشغيل الفيديو في المتصفح ، فمن الأفضل تصفية التداخل أثناء الترميز ، مثل التصفية في الوقت الحقيقي على العميل لن تعطي أفضل النتائج المرئية.

وضع كل ذلك معا


مثال x264:

ffmpeg -i [] -c:v libx264 -b:v [bitrate] #  -maxrate [bitrate] #   -r [framerate] -g [size] #GOP   -aspect [,  16:9] #   -profile high #    CABAC -color_primaries bt709 #   ,     -color_trc bt709 -colorspace bt709 -slices 4 #     -threads 4 -tune [value] -map_metadata:g -1 # ,      -map_metadata:s:v -1 -map_metadata:s:a -1 -map_chapters -1 -pass [1|2] #   -passlogfile [file] #    #-map ... -a:c ... -ac ... -a:b ..., ,  -   [] 

بالطبع ، في مقال واحد لم يكن من الممكن تغطية كل شيء ، لكنني متأكد من أن هذه المادة ستكون كافية لتحسين جودة العديد من مقاطع الفيديو.

قراءة الوثائق والتجربة.

المواد:

ffmpeg.org/ffmpeg-all.html
en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles
en.wikipedia.org/wiki/Chroma_subsampling
en.wikipedia.org/wiki/Color_space
en.wikipedia.org/wiki/ YUV

بالإضافة إلى المثال الوارد في المقالة الأخيرة ، علمت عن تثبيت آخر لنقرة الكود الخاصة بي. حاولت أن أأخذ أمثلة في المقال من هذه المواقع ، لكن على الرغم من هذا:
* ليس لدي علاقة مباشرة مع مؤلفي المواقع المذكورة وقد لا نشارك وجهات نظرهم وآرائهم. لا يمكنني التعليق على القرارات المتعلقة بمن وكيف يتم منح الوصول إلى الكود.

جاهز للإجابة على الأسئلة.

Source: https://habr.com/ru/post/ar437936/


All Articles