আমি যে জিআইএফ তৈরি করেছি তা এত মন্থর কেন?


33

আমি png এর সংগ্রহকে একক জিআইফে রূপান্তর করতে ইমেজম্যাগিক ব্যবহার করছি। আমি চাই এই জিআইএফটি যত তাড়াতাড়ি সম্ভব লুপ করুন।

এটি আমার প্রত্যাশিত আউটপুট ( উইকিপিডিয়ায় সৌজন্যে ):

প্রত্যাশিত আউটপুট

এটি আসলে আমি আউটপুট পাই:

আসল আউটপুট

আমার ব্রাউজারে (ফায়ারফক্স 17), প্রত্যাশিত জিআইএফ প্রকৃত জিআইএফের চেয়ে দ্বিগুণের বেশি দ্রুত চলে। এটি আমাকে অবাক করে, কারণ আমি উল্লেখ করেছি যে প্রতিটি ফ্রেমের 0 দেরি হওয়া উচিত।

প্রথমে আমি উইকিপিডিয়া থেকে নেওয়া জিআইএফটি বিস্ফোরিত করে 36 পিএনজি তৈরি করেছি:

--caution: command generates 36 pngs
convert.exe newton.gif newton_%d.png

তারপরে আমি coalesceপিএনজিগুলি একটি জিআইএফ-তে পুনরায় সংযুক্ত করতাম ।

convert.exe -dispose none -delay 0 newton_%d.png[0-35] -coalesce output.gif

identify নিশ্চিত করে যে প্রতিটি ফ্রেমের কোনও বিলম্ব নেই:

identify.exe -format "%T, " output.gif
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

এটি আসলে আসলটির চেয়ে কম বিলম্ব:

identify.exe -format "%T, " newton.gif
5, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2,

আসল জিআইএফ-তে প্রত্যাশিত জিআইএফ-এর চেয়ে কম বিলম্ব হয়। তাহলে প্রত্যাশিত জিআইএফ কেন আসল জিআইএফের চেয়ে দ্বিগুণ দ্রুত?


1
কৌতূহলের বাইরে, আপনি যদি বিলম্বটিকে 0 এর পরিবর্তে 1 এ সেট করেন তবে কী হবে?
মিগিলসন

1
ফ্রেম-রেট ইস্যুর মতো দেখাচ্ছে।
স্নাকডোক

@ মিগিলসন, আমি এটি চেষ্টা করেছি। 0-দেরি চিত্র এবং 1-দেরি চিত্র পুরোপুরি সিঙ্ক হয়েছে বলে মনে হচ্ছে। যা অদ্ভুত, কারণ 1-বিলম্বের চিত্রটি প্রতি লুপের 36 / 100th এর পিছনে থাকা উচিত।
কেভিন

1
tl; এই প্রশ্নের উপর ডাঃ ব্যবহার করুন-delay 2
ম্যাট এম

উত্তর:


17

আমি পরীক্ষা করে 10 মিমি (বিলম্ব = 1) সংস্করণ তৈরি করেছি।

10 মিমি বিলম্ব উদাহরণ

দেখে মনে হয় যে জিআইএফগুলি সরবরাহ করে এমন প্রোগ্রামগুলি দ্বিতীয় বিলম্বের হারের শততম ভাগকে সম্মান করে না। পরিবর্তে, তারা এমন একটি মান ব্যবহার করে যা আপনি পছন্দ করেছেন এমন ছোট মানের চেয়ে অনেক বেশি।

তারা কেন এই কারণ নিয়ে সত্যই মন্তব্য করতে পারছি না। আমি একাধিক কারণ নিয়ে এসেছি এবং এটি সম্ভব সমস্ত অনুমানই।

সাধারণভাবে, আমি আপনাকে সুপারিশ করব যে আপনি সমস্ত ক্ষেত্রে সেকেন্ডে কমপক্ষে দুই শতাধিক বিলম্ব ব্যবহার করুন।

সূত্রগুলি (এটি এর একাধিক কারণ বলে মনে হচ্ছে কীভাবে Some কিছু তুলনামূলকভাবে পুরানো):


1
যদি রেন্ডারিং প্রোগ্রামটি সমস্ত গিফগুলি খুব দ্রুতগতিতে ধীর করে দেয় তবে উইকিপিডিয়াটির জিআইএফটি আমার নিজের জিআইএফের মতোই ধীর হবে। তবে তা হয় না। উইকিপিডিয়া কেন গতির সীমা ভেঙে ফেলতে পারে, এবং আমি পারি না?
কেভিন

2
@ কেভিন: এটি খুব দ্রুত সমস্ত জিআইএফকে ধীর করে দেয়। আপনার জিআইএফগুলি খুব দ্রুত। উইকিপিডিয়ায় জিআইএফগুলি খুব দ্রুত নয়। আপনার "ধীরে ধীরে" হবে না তাই আপনাকে ধীর করতে হবে।
ডেভিড শোয়ার্টজ

