প্রথমে আপনার এফএফম্পেগ প্রোফাইল এবং সরাসরি কমান্ডলাইন বিকল্পগুলির মধ্যে পার্থক্য বুঝতে হবে। ffmpeg ইনস্টল করা হয়েছে বা যেখানেই অবস্থিত -vpreএকটি .ffpresetফাইল ব্যবহার /usr/share/ffmpeg/করে। এটি বিকল্প = মান জোড়ার একটি সিরিজ , এবং আপনার ক্ষেত্রে আপনাকে এটি নিজেরাই সংজ্ঞায়িত করতে হবে (কমপক্ষে আমি baselineffmpeg দিয়ে প্রেরিত প্রিসেট জানি না )।
আপনি নিজের তৈরি না করে এবং কমান্ড লাইনের বিকল্পগুলির জন্য কী তা না জানলে আমি প্রিসেটগুলি ব্যবহার করার বিরুদ্ধে সুপারিশ করব। আমি এখন থেকে কয়েক বছর ধরে ffmpeg ব্যবহার করে আসছি, এবং আমি কখনই প্রিসেট ব্যবহার করি না — আমার আসলেই কখনও হয়নি।
বেশিরভাগ ডিভাইসের সাথে সামঞ্জস্যপূর্ণ H.264 ভিডিও তৈরির জন্য একটি সাধারণ কমান্ড লাইনটি হ'ল:
ffmpeg -i <input> \
-c:v libx264 -crf 23 -profile:v baseline -level 3.0 -pix_fmt yuv420p \
-c:a aac -ac 2 -b:a 128k \
-movflags faststart \
output.mp4
কিছু নোট:
এইচ .264 / এএইচএমএল 5-তে একটি বিস্তৃত সমর্থনের জন্য সেরা সমন্বয়। এইচ .264 ডিকোডার নেই এমন ব্রাউজারগুলির অবশ্য একটি ভিপি 8 / ভারবিস ভিডিওও লাগবে। কিছু কমান্ড লাইনের উদাহরণগুলির জন্য, এই উত্তরটি দেখুন । অন্যান্য কোডেকগুলির জন্য উইকিপিডিয়ায় ব্রাউজার সমর্থন পৃষ্ঠাটিও দেখুন ।
H.264 এছাড়াও মোবাইল ডিভাইস জুড়ে ভাল কাজ করে।
-profile:v baselineএবং -level 3.0বিকল্পগুলি কেবল পুরানো মোবাইল ডিভাইসের জন্য প্রয়োজনীয় যা H.264 এর সিপিইউ-নিবিড় বৈশিষ্ট্যগুলি পরিচালনা করতে পারে না। আপনি সাধারণত এগুলি ছেড়ে বা তার পরিবর্তে ব্যবহার করতে পারেন -profile:v main।
সিআরএফ মান নির্ধারণ করে (18-28 একটি যুক্তিসঙ্গত পরিসর, নিম্ন মানে আরও ভাল মানের)। আপনি অবশ্যই একটি নির্দিষ্ট বিটরেট এর সাথে -b:v 1000kবা অনুরূপ ব্যবহার করতে পারেন । একটি বিটরেট চয়ন করুন যা ভিডিওর রেজোলিউশনের সাথে মেলে। কিছু স্বল্প-শক্তিযুক্ত ডিভাইস অহেতুক উচ্চ বিটরেট পরিচালনা করতে সক্ষম হতে পারে।
-movflags faststartযেহেতু এটি পরিবর্তে ফাইলের শুরুতে ধারক মেটাডেটা চলে আসে শেষে এটা দিয়া বিকল্প, স্ট্রীমিং জন্য অপরিহার্য। এটি পুরোপুরিভাবে লোড হওয়ার জন্য অপেক্ষা না করে প্লেব্যাকটি তত্ক্ষণাত শুরু করার অনুমতি দেবে।
তবে, এটি আপনার লক্ষ্যবস্তু করা সমস্ত ডিভাইসের জন্য সর্বনিম্ন সাধারণ ডিনোমিনেটর সন্ধান করতে নেমে আসে, যা সর্বদা উপস্থিত নাও হতে পারে। অবশ্যই আপনি H.264 এর চেয়ে অন্য কোনও (যেটি আরও খারাপ ) কোডেক ব্যবহার করতে চাইবেন না । প্রকৃতপক্ষে, ক্লায়েন্টদের কাছে বেসলাইন-এনকোডযুক্ত ভিডিও দেওয়া বা বুদ্ধিমানের কাজ হবে না যা মূল বা উচ্চ প্রোফাইল ডিকোড করতে পারে। আপনি হ্রাস ডিকোডিং জটিলতার বিরুদ্ধে মানের বাণিজ্য করবেন।
আমার অভিজ্ঞতা থেকে, অ্যান্ড্রয়েড ডিভাইসগুলি এমপি 4 ধারকটিতে AAC-LC অডিও সহ বেসলাইন H.264 খেলতে পারে। আমার এর সাথে কখনও সমস্যা হয়নি। আসলে, কিছু ডিভাইস উচ্চতর প্রোফাইলগুলি প্লে করতে পারে, যদিও এটি আনুষ্ঠানিকভাবে সমর্থিত নয়। আইওএস সাধারণত বেসলাইন এইচ .264 কে সমর্থন করে তবে আপনি অবশ্যই কয়েকটি ডিভাইসে মূল প্রোফাইল ব্যবহার করতে পারেন। কিছু দিকনির্দেশনার জন্য এই পোস্টটি দেখুন (যা কিছুটা পুরানো)।
আপনার যদি প্লেব্যাক সমস্যাযুক্ত ব্যবহারকারী থাকে তবে আপনার কোন ভিডিওটি সমস্যা সৃষ্টি করছে তা খুঁজে বের করতে হবে এবং তারা কোন হার্ডওয়্যার এবং প্লেয়ার সফ্টওয়্যারটি ব্যবহার করছে সে সম্পর্কে আরও বিশদ পেতে হবে। তারপরে আমরা সেই বিশেষ কেসটির সমস্যা সমাধানের বিষয়ে কথা বলতে পারি।