অপরিহার্য পরামিতিগুলি ছিনিয়ে নেওয়া, স্লহ্যাক এবং মুলভ্যা থেকে স্মার্ট পরামর্শ একত্রিত করে ব্যাখ্যার সাথে আরও ভাল উত্তর ।
ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3
ffmpeg
অডিও / ভিডিও ম্যানুপুলেশন সরঞ্জাম: ইতিমধ্যে ওপি দ্বারা নির্বাচিত, এটি এই কাজের জন্য বিশেষভাবে উপযুক্ত।
-i video.mp4
প্রথম ইনপুট ফাইল: কিছু অডিও সহ একটি ভিডিও যা আমরা নিষ্কাশন করতে চাই।
-i cover.jpg
দ্বিতীয় ইনপুট ফাইল, যখন আমরা ফলাফল অডিও ফাইলটি খেলি তখন আমরা প্রদর্শন করতে চাই এমন একটি চিত্র।
-acodec libmp3lame
আমরা LAME এনকোডার ব্যবহার করে একটি .mp3 ফাইল তৈরি করতে চাই।
-b:a 256k
এটি অডিও ট্র্যাকের জন্য বিটরেটকে একটি ধ্রুবক 256Kb / s তে সেট করে। একটি চৌকস বিকল্প হ'ল একটি ভেরিয়েবল বিটরেট সহ এনকোড করা হবে, মানের প্যারামিটার নির্দিষ্ট করে : -q:a 0
সর্বাধিক মানের জন্য জিজ্ঞাসা করা হয়, যখন -q:a 4
প্রায়শই অনুমিত অডিও গুণ এবং বিটরেটের (এবং তাই ফাইলের আকার) মধ্যে একটি ভাল আপস উপস্থাপন করে।
-c:v copy
এটি ইঙ্গিত দেয় যে ভিডিও স্ট্রিম (.jpg চিত্র) পুনরায় কোডিং করা হবে না তবে অবশ্যই এটি অনুলিপি করা উচিত। ক্ষতির বিন্যাসে পুনরায় কোডিং করার সময় অপ্রয়োজনীয় প্রক্রিয়াজাতকরণ এবং সম্ভাব্য মানের ক্ষতি এড়াতে এটি দরকারী। আমাদের ক্ষেত্রে, এই পরামিতি ছাড়াই চিত্রটি .jpg থেকে ডিকোড করা হবে এবং .png এ এনকোড হবে, যা সম্ভবত বাহ্যিক ফর্ম্যাট যা ডিফল্টরূপে চয়ন করা হয়। এটি মানের ক্ষতির প্রতিনিধিত্ব করবে না কারণ .png লসেলস, তবে প্রায়শই না ফাইলের আকার বাড়িয়ে তুলবে, এই কারণে যে .jpg (ক্ষতিগ্রস্থ হওয়া) সাধারণত একটি ভাল সংক্ষেপণের হার দেয় offers
-map 0:a:0
এটি প্রথম ( 0:
) ইনপুট ফাইল থেকে ব্যবহৃত স্ট্রিমটি নির্বাচন করে : এটিতে এটি প্রথম ( :0
) অডিও ( a
) স্ট্রিম হতে হবে।
-map 1:v:0
এটি দ্বিতীয় ( ) ইনপুট ফাইল থেকে প্রথম ( :0
) ভিডিও ( v
) স্ট্রিমটি নির্বাচন করে 1:
।
output.mp3
এই প্যারামিটারটির নামটি চূড়ান্তভাবে বেছে নেওয়া হয়েছিল যাতে ইতিমধ্যে প্রস্তাব দেওয়া যায় যে আমরা তৈরি করতে চাইলে অন্তর্ভুক্ত চিত্র সহ আউটপুট অডিও (.mp3) ফাইলটিতে এই নামটি দিতে হবে।
আসল উত্তর
এটি আমার বিবাহের ভিডিও (.mp4) এবং একটি ছবি (.jpg) একসাথে স্থির চিত্র সহ একটি অডিও (.mp3) ফাইল তৈরি করে:
ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3
এর সাথে ইনপুট স্ট্রিমগুলি বেছে নেওয়ার জন্য ffmpeg ডকুমেন্টেশন দেখুন -map
, যা এখানে প্রাসঙ্গিক বিকল্প।
আমি প্রথমে কমান্ডটি সহজভাবে চালিয়ে -map 0 -map 1
এই তথ্যটি পেয়েছি:
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> png (native))
Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))
সুতরাং আমি জানতাম যে আমি 1
ফাইলটি স্ট্রাক (এ্যাক অডিও) চেয়েছি যার একটি সূচক সংখ্যা রয়েছে 0
, অর্থাৎ ভিডিও ফাইল; সুতরাং এটি স্পষ্টভাবে নির্বাচন করা উচিত -map 0:1 -map 1
।