এইচটিএমএল-সামঞ্জস্যপূর্ণ "প্রত্যেকের জন্য ভিডিও" পেতে আমার কী গুচ্ছ ffmpeg স্ক্রিপ্টগুলির দরকার?


12

প্রত্যেকের জন্য ভিডিও ব্যবহার করার জন্য সমস্ত সঠিক ফর্ম্যাটে একটি ভিডিও পেতে ffmpeg / mencoder / some_other_CLI_app এ আমার কমান্ডের কোন তালিকা করা উচিত ?

অর্থাত্ এমন একটি সূক্ষ্মতা রয়েছে যা সেখানে বলছে এমন কোনও যান্ত্রিক টিউটোরিয়াল উপস্থিত রয়েছে

VIDEO=video.mp4
TYPE=$(ffmpeg --find-information-about-the-video ... )
ffmpeg ... > video.mov
ffmpeg ... > video.flv
ffmpeg ... > video.webm
ffmpeg ... > video.h.264
...

তারপরে ভিডিওটির জন্য প্রত্যেকের কোডটি আপনার পৃষ্ঠাতে কপি এবং পেস্ট করুন?

আমার লক্ষ্যটি আমার ব্যক্তিগত ওয়েবপৃষ্ঠায় একটি এমবেডড ভিডিও থাকা উচিত। ফ্ল্যাশ ফ্যালব্যাক সহ এইচটিএমএল 5 পছন্দ করা হয়েছে, তাই সহজ উপায়টি সবার জন্য ভিডিও বলে মনে হয়। তবে সেই পৃষ্ঠাটি সবচেয়ে জটিল অংশটি ছেড়ে দেয়, ভিডিওটিকে সমস্ত বিভিন্ন ফর্ম্যাটে এনকোড করে পাঠককে ভিডিও ফর্ম্যাটগুলি সম্পর্কে একটি দীর্ঘ এবং সম্পূর্ণ নিবন্ধটি পড়ার দ্বারা অনুগ্রহ করে । অবশ্যই এটি প্রয়োজনীয় নয়। আমি কোনও ব্যবহারকারীকে অন্ধভাবে একটি অডিও ফাইলকে বিভিন্ন ফর্ম্যাটের একগুচ্ছ রূপান্তর করতে কমান্ডের একটি তালিকা সরবরাহ করতে পারি। আশা করি কোনও এফএমপিগ গুরু ভিডিওর জন্য একই কাজ করতে পারেন।


1
আপনার সিউডোকোড উদাহরণগুলিতে গৌণ মন্তব্য: .movএইচটিএমএল 5 ভিডিওর জন্য কোনও নেই , এবং কোনও h.264এক্সটেনশনও নেই । সেখানে হয় .264 যা চূড়ান্ত ইউনিট জন্য কাঁচা অ্যানেক্স বি bytestream হয়। ভিডিও এনকোডিং কোনও রকেট বিজ্ঞান নয়, তবে ধারণাগুলি জানতে আপনার কিছুটা সময় বিনিয়োগ করতে হবে।
slhck

উত্তর:


21

দ্রষ্টব্য: এই উত্তরটি মূল পোস্ট হওয়ার পরে থেকেই ভারী সম্পাদিত হয়েছিল। এখন এটি 2017; স্ট্রিমিং এর আগের চেয়ে আলাদাভাবে কাজ করে। এই গাইডটি একটি প্রদত্ত রেজোলিউশনে একটি ভিডিও স্ট্রিমের সহজ প্রগতিশীল ডাউনলোড ধরে নিয়েছে - কোনও অভিযোজিত স্ট্রিমিং নেই।

আবশ্যকতা

প্রথমে, সাম্প্রতিক ffmpegসংস্করণটি ডাউনলোড করার বিষয়টি নিশ্চিত করুন (একটি স্ট্যাটিক বিল্ড ডাউনলোড করুন; কল apt-get install ffmpegবা অনুরূপ করবেন না )। আদর্শভাবে, এটি নিজেই সংকলন করুন । এটি খুব বেশি সময় নেয় না।