উইকিপিডিয়া জিফের জন্য ফ্রেমটি বিলম্বিত করে 20 এমএস এবং 50 এমএসের মধ্যে। যদি আমি আমার নিজস্ব ফ্রেমের বিলম্বটি 20 এমএসে সেট করি তবে এটি এখনও ধীরতর, যদিও তাত্ত্বিকভাবে এটি উইকিপিডিয়া জিএফ হিসাবে একই "খুব দ্রুত নয়" মানদণ্ডটি পূরণ করে।
কেভিন

2
যদি 20 মিমি বিলম্বিত একটি উইকিপিডিয়া চিত্রের পাশাপাশি আপনি একটি জিআইফ অন্তর্ভুক্ত করেন যা আপনি 20 মিমি বিলম্বের সাথেও তৈরি করেন তবে আমি একবার নজর দেব।
ডেভিড মাহ

2
আমি ভুল ছিল. আমি যে 20 এমএস জিআইএফ তৈরি করেছি তা উইকিপিডিয়া জিআইএফ-এর চেয়ে তত দ্রুত।
কেভিন

18

দেখে মনে হচ্ছে @ ডেভিডমাহ ঠিক আছে। আমার লিনাক্স সিস্টেমে সর্বনিম্ন বিলম্ব 0.5% হয়:

convert -dispose none -delay 0.4 newton_%d.png[0-35] -coalesce output0.4.gif

এখানে চিত্র বর্ণনা লিখুন

convert -dispose none -delay 0.5 newton_%d.png[0-35] -coalesce output0.5.gif

এখানে চিত্র বর্ণনা লিখুন

convert -dispose none -delay 1 newton_%d.png[0-35] -coalesce output1.gif

এখানে চিত্র বর্ণনা লিখুন

কিছু কারণে চিত্রগুলি আমার ব্রাউজারে সঠিকভাবে প্রদর্শিত হবে না বলে মনে হচ্ছে। স্থানীয় চিত্র প্রদর্শক ( eom) ব্যবহার করে , 1 ম চিত্রটি মূল প্রশ্নের মধ্যে যতটা ধীর এবং অন্য দু'জনই উইকিপিডিয়া থেকে দ্রুত faster এটি আমার ব্রাউজারের সাথে সম্পর্কিত কোনও সমস্যা হয়ে থাকলে আমি পোস্ট করছি am যে কোনও ক্ষেত্রে, যদি উপরে পোস্ট করা আদেশগুলি চেষ্টা করে তবে আপনার আরও ভাল গতি পাওয়া উচিত।


আপডেট: 2 টি সমস্যা বলে মনে হচ্ছে। ব্রাউজারগুলি (কমপক্ষে y ফায়ারফক্স এবং লিনাক্সে ক্রোমিয়াম চলমান) <1.5 1.5 বিলম্বের সাথে তৈরি জিএফগুলি প্রদর্শন করতে পারে না। 1.5 ভাল কাজ করে, 1.4 ধীর। আমার চিত্র দর্শক 0.5 বা তার বেশি বিলম্বের সাথে ডিল করতে পারেন। উপরের চিত্রগুলির মধ্যে একটি ডাউনলোড করে এটিকে আপনার প্রিয় চিত্র দর্শনে খোলার চেষ্টা করুন। এছাড়াও, এগুলি দেখুন:

convert -dispose none -delay 1.4 newton_%d.png[0-35] -coalesce output1.4.gif

এখানে চিত্র বর্ণনা লিখুন

convert -dispose none -delay 1.5 newton_%d.png[0-35] -coalesce output1.5.gif

এখানে চিত্র বর্ণনা লিখুন

আপডেট 2: @ ডেভিডমাহ নীচের মন্তব্যে উল্লেখ করেছেন যে দশমিক মানগুলি নিকটতম পূর্ণসংখ্যাকে গোল করে। সুতরাং, 1.4 1 এর সাথে গোল করা হয়েছে যা খুব ধীর এবং 1.5 কে 2 দিয়ে গোল করা হয়েছে যা ঠিক।


7
দশমিক মানগুলিতে বিলম্বের চেষ্টা করার বিষয়ে সতর্ক থাকুন। বিলম্ব দুটি বাইটে সংরক্ষণ করা হয় (এর উপর প্রভাবগুলি হ'ল বৃহত্তম ফ্রেমের বিলম্ব 655360 মিমি) এবং একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা। রূপান্তরটি আপনার মানগুলিকে নিকটতম পূর্ণসংখ্যা হিসাবে গোল করে। en.wikedia.org/wiki/Graphics_Interchange_ Format#Animated_GIF
ডেভিড মাহ

3
@ ডেভিডমাহ আহ, এটি উপলব্ধি করে। ১.৫ কাজ করে কারণ এটি ২ টি গোল হয়ে গেছে এবং ১.৪ এর কারণ এটি ১ এর সাথে গোল হয়েছে না
টার্মন

6

আমি XxYবিলম্ব স্বরলিপি ব্যবহার করে আরও সাফল্য পেয়েছি , মূলত এটি xএর মতো/ , তাই যদি আপনি নির্দিষ্ট করেন -delay 1x20তবে ফ্রেমটি সেকেন্ডের 1/20 তম জন্য প্রদর্শিত হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.