দুটি মনো চ্যানেলে 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.