একাধিক অডিও স্ট্রিম সহ একটি ভিডিও ফাইলে একটি অডিও স্ট্রিম কীভাবে প্রতিস্থাপন করবেন?


19

আমি দুটি অডিও স্ট্রিম রয়েছে এমন একটি ভিডিও ফাইলে দ্বিতীয় অডিও স্ট্রিম (0: 2) প্রতিস্থাপন করতে চাই এবং যদি সম্ভব হয় তবে এটির একটি লেবেল দিতে চাই। আমি এই সম্পর্কে কিভাবে যেতে হবে? আমি খুঁজে পাওয়া সমস্ত ffmpeg কমান্ড আমাকে দ্বিতীয় অডিও স্ট্রিম রাখতে দেয় না।

উত্তর:


22

আপনার স্ট্রিমগুলি চয়ন করতে -mapবিকল্পটি ব্যবহার করুন । ডিফল্ট স্ট্রিম নির্বাচন কেবল প্রতিটি স্ট্রিম প্রকারের মধ্যে একটি বেছে নেবে, এজন্যই -mapব্যবহার করতে হবে।

দ্বিতীয় অডিও স্ট্রিম প্রতিস্থাপন করুন

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

ffmpeg -i video.mkv -i audio.mp3 -map 0:v -map 0:a:0 -map 1:a \
-metadata:s:a:0 language=eng -metadata:s:a:1 language=sme -codec copy \
-shortest output.mkv
  • 0:v- 0প্রথম ইনপুট যা বোঝায় তা বোঝায় video.mkv। এর vঅর্থ "ভিডিও স্ট্রিম প্রকার নির্বাচন করুন"।

  • 0:a:0- 0প্রথম ইনপুট যা বোঝায় তা বোঝায় video.mkv। এর aঅর্থ "অডিও স্ট্রিম প্রকার নির্বাচন করুন"। শেষটি 0এই ইনপুট থেকে প্রথম অডিও স্ট্রিমকে বোঝায়। যদি কেবল 0:aব্যবহৃত হয় তবে সমস্ত ভিডিও স্ট্রিম ম্যাপ করা হবে।

  • 1:a- 1দ্বিতীয় ইনপুট যা বোঝায় তা বোঝায় audio.mp3। এর aঅর্থ "অডিও স্ট্রিম প্রকার নির্বাচন করুন"।

  • -codec copyএনকোডের পরিবর্তে অনুলিপি (পুনরায় ম্যাক্স) প্রবাহিত করবে । আপনার যদি কোনও নির্দিষ্ট অডিও কোডেকের প্রয়োজন হয় তবে আপনার নির্দিষ্ট করা উচিত -c:v copy(ভিডিওটি রাখতে) এবং তারপরে, উদাহরণস্বরূপ, -c:a libmp3lameঅডিও স্ট্রিমটি এমপি 3 এ পুনরায় এনকোড করা উচিত।

  • -shortest সংক্ষিপ্ত ইনপুট শেষ হলে আউটপুটটি শেষ হবে।

একটিতে দুটি অডিও স্ট্রিম একত্রিত করুন

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

ffmpeg -i vid.mkv -i aud.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a aac -strict experimental -b:a 192k -ac 2 \
-shortest out.mp4
  • ফিল্টারিংয়ের জন্য পুনরায় এনকোডিং প্রয়োজন, এবং amergeফিল্টারটি এখানে ব্যবহৃত হয়, সুতরাং অডিওটি এই উদাহরণে অনুলিপি করা যায় না।

আমার পক্ষে মোটেও কাজ করিনি।
রুডল্ফ ওলা

@ মাউস "কাজ করেননি" এর জন্য সহায়তা সরবরাহ করা শক্ত। আপনার কমান্ড এবং সম্পূর্ণ কনসোল আউটপুট দেখানোর জন্য আপনার একটি পেস্টবিন লিঙ্ক ব্যবহার করা উচিত।
লোগান

আমার সমস্যাটি হ'ল -codec copy, তবে আমি এটি ঠিক করেছি (ffmpeg এর বিভিন্ন সংস্করণ), আমি যে অন্যান্য সমস্যাটি নিয়েছিলাম তা ছিল -map, এটি প্রবাহের ভুল সংখ্যা সম্পর্কে অভিযোগ করেছিল।
রুডল্ফ ওলা

1
আমি শুধু ব্যবহার করা -map 0:v -map 1:a। আমি ধরে নিই এর অর্থ প্রথম ফাইল (ভিডিও.mkv) থেকে ভিডিও নেওয়া এবং তারপরে আউটপুট.এমকেভি তৈরি করতে দ্বিতীয় ফাইল (অডিও.এমপি 4) থেকে অডিও নেব ... কী -map 0:a:0জন্য তা নিশ্চিত তা নয় । আমি এটিকে বাদ দিয়েছি এবং আমি যে ফলাফল চেয়েছি তা পেয়েছি।
সান

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