ffmpeg - কীভাবে? বিদ্যমান মিডিয়া ফাইল থেকে এনকোডিং সেটিংস কীভাবে অনুলিপি করবেন?


19

আমি এখনই একাধিকবার এটি করতে সক্ষম হতে চাই তাই আমি জিজ্ঞাসা করি।

যদি আমি একটি বিদ্যমান ভিডিও বা অডিও ফাইল, আছে ffmpeg, mplayerএবং অন্যান্য মিডিয়া প্লেয়ার কোডেক ধারক মত এর "propreties" এর কিছু অন্তত সনাক্ত করা সম্ভব, এবং ব্যবহৃত বিটরেট, সম্ভবত বিভিন্ন মানের এবং এনকোডিং নির্দিষ্ট সেটিংস, ইত্যাদি

এফএফএমপিগের সাথে এনকোডিংয়ের জন্য (সরাসরি) সেগুলি ব্যবহার করার জন্য কীভাবে আমি বিদ্যমান সেটিংস থেকে এই সেটিংসগুলি বের করতে পারি?

উদাহরণস্বরূপ, আমি কিছু সেটিংস এবং অন্য একটি সঙ্কুচিত ফাইলের mkvসাথে একটি এনকোডযুক্ত একটি ভিডিও পেয়েছি । আমি একই সেটিংসের সাথে এভিআই ট্রান্সকোড করতে x264 এমকেভি ফাইলের জন্য ব্যবহৃত এনকোডিং সেটিংস "অনুলিপি" করতে চাই ।x264avi

দ্রষ্টব্য: আমি এমন একটি উপায় খুঁজছি যা কোনও এনকোডার থেকে ডিকোডার থেকে সেটিংস "অনুবাদ" করে কোনও মানবিক কাজ অন্তর্ভুক্ত না করা উচিত। এটি ঠিক আছে যদি আমার প্রথমে সেটিংসটি বের করার এবং এটি অন্য কোথাও সংরক্ষণ করার প্রয়োজন হয় তবে আমি কেবল ffmpeg এর জন্য একটি কমান্ড লাইন বা প্রিসেট | কনফিগারেশন ফাইলটিতে পঠন বিকল্পগুলি ফিড করতে সক্ষম হতে চাই।


ঠিক আছে, আপনি সম্ভবত আউটপুটটি ffprobe(বিশেষত বিকল্প -show_streamsএবং -show_formatবিকল্পগুলির সাহায্যে) এর মাধ্যমে বাছাই করতে পারেন এবং সেই গুরুত্বপূর্ণ তথ্যটি স্ক্রিপ্ট করতে সেই তথ্যটি ব্যবহার করতে পারেন
অশুভসূচ

1
প্রায়শই একই সেটিংস যেমন বিটরেট (সঠিক বিটরেট অনুলিপি করার চেষ্টা করা ব্যবহারকারীদের মধ্যে জনপ্রিয় বলে মনে হচ্ছে) ব্যবহার করে, ফলস্বরূপ অনুকূল মানের ফলস্বরূপ হবে না। অবশ্যই আপনার টিপিকাল ইনপুটটি কেমন তা আমার কোনও ধারণা নেই তবে এক্স 264 এর সাহায্যে -crfবিকল্পটি সাধারণত ব্যবহারের পরামর্শ দেওয়া হয়। দেখুন FFmpeg এবং x264 এনকোডিং গাইড
লোগান

