ইমেজ + অডিও = এমপি 4: কীভাবে ভিডিও ছোট করবেন?


12

আমি এমপি 4 তৈরি করতে একটি এমপি 4-তে একটি জেপিজি যুক্ত করতে ffmpeg ব্যবহার করছি।

ভিডিওটি তৈরির জন্য কেবল একটি চিত্র রয়েছে বলে আমি ভাবছি যে ভিডিওর আকার হ্রাস করার কোনও উপায় আছে কিনা?

COMMAND:

$ ffmpeg -loop 1 -i image.jpg -i audio.mp3 -shortest -c:a copy output.mp4

ফলাফল:

  • image.jpg = 26.7 কে (চিত্রটি এত পরিষ্কার নয়)
  • audio.mp3 = 64.6 এম (54 মিনিট)
  • output.mp4 = 80.6 এম (ভিডিও ফলাফলটি এত পরিষ্কার নয়, সংগীত এখনও ভাল)

এটি কি এমপি 4 এর জন্য যুক্তিসঙ্গত আকার?


আমি
এমপি

আউটপুট জন্য লক্ষ্য প্লেয়ার, ডিভাইস বা সাইট কি?
লগইন

উত্তর:


18

ইউটিউবে আপলোড করার জন্য

H.264: ক্ষুদ্রতম ফাইল

এই পদ্ধতি H.264 ভিডিও এনকোড করতে libx264 ব্যবহার করে। এটি নীচের স্ট্রিম অনুলিপি পদ্ধতির চেয়ে ধীর, তবে সম্ভাব্যভাবে একটি ছোট ফাইল আকার আউটপুট করবে।

ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 \
-c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest output.mkv

স্ট্রিম অনুলিপি: দ্রুততম প্রক্রিয়া

এই পদ্ধতিটি এমকেভি ধারকটিতে কেবল চিত্রগুলি অনুলিপি (কোনও এনকোডিং নেই) প্রবাহিত করবে। এটি অত্যন্ত দ্রুত, তবে উপরের পদ্ধতির চেয়ে আকারটি যদি গুরুত্বপূর্ণ হয় তবে একটি ছোট ফাইল তৈরি করতে পারে।

ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 -c copy -shortest output.mkv
  • ইউটিউব ঠিক যে কোনও কিছু গ্রহণ করে তাই এই কমান্ডগুলি এনকোডিংটি দ্রুত করতে, বা ফাইলের আকার ছোট করতে এবং গুণমানকে উচ্চতর রাখতে কয়েকটি কৌশল ব্যবহার করে কারণ আপনি যা যা দেবেন তা ইউটিউব পুনরায় এনকোড করবে। আপনার প্লেয়ার সম্ভবত এটি পছন্দ করবে না তবে ইউটিউব পছন্দ করবে।

  • এই উদাহরণগুলিতে খুব কম ফ্রেম রেট ব্যবহৃত হয় যা 25 fps এর ডিফল্টের চেয়ে দ্রুত প্রক্রিয়া করা উচিত।


যে কোনও প্লেয়ারের জন্য বিস্তৃত সামঞ্জস্য

ffmpeg -loop 1 -i image.png -i music.mp3 -vf "scale='min(1280,iw)':-2,format=yuv420p" \
-c:v libx264 -preset medium -profile:v main -c:a aac -shortest -movflags +faststart output.mp4
  • এই মাত্র খুবই প্রাচীন ডিভাইস (পরিবর্তন ছাড়া কিছু সম্পর্কে খেলতে উচিত -profile:v mainকাছে -profile:v baselineযে যদি ক্ষেত্রে দেখা যায়)।

  • আপনার অডিও ইনপুট ইতিমধ্যে এএসি হলে পরিবর্তন -c:a aacকরতে -c:a copyঅপ্রয়োজনীয় পুনরায় এনকোডিং এড়ানো।

  • এনকোডিংয়ের সময় দীর্ঘ হবে এবং ফাইলের আকার উপরের ইউটিউব কমান্ডের চেয়ে বড় হবে।

  • দেখুন H.264-: FFmpeg উইকি আরও তথ্যের জন্য।


