আমি কীভাবে এফএফএমপিএগ দিয়ে ভিডিও থেকে অডিও আহরণ করতে পারি?


227

ভিডিও থেকে অডিও উত্তোলনের জন্য আমি নিম্নলিখিত কমান্ডটি চেষ্টা করেছি:

ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3

তবে আমি নিম্নলিখিত আউটপুট পেতে

libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.19. 0 /  1.19. 0
libswscale     0.11. 0 /  0.11. 0
libpostproc   51. 2. 0 / 51. 2. 0
SamplE.avi: Invalid data found when processing input

দয়া করে কেউ সাহায্য করতে পারেন?

উত্তর:


405

পুনরায় এনকোডিং ছাড়াই অডিও স্ট্রিমটি বের করতে:

ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac
  • -vn কোনও ভিডিও নয়।
  • -acodec copy বলেছেন যে একই অডিও স্ট্রিমটি ইতিমধ্যে সেখানে রয়েছে use

কোডেকটি কী তা দেখার জন্য আউটপুটটি পড়ুন, ডান ফাইল নাম এক্সটেনশন সেট করতে।


53
এবং কোন অডিও স্ট্রিমটি এটি প্রথমবার তা খতিয়ে দেখার জন্য ffmpeg প্রথমবারের পরিবর্তে ffprobe ইনপুট-ভিডিও.avi ব্যবহার করুন
ফ্লোরিয়ানবি

15
আপনি যদি কেবল কোনও ভিডিও স্ট্রিম থেকে অডিও উত্তোলন করেন তবে অডিওটির দৈর্ঘ্য ভিডিও দৈর্ঘ্যের চেয়ে কম হতে পারে। এটি না ঘটে তা নিশ্চিত করতে, এফএফএমপিগে একই কল সহ অডিও এবং ভিডিও উভয়ই সরিয়ে ফেলুন, যেমন "ffmpeg -i vid.avi -map 0: a Audio.wav -map 0: v justvideo.avi
ব্লেন্ডারবেন্ডার

2
এই উত্তরটি কোনও কমান্ডের সাহায্যে প্রসারিত করা দুর্দান্ত হবে যা কাঁচা এএসি কে এম 4 এ ধারক হিসাবে আবদ্ধ করে।
গ্রাস ডাবল

8
এই সুনির্দিষ্ট ক্ষেত্রে, কেবল গন্তব্য পথে ".aac" ".m4a" দিয়ে প্রতিস্থাপন করুন। ffmpeg আপনার উদ্দেশ্য অনুমান করার জন্য যথেষ্ট স্মার্ট, এবং এটি ফলাফলকে এম 4 এ ধারক হিসাবে আবদ্ধ করে :)
গ্রাস ডাবল

1
এফডব্লিউআইডাব্লু, আমি একটি পিএইচপি স্ক্রিপ্ট তৈরি করেছি, যাতে আমি কেবল ইনপুট ভিডিও ফাইলটি নির্দিষ্ট করি এবং এটি স্বয়ংক্রিয়ভাবে আউটপুট অডিও ফাইলটির প্রসারণ নির্ধারণ করে: superuser.com/questions/1301901/…
গ্রাস ডাবল

117

AVI থেকে সর্বোত্তম ব্যবহারের উচ্চ মানের এমপি 3 এনকোড করতে- কি: ভেরিয়েবল বিট রেটের জন্য a :

ffmpeg -i sample.avi -q:a 0 -map a sample.mp3

যদি আপনি চাই প্রতি একটি ভিডিও থেকে অডিও কিছু অংশ বের করে ব্যবহার -ss শুরু টাইমস্ট্যাম্প এবং নির্দিষ্ট করার বিকল্প -t 3 মিনিট ও 45 সেকেন্ডের জন্য 5 সেকেন্ড থেকে এনকোডিং সময়কাল, যেমন নির্দিষ্ট করার বিকল্প:

ffmpeg -i sample.avi -ss 00:03:05 -t 00:00:45.0 -q:a 0 -map a sample.mp3
  • টাইমস্ট্যাম্পগুলি এইচএইচ: এমএম: এসএস.এক্সএক্সএক্সএক্স ফর্ম্যাটে বা সেকেন্ডে হওয়া দরকার।

  • আপনি যদি -t বিকল্পটি নির্দিষ্ট না করেন তবে এটি শেষ পর্যন্ত যাবে।

