GIF کو AV1 ویڈیو سے تبدیل کرنے کا وقت آگیا ہے۔

GIF کو AV1 ویڈیو سے تبدیل کرنے کا وقت آگیا ہے۔

یہ 2019 ہے اور یہ وقت قریب ہے کہ ہم نے GIFs (نہیں، ہم اس فیصلے کے بارے میں بات نہیں کر رہے ہیں! ہم یہاں کبھی متفق نہیں ہوں گے! - یہاں ہم انگریزی میں تلفظ کے بارے میں بات کر رہے ہیں، ہمارے لیے یہ متعلقہ نہیں ہے - تقریباً۔ ترجمہ)۔ GIFs بہت زیادہ جگہ لے لیتے ہیں (عام طور پر کئی میگا بائٹس!)، جو کہ اگر آپ ویب ڈویلپر ہیں، تو آپ کی خواہشات کے بالکل برعکس ہے! ایک ویب ڈویلپر کے طور پر، آپ ان چیزوں کو کم سے کم کرنا چاہتے ہیں جن کی صارفین کو ڈاؤن لوڈ کرنے کی ضرورت ہے تاکہ سائٹ تیزی سے لوڈ ہو۔ اسی وجہ سے، آپ جاوا اسکرپٹ کو چھوٹا کرتے ہیں، PNG، JPEG کو بہتر بناتے ہیں، اور بعض اوقات تبدیل کرتے ہیں۔ JPEG سے WebP. لیکن پرانے GIF کا کیا کریں؟

ہمیں GIFs کی ضرورت نہیں ہوگی جہاں ہم جا رہے ہیں!

اگر آپ کا مقصد سائٹ کی لوڈنگ کی رفتار کو بہتر بنانا ہے، تو آپ کو GIFs سے چھٹکارا حاصل کرنے کی ضرورت ہے! لیکن پھر آپ متحرک تصاویر کیسے بناتے ہیں؟ جواب ویڈیو ہے۔ اور زیادہ تر معاملات میں، آپ کو بہتر معیار اور 50-90% کی جگہ کی بچت ملے گی! زندگی میں، زیادہ تر چیزوں کے اپنے فائدے اور نقصانات ہوتے ہیں۔ جب آپ GIF کو ویڈیو سے تبدیل کرتے ہیں، تو اکثر آپ کو کوئی نقصانات نہیں مل پائیں گے۔

تمام GIFs کے ساتھ نیچے!

خوش قسمتی سے، حالیہ برسوں میں GIFs کو ویڈیوز سے تبدیل کرنا ایک عام بات ہے، لہذا تمام ضروری ٹولز پہلے سے ہی استعمال میں ہیں۔ اس پوسٹ میں، میں وہیل کو دوبارہ ایجاد نہیں کروں گا، لیکن موجودہ حلوں کو تھوڑا سا بہتر کروں گا۔ تو خلاصہ یہ ہے:

  1. ایک GIF لیں اور اسے ویڈیو میں تبدیل کریں۔
  2. H.264 یا VP9 کا استعمال کرتے ہوئے ویڈیو کو انکوڈ کریں، یعنی اسے کمپریس کریں اور اسے MP4 یا WebM کنٹینر میں پیک کریں۔
  3. بدل دیں۔ <img> اینیمیٹڈ GIF آن کے ساتھ <video> رولر کے ساتھ
  4. GIF اثر کے لیے آواز اور لوپ کے بغیر آٹو پلے آن کریں۔

گوگل کے پاس اس عمل کو بیان کرنے والی اچھی دستاویزات ہیں۔

یہ 2019 ہے۔

ابھی 2019 ہے۔ ترقی آگے بڑھتی ہے، اور ہمیں اس کے ساتھ رہنا چاہیے۔ اب تک ہمارے پاس دو کوڈیک آپشنز ہیں جو تمام براؤزرز اور ویڈیو انکوڈنگ ٹولز میں وسیع پیمانے پر تعاون یافتہ ہیں:

  1. H.264 - 2003 میں متعارف کرایا گیا اور آج سب سے زیادہ استعمال کیا جاتا ہے۔
  2. VP9 - 2013 میں ظاہر ہوا اور H.50 کے مقابلے میں تقریباً 264% کی کمپریشن بہتری حاصل کی، حالانکہ جیسا کہ وہ یہاں لکھتے ہیں۔ ہر چیز ہمیشہ اتنی گلابی نہیں ہوتی