আপনি কি ইউটিউব দ্বারা অনুমোদিত সর্বনিম্ন ফ্রেম / সেকেন্ড সহ 1280 * 720 তে a.jpg + a.mp3 = a.mp4 বানাতে কোডের একটি লাইন সরবরাহ করতে পারেন? এছাড়াও কেবল একটি কাজ রয়েছে তাই আমার কি "-লুপ 1" মুছতে হবে? আগাম ধন্যবাদ.
সিডু

@ সিআইডিইউ বিদ্যমান কমান্ড আপনার অনুরোধটি যা করে (এমপি 4 এর পরিবর্তে এমকেভি আউটপুট ব্যতীত) তা করে তবে আমি জানি না যে ইউটিউব সমর্থিত সর্বনিম্ন ফ্রেম রেটটি কী। আপনাকে শুধু পরীক্ষা-নিরীক্ষা করতে হবে। আপনি যখন স্রেফ ইউটিউবে আপলোড করছেন তখন আপনার কেন এমপি 4 লাগবে?
লগান

আমি চেষ্টা করেছিলাম তবে এটি বলেছে:Unrecognized option 'preset'. Error splitting the argument list: Option not found
NineCattoRules

আরও তথ্য না বলেই বলা যেতে হবে আপনার সম্পূর্ণ ffmpegকমান্ড এবং কমান্ড থেকে সম্পূর্ণ কনসোল আউটপুট প্রদর্শন করতে একটি পেস্টবিন সাইট ব্যবহার করুন , তারপরে একটি মন্তব্যে লিঙ্কটি সরবরাহ করুন।
লোগান

ধন্যবাদ, আমি এমসি 3 মান সংগ্রহস্থল ব্যবহার করে এফএফএমপিইগ পুনরায় ইনস্টল করেছি এবং এখন ভাল কাজ করে!
নাইনগেটোরুলস

3

আমি কেবল যা ভাবতে পারি তা কেবল এই তথ্যের সাথেই।

টুকরো টুকরো করে যাই:

যেহেতু ভিডিওটিতে কেবল একটি চিত্র যুক্ত করা হয়েছে। আমি ভাবছি ভিডিওর আকার হ্রাস করার কোনও উপায় আছে কিনা যেমন 28 এর পরিবর্তে বলের বিট রেট / সেকেন্ড = 1?

এটি স্থির চিত্র হিসাবে, পরিবর্তনের দরকার নেই। শুধু স্থির থাকুন।

আপনি সেখানে যা বলছেন তা প্রতি সেকেন্ডের ফ্রেম (fps) বিটরেট নয়। এবং আপনি ধারণা ঠিক আছে। কেবল একটি স্থির চিত্র 1 বেঁধে রাখুন কোনও সমস্যা হবে না।

এমপিথের জন্য এটি কি যুক্তিসঙ্গত আকার? চিত্রের আকার কি অনেক বেশি গুরুত্বপূর্ণ?

এক্ষেত্রে চিত্রের আকারের কোনও তাত্পর্যপূর্ণ ওজন থাকবে না কারণ আমরা কেবল একটি স্থির চিত্র নিয়ে কাজ করছি। যদি এটি একটি উচ্চ মানের ভিডিও হত তবে এটি অন্যরকম সমস্যা।

আমি কি jpg কে 1080 * 720 এ আকার দিতে হবে এবং ffmpeg এ 720p হিসাবে আউটপুট এ অতিরিক্ত সেটিংস তৈরি করতে পারি (তারপরে ffmpeg সেটিংটি কী :) :)?

আপনি যে রেজোলিউশনটি বলছেন এটি 1280x720।