কাজের উদাহরণ:

  1. ডাউনলোড করুন ffmpeg
  2. কমান্ড প্রম্পট (স্টার্ট> রান> সিএমডি) খুলুন বা একটি লিনাক্স / ম্যাক একটি টার্মিনাল খুলুন
  3. ডিরেক্টরিতে সিডি ffmeg.exe দিয়ে
  4. আপনার কমান্ড জারি করুন এবং আউটপুট ফাইলের জন্য অপেক্ষা করুন (বা কোনও ত্রুটি সমাধান করুন)

এখানে চিত্র বর্ণনা লিখুন


3
-q:aমানগুলির জন্য এখানে একটি গাইড রয়েছে : trac.ffmpeg.org/wiki/Encode/MP3 জিরোটি হ'ল সর্বোচ্চ মানের ভিবিআর সেটিং, যা সাধারণত সান সিবিআর রেঞ্জের উপরের অংশে গড় বিটরেটের ফলাফল দেয় (যেখানে 320 কেবিট / এস হয় সর্বাধিক, সম্ভবত বিন্দু ছাড়িয়ে কিছুটা, যেখানে লসলেস সংক্ষেপণ আরও উপযুক্ত হয়ে যায়)।
এভেজেনি সার্জিভ

3
এবং কি করে -map a?
Iulian Onofrei

ক্যাভ্যাট: এটি ক্ষতিকারক সংকোচনের সাথে অডিওটিকে পুনরায় এনকোড করছে, যা মানকে কিছুটা হ্রাস করবে। যদি আসলটি ইতিমধ্যে সংকুচিত হয়ে থাকে তবে আপনি গুণটি দু'বার হ্রাস করবেন, যা লক্ষণীয় হতে পারে বা নাও পারে।
ডেভিডমহ

এই কমান্ডটি আমার পক্ষে কাজ করে, যখন উপরের -vnকোনওটি না করে।
মিমি

12

কমান্ড লাইনটি সঠিক এবং একটি বৈধ ভিডিও ফাইলে কাজ করে। আমি নিশ্চিত করব যে আপনি এমপি 3 দিয়ে কাজ করার জন্য সঠিক লাইব্রেরি ইনস্টল করেছেন, অন্য অডিও কোডেকের সাথে লঙ্গা ও প্রোব ইনস্টল করেছেন।

সাধারণত

ffmpeg -formats

অথবা

ffmpeg -codecs

আপনি আরও জানুন যাতে পর্যাপ্ত তথ্য দিতে হবে।


11

ffmpeg -i sample.aviআপনাকে আপনার ফাইলটির জন্য অডিও / ভিডিও ফর্ম্যাট তথ্য দেবে। ইনপুট স্ট্রীমগুলি বিশ্লেষণের জন্য আপনার কাছে সঠিক লাইব্রেরি কনফিগার করা আছে তা নিশ্চিত করুন। এছাড়াও, ফাইলটি দূষিত না হওয়ার বিষয়টি নিশ্চিত করুন।


এখন আমি সঠিক ফলাফল পেয়েছি যখন আমি একটি .mkv সঙ্গে একই মন্তব্য চেষ্টা vedio.why এটা .avi জন্য কাজ করছে না, সেখানে .avi রূপান্তর করতে কোনো ffmpeg কমান্ড
user1269669

1
এভিআই বা এমকেভি কনটেইনার ফর্ম্যাটকে বোঝায় যা প্রচুর বিভিন্ন অডিও / ভিডিও ফর্ম্যাট ধরে রাখতে পারে। আপনি AVI অডিও রূপান্তর করতে খুঁজছেন না, আপনি AVI ফাইলের মধ্যে অডিও ট্র্যাক রূপান্তর করতে খুঁজছেন, যা আপনি এখনও নির্দিষ্ট করেন নি। এভিআই ফাইলের মধ্যে কী ধরণের অডিও ট্র্যাক রয়েছে তা দেখতে উপরে তালিকাভুক্ত কমান্ডটি ব্যবহার করুন। যদি MP3 টি হল আপনি পঙ্গু মতো MP3 টি লাইব্রেরির সাথে ffmpeg কম্পাইল করতে হবে lame.sourceforge.net
SMP