সর্বাধিক ব্রাউজার দ্বারা সমর্থিত ভিডিওগুলি তৈরি করতে সর্বদা সর্বশেষতম সামঞ্জস্যতা টেবিলটি পরীক্ষা করুন । প্রতিটি ব্রাউজারে কাজ করে এমন কোনও একক কোডেক / ফর্ম্যাট নেই, তবে আপনি যদি এমপি 4-তে এইচ .264 এবং ওয়েবএম-তে ভিপি 9 উত্পন্ন করেন তবে স্বতন্ত্র অডিও কোডেকের সাথে আপনার ক্রোম, ফায়ারফক্স, সাফারি এবং আইই এর কয়েকটি সংস্করণ সমর্থন করবে।

ওয়েবএম (ভিপি 9 / ভারবিস)

FFmpeg VP9 গাইডের সুপারিশগুলি অনুসরণ করুন এবং হারের সীমাবদ্ধতা সহ একটি দ্বি-পাস এনকোডিং পদ্ধতি ব্যবহার করুন:

ffmpeg -y -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 1 -f webm /dev/null && \
ffmpeg -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 2 output.webm

লক্ষ্য বিটরেট নির্ভর করে আপনার রেজোলিউশন, ফ্রেম রেট, সামগ্রীর ধরণ এবং আপনি কী মানের চান। 30 এমপিএসে এইচডি ভিডিওর জন্য 2.5 এমবিআইটি / গুলি ভাল আপস করা উচিত। কিছু প্রস্তাবনার জন্য এই গুগল গাইড দেখুন ।

এমপি 4 (এইচ .264 / এএসি)

FFmpeg H.264 গাইডের সুপারিশগুলি অনুসরণ করুন এবং হারের সীমাবদ্ধতা সহ একটি দ্বি-পাস এনকোডিং পদ্ধতি ব্যবহার করুন:

ffmpeg -y -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 1 -c:a aac -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 2 -c:a aac -movflags faststart output.mp4

এখানে, লক্ষ্য বিটরেট ভিপি 9 ভিডিওর তুলনায় প্রায় 50% বেশি হওয়া উচিত, কারণ এইচ .264 তেমন দক্ষ নয়। -movflags faststartভিডিওটির প্রাথমিক লোডিং দ্রুত করার জন্য দ্বিতীয় পাসের বিকল্পটি যুক্ত করুন ।

অডিও বিকল্পগুলি সেট করার জন্য, এএসি এনকোডিং গাইড দেখুন


1
আপনার অনুচ্ছেদের একটির 2013-12-19 সংস্করণটি মধ্য বাক্যটিতে বন্ধ হয়ে যায়। "অডিওটি আবারও 128 কেবিট / সেটে ডিফল্ট হয়েছে তবে আপনি ভ্যারিয়েবল বিটরেটের জন্য q: a সেট করতে পারেন, যেখানে মানগুলি 0 থেকে 500 অবধি থাকে। 100 ডিফল্ট এবং উচ্চতর মানে আরও ভাল। যদি"
অ্যালান ডি স্মেট

@ এসএলএইচএচ অনেকটা অর্থবোধ করে, তবে আমার দুটি সেন্ট হ'ল আপনি ওওজিটি ফেলে এবং সমস্ত আইওএস ডিভাইস বা এইচএলএস গ্রহণকারীদের সমর্থন করার জন্য এমপিগেটস / এম 3 ইউ 8 দিয়ে এটি প্রতিস্থাপন করেন। আপনি .mp4 ফাইলগুলি পুনরায় ব্যবহার করতে পারেন এবং কেবল ffmpeg এ এমপিইগ- ts প্রসেসিং যুক্ত করতে পারেন।
পল গ্রেগোয়ার

@ মনডেন প্রকৃতপক্ষে, তবে এমপিইজি-টিএস /। এম 3 ইউ 8 সাধারণত HTML5- সামঞ্জস্যপূর্ণ ভিডিও নয়। আপনার একটি এইচএলএস সার্ভার দরকার এবং স্ট্রিমিং সম্পর্কে আপনার আরও কিছুটা জানা দরকার যা সত্যই এই প্রশ্নের ক্ষেত্রের মধ্যে নয়।
slhck

ভাল পয়েন্ট, তবে আমার অভিজ্ঞতা থেকে এখনও পর্যন্ত একটি সাধারণ এইচটিএমএল সার্ভার একটি ভিডিও ট্যাগে এম 3 ইউ 8 পরিবেশন করতে পারে। সাধারণত একমাত্র যা করা দরকার তা হ'ল m3u8 এর জন্য মাইম প্রকারগুলি যুক্ত করুন এবং সম্পর্কিত সার্ভার কনফিগারেশনে টিএস করুন।
পল গ্রেগোয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.