দুটি মনো চ্যানেলে ffmpeg স্টেরিও চ্যানেল


11

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

ffmpeg -threads "16" -i "$2" -map 0:1:1 "$3"

কারণ আমার উদাহরণ ভিডিওতে নিম্নলিখিত তথ্য রয়েছে:

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 39mn 0s
Bit rate mode                            : Constant
Bit rate                                 : 256 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R

সুতরাং আমি দুটি চ্যানেল সহ এই একটি অডিও স্ট্রিম পেয়েছি এবং দুটি মনো চ্যানেল চাই। প্রথমে আমি মানচিত্র_চ্যানেল দিয়ে চেষ্টা করেছিলাম, তবে এটি কৌশলটি করেনি পরিবর্তে আমি একটি ত্রুটি বার্তা পেয়েছিলাম:

Syntax error, mapchan usage: [file.stream.channel|-1][:syncfile:syncstream]

সুতরাং আমি উপরে বর্ণিত কোডটি দিয়ে আবার চেষ্টা করেছি এবং কমপক্ষে ffmpeg কিছু করেছে, তবে ফলাফলটি আমার প্রত্যাশা নয়, এটি দুটি মনো ওয়াভ ফাইলগুলিতে বিভক্ত করার পরিবর্তে, ফলাফলটি হয়েছিল:

info.system.container = WAVE
info.system.size = 449413166 Bytes
info.system.size = 428.59 MiB
info.system.playtime = 2340.69 s
info.audio0.codec = PCM
info.audio0.desc = 
info.audio0.format_endianness = Little
info.audio0.format_sign = Signed
info.audio0.format_resolution = 16 bits
info.audio0.samprate = 48000 Hz
info.audio0.channels = 2

আবার দুটি অডিও চ্যানেল নিয়ে, তবে আমি কোথায় ভুল হয়ে গেলাম?

উত্তর:


17

Ffmpeg ব্যবহার করে এমন অনেকগুলি পদ্ধতি রয়েছে যা আমি জানি যে স্টেরিও থেকে দুটি পৃথক মনো ফাইল বা একটি ফাইলে দুটি মনো-স্ট্রিমে যেতে:

স্টিরিও থেকে 2 মনো আউটপুট

স্টিরিও থেকে 2 মনো আউটপুট

-map_channel পছন্দ

ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav

pan অডিও ফিল্টার

ffmpeg -i stereo.wav -filter_complex \
"[0:0]pan=1|c0=c0[left]; \
 [0:0]pan=1|c0=c1[right]" \
-map "[left]" left.wav -map "[right]" right.wav

স্টিরিও থেকে 2 মনো স্ট্রিম

channelsplit অডিও ফিল্টার

স্টিরিও থেকে 2 মনো স্ট্রিম

এটি এমন একটি আউটপুট ফাইল তৈরি করবে যার দুটি পৃথক মনো স্ট্রিম রয়েছে:

ffmpeg -i input.m4a -filter_complex channelsplit out.mka

এছাড়াও দেখুন


ধন্যবাদ, আমি আমার ত্রুটি খুঁজে পেয়েছি। যখন আমি ব্যবহার -map_channelকরছিলাম তখন আমি একক বিন্দু ব্যবহার করিনি তবে পরিবর্তে আমি ডাবল বিন্দু ব্যবহার করেছি, সুতরাং এটি অবাক হওয়ার কোনও অবাক হওয়ার কারণ নয়। এখন এটা কাজ করছে!
সেবাস্তিয়ান

1
ধরে নেওয়া যাক যে আমার কাছে একটি স্ট্রিমের 6 টি চ্যানেলযুক্ত একটি ফাইল রয়েছে, আমি কীভাবে জানতে পারি কোন চ্যানেলটি কোনটি? আমার কাছে যখন 2 টি চ্যানেল রয়েছে তখন এটি সর্বদা 0.0.0 বাম এবং 0.0.0 ডান। আমি ffmpeg ডকুমেন্টেশন সন্ধান করেছি এবং এটি বলেছে -layoutsকিন্তু এটি কীভাবে কাজ করে তার কোনও উদাহরণ নেই। আমি এটি চেষ্টা করেছি এবং আমি যে বার্তাটি পেয়েছি তা Missing argument for option 'layouts'কি ffmpeg আশা করে?
সেবাস্তিয়ান

@ সেবাস্তিয়ান আপনি ছয়টি চ্যানেল ইনপুট থেকে ছয়টি মনো আউটপুট ফাইল তৈরি করতে চান?
লোগান

আমার দুটি বা তিনটি ক্লিপ রয়েছে যার 5.1 চারপাশের শব্দ রয়েছে এবং অবশ্যই আমি তাদের ছয়টিতে ম্যাপ_চ্যানেল ব্যবহার করার পরে আমি বলতে পারি না যে কোন মানচিত্র_চ্যানেলটি কোন অবস্থানের সাথে সম্পর্কিত, এখানে একটি উদাহরণ রয়েছে: Audio ID : 2 Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFEতবে আমি মনে করি আমি ইতিমধ্যে একটি সমাধান পেয়েছি এই সমস্যার জন্য
সেবাস্তিয়ান

@ সেবাস্তিয়ান আপনার সমাধান কী?
লগইন

1

এর জন্য আপনার চ্যানেলস্প্লিট ফিল্টার ব্যবহার করা উচিত । -ম্যাপ এটি করতে পারে না। উদাহরণ স্বরূপ:

ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv

আমি সরবরাহ করেছি যে ডকুমেন্টেশন লিঙ্ক চেক।

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