6

এমপি 3 অডিও এনফোড করতে ffmpeg.org নিম্নলিখিত উদাহরণটি দেখায়:

ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3

আমি কেবল input.wavভিডিও ফাইলের নাম দিয়ে প্রতিস্থাপন করে একটি ভিডিও থেকে অডিও উত্তোলন করেছি । এর 2অর্থ 190 কেবি / সেকেন্ড। উপরের লিঙ্কে আপনি অন্যান্য মানের স্তর দেখতে পারেন।


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

@ ইলিয়ানঅনোফ্রেই, যেমনটি আমি আমার উত্তরে বর্ণনা করেছি, আপনি অডিও ফাইলটি কোনও ভিডিও ফাইলের সাথে প্রতিস্থাপন করতে পারেন। এটা আমার জন্য কাজ করেছে।
সুরগাচ

6

আমি স্রেফ যা ব্যবহার করেছি তা এখানে:

ffmpeg -i my.mkv -map 0:3 -vn -b:a 320k my.mp3

বিকল্প ব্যাখ্যা:

  • my.mkv একটি উত্স ভিডিও ফাইল, আপনি অন্য ফর্ম্যাটগুলিও ব্যবহার করতে পারেন
  • -map 0:3মানে আমি ভিডিও ফাইল থেকে তৃতীয় স্ট্রিম চাই। আপনার এনটি সেখানে রাখুন - ভিডিও ফাইলে প্রায়শই একাধিক অডিও স্ট্রিম থাকে; আপনি এটিকে বাদ দিতে পারেন বা -map 0:aডিফল্ট অডিও স্ট্রিম নিতে ব্যবহার করতে পারেন। চালান ffprobe my.mkvকি স্ট্রীম করে ভিডিও ফাইল আছে দেখতে।
  • my.mp3 হ'ল একটি লক্ষ্য অডিও ফাইলের নাম এবং ffmpeg পরিসংখ্যান আমি এর এক্সটেনশান থেকে একটি এমপি 3 চাই। আমার ক্ষেত্রে উত্স অডিও স্ট্রিমটি AC3 ডিটিএস এবং কেবল অনুলিপি করা আমার ইচ্ছা ছিল না
  • 320 কে একটি পছন্দসই লক্ষ্য বিটরেট
  • -vn মানে আমি টার্গেট ফাইলে ভিডিও চাই না

2

শুধু অনুমান:

-ab 192

হতে হবে

-ab 192k

দেখে মনে হচ্ছে এটি সমস্যা হতে পারে তবে এফফএমপিগ এটি সংশোধন করার জন্য যথেষ্ট স্মার্ট।


2
বৈধ মন্তব্য, এবং আমি এটি পরিবর্তন করতে ওপির প্রশ্নটি সম্পাদনা করেছি, তবে এটি কোনও পরিবর্তন করে না (সর্বাধিক, এটি একটি সতর্কতা উত্পন্ন করে)।
জিন-ফিলিপ পেলিট

2

যদি এভিআইতে আবৃত অডিওটি শুরু করতে এমপি 3-ফর্ম্যাট না হয় তবে আপনাকে -acodec mp3অতিরিক্ত প্যারামিটার হিসাবে নির্দিষ্ট করতে হতে পারে । বা আপনার এমপি 3 কোডেক যাই হোক না কেন (লিনাক্স সিস্টেমে এটি সম্ভবত -acodec libmp3lame)। -f mp3এফএফপিপেগের সমস্ত সংস্করণ এখনও সেই স্যুইচটিকে সমর্থন করে না, আপনি এমপি 3-তে ফর্ম্যাটটি "জোর করে" নির্দিষ্ট করেও একই প্রভাব পেতে পারেন, প্ল্যাটফর্ম- অজোনস্টিক। আপনার মাইলেজ পরিবর্তিত হতে পারে.


2