আমি এফডপ্রোবের আউটপুটে এনকোডিং সেটিংস সম্পর্কে কিছুই খুঁজে পাচ্ছি না :(
থেললক্যাট

এটি কেবল রেফ্রেমগুলির সংখ্যা দেখায়, তবে মিডিয়েনফো এর মতো অন্যান্য সেটিংসের মতো নয়
থেললক্যাট

Ffmpeg সহ ইনপুট সিনট্যাক্স মেটাডেটা ক্ষেত্র থেকে পৃথক। উদাহরণস্বরূপ আপনি channels:6একটি ভিডিও ফাইল থেকে পড়তে পারেন , তবে এটিকে এনকোড করতে আপনার সুইচটি ব্যবহার করতে হবে -ch:6। কিছু সুইচ 1 টি অক্ষর, কিছু ব্যবহার দুই, ইত্যাদি ব্যবহার
jiggunjer

উত্তর:


10

এটি করার কোনও স্বয়ংক্রিয় উপায় নেই। আপনাকে মূল ফাইলের প্যারামিটারগুলি দেখতে হবে এবং আউটপুট ফাইলে সেগুলি প্রয়োগ করতে হবে।

বেশিরভাগ ক্ষেত্রে এগুলি নিম্নলিখিত হবে:

  • ধারক বিন্যাস (এমপি 4, এমকেভি,…)
  • ভিডিও এবং অডিও কোডেক (এইচ .264, এইচ .265,…)
  • অডিও-নির্দিষ্ট:
    • অডিও চ্যানেলের সংখ্যা
    • অডিও নমুনা হার
    • অডিও বিটরেট
  • ভিডিও-নির্দিষ্ট:
    • প্রোফাইল এবং স্তর (সামঞ্জস্যতা নিশ্চিত করতে, এখানে দেখুন )
    • সর্বাধিক বিটরেট সীমাবদ্ধতা (যেমন H.264 এর জন্য )
    • সর্বোচ্চ ভিডিও রেজোলিউশন, পরিবর্তন মাধ্যমে -filter:v scaleবা-s:v
    • ফ্রেমরেট, মাধ্যমে পরিবর্তন -filter:v fps -r
    • ক্রোমা সাবসাম্পলিং, পরিবর্তনের মাধ্যমে -pix_fmt(যেমন, -pix_fmt yuv420pআপনাকে সর্বোত্তম সামঞ্জস্যতা দেওয়া উচিত)
    • জিওপি আকার (আইডিআর-ফ্রেমের মধ্যে দূরত্ব), এর মাধ্যমে সেট করা -g
    • অন্যান্য নির্দিষ্ট এনকোডিং সেটিংস

এমনকি যদি আপনি এটি ঠিকঠাক পেয়ে থাকেন তবে কিছু ডিভাইসের জন্য বিটস্ট্রমে এম্বেড থাকা নির্দিষ্ট, মালিকানা সম্পর্কিত তথ্য প্রয়োজন হতে পারে।


ব্যবহারের নির্দিষ্ট কাজ হিসাবে x264, এটি তুচ্ছ হতে যাচ্ছে না। আমি কোনও একক স্ক্রিপ্ট সম্পর্কে সচেতন নই যা এই কাজগুলির যত্ন নিতে চাই, যা সাধারণত ম্যানুয়ালি করা হয়। ইউনিক্স / লিনাক্স বা ওএস এক্সে এনকোডিং সেটিংস সম্পর্কে সর্বাধিক তথ্যের জন্য, আপনি mediainfoকিছু বাশ কৌশল ব্যবহার করতে পারেন ।

উদাহরণস্বরূপ, MP4 ফাইলে একটি x264-এনকোডযুক্ত ভিডিওর জন্য:

mediainfo input.mp4 | grep "Encoding settings" | cut -d':' -f2- | tr '/' '\n' | sed 's/ //'

এটি x264 বিকল্পের একটি তালিকা আউটপুট দেবে:

cabac=1
ref=3
deblock=1:-1:-1
analyse=0x3:0x113
me=hex
subme=7
psy=1
…

তারপরে আপনি x264 বাইনারিটিতে ম্যানুয়ালি এই বিকল্পগুলি পাস করতে পারেন।

আপনি যদি এফএফম্পেগের মাধ্যমে যান তবে এটি কিছুটা জটিল হলেও যদিও x264 এর সমস্ত বিকল্প এই জাতীয়ভাবে ম্যাপ করা যায় না। নোট করুন যে প্রায়শই একটি সাধারণ প্রিসেট, টিউন এবং প্রোফাইল স্পেসিফিকেশন পাশাপাশি করবে (যেমনটি দেখা গেছে x264 --fullhelpএবং x264 এনকোডিং গাইড ) এবং সিআরএফ স্তর উল্লেখ করা যথেষ্ট।

এবং এটি এমনকি অডিও বিবেচনা করছে না, যেখানে ভাগ্যক্রমে, সেখানে অনেকগুলি বিকল্প নেই।


সুতরাং ffprobe বা ffmpeg দিয়ে এটি সম্ভব নয়?
thelolcat

না, এফএফপ্রোবে / এফএফএমপিএগ দিয়ে এটি করা সরাসরি সম্ভব নয় । X264- এনকোডযুক্ত ভিডিওর ক্ষেত্রে, আমি mediainfoআউটপুটটি ব্যবহার করব এবং এই বিকল্পগুলি ম্যাপ করব ffmpeg এর সাথে -x264-params। ( X264 এনকোডিং গাইডও দেখুন )। তবে আপনি যদি সব ধরণের কোডেক / এনকোডার বা ধারক বিন্যাসের জন্য সাধারণ সমাধান চান, তবে আপনাকে একটি পরিমিত পরিশীলিত স্ক্রিপ্ট লিখতে হবে যা রূপান্তরটি করে।
slhck
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.