আমি -loop 1এখানে অপশনটির পয়েন্টটি দেখতে পাচ্ছি না , এটি কেবল প্রক্রিয়াটি ধীর করবে। আপনি কি -shortestফাইলটির 1 টিরও বেশি ইনপুট স্ট্রিম ব্যবহার করেছেন? যদি না হয় তবে এটি ব্যবহার করার কোনও কারণ নেই। যেহেতু আপনি ব্যবহার করেছেন -acodec copyআমাকে ধরে নিতে হবে আপনি এটি পুনরায় এনকোড করতে চান না।

পুনরায় এনকোডিং ছাড়াই এবং বিটরেট স্পর্শ না করে 720p 1fps এর আউটপুট জন্য:

ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 output.mp4

এই ক্ষেত্রে একাধিক ইনপুট স্ট্রিম রয়েছে এবং আপনি ffmpeg সংক্ষিপ্ততম স্ট্রিমের মধ্যে এনকোডিং শেষ করতে চান:

ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 -shortest output.mp4

এখন যদি আপনাকে বিটরেট পরিবর্তন করতে হয় (আসুন উদাহরণ হিসাবে 1024k বলুন);

ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -b:v 1024k -bufsize 1024k -s 1280x720 output.mp4

দেখুন: আউটপুট বিটরেট সীমাবদ্ধ করুন

-সি: একটি অনুলিপি = ইনপুট অডিও স্ট্রিমটি অনুলিপি করুন যাতে আমরা পুনরায় এনকোড না করি।

-b: v = বিটরেট নির্দিষ্ট (ধরণের নয়) ধ্রুবক হতে হবে to

-bufsize = এটি এমন বিরতি যাতে গড় বিটরেট গণনা করে। নিম্নতম আরও ক্ষতির মানের চিত্র বোঝায় তবে উল্লিখিত ইন- বি অনুসারে আরও সঠিক বিটরেটস ।

-s = ভিডিও আউটপুটের আসল আকার।

-ফ্রেমারেট = আমরা চাই যে ইনপুট ফ্রেম হার আউটপুটটি ব্যবহার করবে।

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

আপনি যা বলছেন তা থেকে, আপনি যে তথ্য সরবরাহ করছেন এবং আপনি যা করার চেষ্টা করছেন তা থেকে আমার মনে হয় আপনার লক্ষ্য অ্যালবাম-আর্ট এমপি 3 তে এম্বেড করা। যদি এটি আপনার লক্ষ্যটি হয় তবে এটি আপনার প্রয়োজনীয়তা আরও ভাল ফিট করবে:

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

-map_metadata = infil থেকে আউটপুট ফাইলের ffmpeg মেটাডেটা নির্দিষ্টকারী। এই ক্ষেত্রে ( শূন্য ) বিশ্বব্যাপী মেটাডেটা।

-ম্যাপ 0 = ইনপুট স্ট্রিম 1 (অডিও)।

-ম্যাপ 1 = ইনপুট স্ট্রিম 2 (চিত্র)।

যদি এখানে কিছুই আপনার অনুরোধের অনুকূলে না থাকে তবে দয়া করে আরও তথ্য দিন।


-framerateএকটি ইনপুট বিকল্প হিসাবে ব্যবহার এবং আউটপুট অপসারণ বিবেচনা করুন -r: অন্যথায় 25 এর ডিফল্ট ইনপুট ফ্রেমরেট ব্যবহৃত ffmpegহবে এবং তারপরে ফ্রেমগুলি অর্জন করতে হবে -r 1। আপনি যদি কেবল ইনপুট ফ্রেম হার ঘোষণা করেন তবে আউটপুট একই ফ্রেম হার ব্যবহার করবে।
লগন

ধন্যবাদ। তা জানতাম না। প্রস্তাবিত পরিবর্তনগুলি প্রতিফলিত করতে সম্পাদিত।
ফেনারির

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