نوٹ: اگرچہ H.265 H.264 کا اگلا ورژن ہے اور VP9 کا مقابلہ کرنے کی صلاحیت رکھتا ہے، لیکن میں براؤزر کی ناقص سپورٹ کی وجہ سے اس پر غور نہیں کرتا، جیسا کہ صفحہ پر دکھایا گیا ہے https://caniuse.com/#feat=hevc. لائسنسنگ کی لاگتیں بنیادی وجہ ہیں کہ کیوں H.265 H.264 کی طرح وسیع نہیں ہوا اور کیوں الائنس آف اوپن میڈیا کنسورشیم رائلٹی فری کوڈیک، AV1 کے ساتھ کام کر رہا ہے۔

یاد رکھیں، ہمارا مقصد یہ ہے کہ لوڈنگ کے اوقات کو تیز کرنے کے لیے بڑے GIFs کو ممکنہ طور پر سب سے چھوٹے سائز تک سکڑایا جائے۔ یہ ایک عجیب 2019 ہو گا اگر ہمارے پاس اپنے ہتھیاروں میں ویڈیو کمپریشن کے لیے کوئی نیا معیار نہیں ہے۔ لیکن یہ موجود ہے اور اسے AV1 کہا جاتا ہے۔ AV1 کے ساتھ آپ کر سکتے ہیں۔ VP30 کے مقابلے کمپریشن میں تقریباً 9% بہتری حاصل کریں۔. لیپوٹا! 🙂

AV1 2019 سے آپ کی خدمت میں ہے!

ڈیسک ٹاپس پر

حال ہی میں AV1 ویڈیو ڈی کوڈنگ کے لیے سپورٹ ڈیسک ٹاپ ورژنز میں شامل کیا گیا تھا۔ گوگل کروم 70 и موزیلا فائر فاکس 65. ابھی فائر فاکس سپورٹ چھوٹی ہے اور کریشوں کا سبب بن سکتی ہے، لیکن اس کے اضافے کے ساتھ چیزوں میں بہتری آنی چاہیے۔ dav1d ڈیکوڈر پہلے ہی فائر فاکس 67 میں (پہلے ہی جاری کیا گیا ہے، لیکن حمایت ظاہر ہوئی ہے - تقریبا. ترجمہ). نئے ورژن کے بارے میں تفصیلات کے لیے پڑھیں - dav1d 0.3.0 ریلیز: اس سے بھی تیز!

اسمارٹ فونز پر

مناسب ڈیکوڈرز کی کمی کی وجہ سے اسمارٹ فونز کے لیے فی الحال کوئی ہارڈ ویئر سپورٹ موجود نہیں ہے۔ آپ سافٹ ویئر ڈی کوڈنگ کر سکتے ہیں، حالانکہ اس سے بیٹری کی کھپت میں اضافہ ہوگا۔ AV1 ہارڈویئر ڈی کوڈنگ کو سپورٹ کرنے والے پہلے موبائل SOCs 2020 میں ظاہر ہوں گے۔

اور پھر مضمون کے قارئین اس طرح ہیں، "لہذا اگر موبائل فون ابھی تک اسے صحیح طریقے سے سپورٹ نہیں کرتے ہیں، تو AV1 کیوں استعمال کریں؟"

AV1 کافی حد تک نیا کوڈیک ہے، اور ہم اس کی موافقت کے بالکل آغاز میں ہیں۔ اس مضمون کو "جب آپ کھانا پکاتے ہیں، ہجوم اس کی پیروی کرے گا" کے مرحلے کے طور پر سوچئے۔ ڈیسک ٹاپ سپورٹ بذات خود کچھ سامعین کے لیے سائٹس کو تیز کرے گا۔ اور پرانے کوڈیکس کو فال بیک منظر نامے کے طور پر استعمال کیا جا سکتا ہے جب ٹارگٹ ڈیوائس پر AV1 تعاون یافتہ نہ ہو۔ لیکن جیسے ہی صارفین AV1 سپورٹ والے آلات پر سوئچ کرتے ہیں، سب کچھ تیار ہو جائے گا۔ اس کو حاصل کرنے کے لیے، ہمیں ذیل میں دکھایا گیا ویڈیو ٹیگ بنانے کی ضرورت ہے، جو براؤزر کو اپنا پسندیدہ فارمیٹ منتخب کرنے کی اجازت دے گا۔ AV1 - >> VP9 - >> H.264. ٹھیک ہے، اگر صارف کے پاس بہت پرانا ڈیوائس یا نیویگیٹر ہے جو ویڈیو کو بالکل بھی سپورٹ نہیں کرتا ہے۔ (جس کا H264 کے ساتھ انتہائی امکان نہیں ہے)، پھر وہ صرف GIF دیکھے گا۔