রূপান্তর ছাড়াই নিষ্কাশন করতে আমি একটি কনটেক্সট মেনু এন্ট্রি ব্যবহার করি - লিনাক্সে ফাইল ম্যানেজার কাস্টম অ্যাকশন হিসাবে - নিম্নলিখিতটি চালাতে (ভিডিওটিতে কী অডিও টাইপ রয়েছে তা যাচাই করার পরে; অডিওযুক্ত ভিডিওর উদাহরণ ogg):

bash -c 'ffmpeg -i "$0" -map 0:a -c:a copy "${0%%.*}".ogg' %f 

যা ffmpeg কমান্ডের উপর ভিত্তি করে ffmpeg -i INPUT -map 0:a -c:a copy OUTPUT

আমি এতে -map 0:1সমস্যা ছাড়াই ব্যবহার করেছি , তবে @ লর্ডনেকবার্ডের মন্তব্যে যেমন বলা হয়েছে, "স্ট্রিমটি 0:1সর্বদা অডিও হওয়ার নিশ্চয়তা দেয় না। -map 0:aপরিবর্তে ব্যবহার করা -map 0:1অস্পষ্টতা এড়াতে পারে" "


1
স্ট্রিমটি 0:1সর্বদা অডিও হওয়ার নিশ্চয়তা দেয় না। -map 0:aপরিবর্তে ব্যবহার করা -map 0:1অস্পষ্টতা এড়াবে।
লগইন

@ লর্ডনেকবার্ড ~ আমি এটি বিবেচনায় নেব, ধন্যবাদ।

আমি mediainfoঅডিও ট্র্যাকটি নির্ধারণ করতাম , এবং এটি এটি পছন্দ করেছিলাম: -map 0:a:1যেখানে a: 1 হ'ল দ্বিতীয় অডিও ট্র্যাক সূচক, থেক্স! -c:a copyএটি আরও দ্রুত তৈরি!
অ্যাকোরিয়াস পাওয়ার

1

মূল ভিডিও ফাইলের পরামিতিগুলি ধরে রাখার সময় লোকেরা কোনও ভিডিও ফাইল থেকে অডিও উত্তোলনের সহজ উপায়টির জন্য, আপনি ব্যবহার করতে পারেন:

ffmpeg -i <video_file_name.extension> <audio_file_name.extension>

উদাহরণস্বরূপ, চলমান:

ffmpeg -i screencap.mov screencap.mp3

একটি চায়ের mp3A থেকে অডিও ফাইল movভিডিও ফাইল।


সহজ এবং কাজ করে। অন্য সব সমাধান এত জটিল কেন? +1
স্কট বিগস

1
প্রশ্ন হল, কেন এটি একটি মুছে ফেলা ভোট ?!
আইলিয়ান ওনোফ্রেই

-1

এখন পুরানো হিসাবে -b:aপরিবর্তে ব্যবহার করুন , আপনার ইনপুট ফাইলের পথটি সঠিক কিনা তাও নিশ্চিত করুন।-ab-ab

কোনও ভিডিও থেকে অডিও উত্তোলনের জন্য আমি নীচে কমান্ড এবং এটির কাজটি দুর্দান্ত ব্যবহার করেছি।

String[] complexCommand = {"-y", "-i", inputFileAbsolutePath, "-vn", "-ar", "44100", "-ac", "2", "-b:a", "256k", "-f", "mp3", outputFileAbsolutePath};

এখানে,

  • -y - জিজ্ঞাসা না করে আউটপুট ফাইলগুলি ওভাররাইট করুন।
  • -i- এফএফম্পেগ -iঅপশন দ্বারা নির্দিষ্ট একটি ইনপুট "ফাইল" স্বেচ্ছাসেবী থেকে পাঠ করে
  • -vn - ভিডিও রেকর্ডিং অক্ষম করুন
  • -ar - এনকোডড থাকলে অডিও স্ট্রিমের জন্য নমুনার হার সেট করে
  • -ac - অডিও চ্যানেলের সংখ্যা নির্ধারণ করুন।
  • -b:a - অডিও বিটরেট সেট করুন
  • -f - বিন্যাস

পরীক্ষা করে দেখুন এই GitHub থেকে আমার সম্পূর্ণ নমুনা FFmpeg অ্যান্ড্রয়েড প্রকল্পের জন্য।

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