<video style="display:block; margin: 0 auto;" autoplay loop muted playsinline poster="RollingCredits.jpg">
  <source src="media/RollingCredits.av1.mp4" type="video/mp4">
  <source src="media/RollingCredits.vp9.webm" type="video/webm">
  <source src="media/RollingCredits.x264.mp4" type="video/mp4">
  <img src="media/RollingCredits.gif">
</video>

AV1 کی تخلیق

AV1 میں ویڈیوز بنانا آسان ہے۔ اپنے سسٹم کے لیے تازہ ترین ffmpeg بلڈ یہاں سے ڈاؤن لوڈ کریں۔ اور نیچے دی گئی کمانڈ استعمال کریں۔ ہم ہدف بٹریٹ حاصل کرنے کے لیے 2 پاس استعمال کرتے ہیں۔ ایسا کرنے کے لیے ہم ffmpeg کو دو بار چلائیں گے۔ پہلی بار ہم نتیجہ کو غیر موجود فائل میں لکھتے ہیں۔ یہ ایک لاگ بنائے گا جو ffmpeg کے دوسرے رن کے لیے درکار ہوگا۔

# Linux or Mac
## Проход 1
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 1 -f mp4 /dev/null && 
## Проход 2
ffmpeg -i input.mp4 -pix_fmt yuv420p -movflags faststart -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 2 output.mp4

# Windows
## Проход 1
ffmpeg.exe -i input.mp4 -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 1 -f mp4 NUL && ^
## Проход 2
ffmpeg.exe -i input.mp4 -pix_fmt yuv420p -movflags faststart -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 2 output.mp4

یہاں پیرامیٹرز کی خرابی ہے:

-i - Входной файл.

-pix_fmt - Используем формат 4:2:0 для выбора информации о цветности в видео. Существует много других возможных форматов, но 4:2:0 наиболее совместимый.

-c:v - Какой кодек использовать, в нашем случае - AV1.<br />
-b:v – Средний битрейт, которого мы хотим добиться.

-filter:v scale - Фильтр масштаба ffmpeg используется для уменьшения разрешения видео. Мы устанавливаем X:-1 что говорит ffmpeg уменьшить ширину до X, сохранив соотношение сторон.

-strict experimental - Надо указать, т.к. AV1 достаточно новый кодек.

-cpu-used - Ужасно названный параметр, который на самом деле используется для выбора уровня качества видео. Возможные значения 0-4. Чем меньше значение, тем лучше качество и, соответственно, больше время, которое займёт кодировка.

-tile-columns - Для использования нескольких тредов. Говорит AV1 разбить видео на отдельные колонки, которые могут быть перекодированы независимо для лучшей утилизации ЦПУ.

-row-mt – Тоже, что и предыдущий параметр, но разбивает так же на строки внутри колонок.

-threads - Количество тредов.

-pass - Какой проход сейчас выполняется.

-f - Используется только при первом проходе. Указывает формат выходного файла, т.е. MP4 в нашем случае.

-movflags faststart - Включаем быстрый старт видео, перемещая часть данных в начало файла. Это позволит начать воспроизведение ещё до полной загрузка файла.

GIFs بنانا

GIF بنانے کے لیے میں نے نیچے دی گئی کمانڈ کا استعمال کیا۔ سائز کو کم کرنے کے لیے، میں نے اصل 720 fps ویڈیو کی بجائے GIF کو 12px چوڑا اور 24 fps کر دیا۔

./ffmpeg -i /mnt/c/Users/kasing/Desktop/ToS.mov -ss 00:08:08 -t 12
-filter_complex "[0:v] fps=12,scale=720:-1" -y scene2.gif

ٹیسٹ کے نتائج

سو بار پڑھنے سے ایک بار دیکھنا بہتر ہے، ٹھیک ہے؟ آئیے یقینی بنائیں کہ AV1 ہمارے مقاصد کے لیے صحیح انتخاب ہے۔ میں نے یہاں دستیاب ٹیئرز آف سٹیل کی مفت ویڈیو لی https://mango.blender.org/، اور اسے AV1, VP9, ​​H.264 کوڈیکس کے لیے تقریباً ایک ہی بٹریٹ کا استعمال کرتے ہوئے تبدیل کیا۔ نتائج ذیل میں ہیں لہذا آپ خود ان کا موازنہ کر سکتے ہیں۔

نوٹ 1: اگر نیچے دی گئی فائل آپ کے لیے لوڈ نہیں ہوتی ہے، تو یہ آپ کے براؤزر کو اپ ڈیٹ کرنے کا وقت ہو سکتا ہے۔ میں کرومیم پر مبنی براؤزر کی سفارش کروں گا جیسے کروم، ویوالڈی، بہادر یا اوپیرا۔ AV1 سپورٹ پر تازہ ترین معلومات یہ ہیں۔ https://caniuse.com/#feat=av1

نوٹ 2: لینکس پر فائر فاکس 66 کے لیے آپ کو جھنڈا سیٹ کرنے کی ضرورت ہوگی۔ media.av1.enabled معنی میں true в about:config

نوٹ 3: میں نے ذیل میں باقاعدہ GIFs کو ان کے بڑے سائز اور اس صفحہ کو لوڈ کرنے کے لیے درکار ڈیٹا کی مقدار کی وجہ سے شامل نہ کرنے کا فیصلہ کیا ہے! (جو کہ ستم ظریفی ہوگی، کیونکہ یہ صفحہ کسی صفحہ پر ڈیٹا کی مقدار کو کم کرنے کے بارے میں ہے :))۔ لیکن آپ یہاں حتمی GIFs دیکھ سکتے ہیں۔ https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

مترجم کا نوٹ: Habr آپ کو آٹو پلے کو فعال کرنے اور فائل کو لوپ کرنے کی اجازت نہیں دیتا ہے، لہذا آپ صرف معیار کا جائزہ لے سکتے ہیں۔ آپ دیکھ سکتے ہیں کہ "متحرک تصاویر" لائیو کیسی نظر آئیں گی۔ اصل آرٹیکل.

منظر 1 @ 200 Kbps

یہاں بہت زیادہ حرکت ہوتی ہے، جو خاص طور پر کم بٹ ریٹ پر حساس ہوتی ہے۔ آپ فوری طور پر دیکھ سکتے ہیں کہ اس بٹ ریٹ پر H.264 کتنا خراب ہے؛ مربع فوری طور پر دکھائی دے رہے ہیں۔ VP9 صورتحال کو تھوڑا بہتر کرتا ہے، لیکن چوکور اب بھی نظر آ رہے ہیں۔ AV1 واضح طور پر جیتتا ہے، واضح طور پر بہتر تصویر تیار کرتا ہے۔

H.264

VP9

AV1

منظر 2 @ 200 Kbps

یہاں بہت زیادہ پارباسی CGI مواد ہے۔ نتائج پچھلی بار کی طرح مختلف نہیں ہیں، لیکن مجموعی طور پر AV1 بہتر نظر آتا ہے۔

H.264

VP9

AV1

منظر 3 @ 100 Kbps

اس منظر میں، ہم بٹریٹ کو 100 Kbps پر کر دیتے ہیں اور نتائج ایک جیسے ہیں۔ AV1 کم بٹ ریٹ پر بھی اپنی قیادت کو برقرار رکھتا ہے!

H.264

VP9

AV1

کیک پر چیری

GIF کے مقابلے میں محفوظ شدہ بینڈوڈتھ کی مقدار کو محسوس کرتے ہوئے اس مضمون کو ختم کرنے کے لیے - تمام ویڈیوز کا کل سائز زیادہ ہے... 1.62 MB!! ٹھیک ہے۔ کچھ fucking 1,708,032 بائٹس! مقابلے کے لیے، یہاں ہر منظر کے لیے GIF اور AV1 ویڈیو سائز ہیں۔

GIF
AV1

منظر 1
11.7 MB
0.33 MB

منظر 2
7.27 MB
0.18 MB

منظر 3
5.62 MB
0.088 MB

صرف شاندار! کیا ایسا نہیں ہے؟

نوٹ: VP9 اور H264 کے فائل سائز نہیں دیے گئے ہیں، کیونکہ ایک ہی بٹریٹ کے استعمال کی وجہ سے وہ عملی طور پر AV1 سے مختلف نہیں ہیں۔ ایک ہی سائز کے ساتھ دو مزید کالموں کو شامل کرنا بے کار ہو گا، صرف اس بات کو اجاگر کرنے کے لیے کہ یہ کوڈیکس بہت چھوٹے فائل سائز میں GIF سے بہت بہتر معیار پیدا کرتے ہیں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں