2012-08-16 48 views
23

मैं wav फ़ाइल pcm कोक्या ffmpeg कच्चे पीसीएम से WAV तक ऑडियो कन्वर्ट कर सकता है?

ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm 

मैं कैसे इस आपरेशन वापस कर सकते हैं परिवर्तित कर सकते हैं?

+0

आप -acodec प्रतिलिपि का उपयोग करने में सक्षम होना चाहिए? – rogerdpack

उत्तर

42

WAV कंटेनर कच्चे पीसीएम डेटा में बस एक सरल शीर्षलेख जोड़ता है। शीर्षलेख में प्रारूप, नमूना दर और चैनलों की संख्या शामिल है। चूंकि कच्चे पीसीएम डेटा में यह जानकारी शामिल नहीं है, इसलिए आपको इसे कमांड लाइन पर निर्दिष्ट करना होगा। विकल्प को उनके द्वारा लागू फ़ाइल से पहले निर्दिष्ट किया गया है, इसलिए इनपुट फ़ाइल के प्रारूप को इनपुट फ़ाइल के प्रारूप को निर्दिष्ट करने के लिए इनपुट इनपुट से पहले विकल्प और इनपुट फ़ाइल के बाद विकल्प और आउटपुट फ़ाइल का उपयोग आउटपुट के वांछित प्रारूप को निर्दिष्ट करने के लिए किया जा सकता है फ़ाइल। यदि आप आउटपुट फ़ाइल में समान बिट्स/नमूना, नमूना दर और चैनलों की संख्या चाहते हैं तो आपको इस मामले में किसी भी आउटपुट विकल्प की आवश्यकता नहीं है; WAV कंटेनर प्रारूप पहले से ही फ़ाइल एक्सटेंशन द्वारा इंगित किया गया है।

उदाहरण WAV के लिए कच्चे पीसीएम कन्वर्ट करने के लिए:

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav 
  • -f s16le ... पर हस्ताक्षर किए 16 बिट थोड़ा endian नमूने
  • -ar 44.1k ... नमूना दर 44.1kHz
  • -ac 2 ... 2 चैनल (स्टीरियो)
  • -i file.pcm ... इनपुट फ़ाइल
  • file.wav ... आउटपुट फ़ाइल
+1

रिवर्स (पीसीए से डब्ल्यूएवी) ऑपरेशन के बारे में क्या? –

+2

@ mustafa.yavuz: यह * पीसीएम-टू-डब्ल्यूएवी ऑपरेशन है। – bos

+1

@bos, मुझे लगता है @ mustafa.yavuz रिवर्स (पीसीएम के लिए डब्ल्यूएवी) पूछ रहा था। फिर कुछ विशेष नहीं, बस 'ffmpeg -i file.wav file.pcm' करेगा क्योंकि रूपांतरण करने के लिए आवश्यक सभी जानकारी Wav फ़ाइल के शीर्षलेख में है। – neevek

4
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav 
3

रॉ डेटा स्वरूप के प्रति सावधान रहें

-f u8 8 बिट, s16 हस्ताक्षरित किया गया है अहस्ताक्षरित है सिर्फ मामले में अन्य हैं

$ ffmpeg -formats | grep PCM 
DE alaw   PCM A-law 
DE f32be   PCM 32-bit floating-point big-endian 
DE f32le   PCM 32-bit floating-point little-endian 
DE f64be   PCM 64-bit floating-point big-endian 
DE f64le   PCM 64-bit floating-point little-endian 
DE mulaw   PCM mu-law 
DE s16be   PCM signed 16-bit big-endian 
DE s16le   PCM signed 16-bit little-endian 
DE s24be   PCM signed 24-bit big-endian 
DE s24le   PCM signed 24-bit little-endian 
DE s32be   PCM signed 32-bit big-endian 
DE s32le   PCM signed 32-bit little-endian 
DE s8    PCM signed 8-bit 
DE u16be   PCM unsigned 16-bit big-endian 
DE u16le   PCM unsigned 16-bit little-endian 
DE u24be   PCM unsigned 24-bit big-endian 
DE u24le   PCM unsigned 24-bit little-endian 
DE u32be   PCM unsigned 32-bit big-endian 
DE u32le   PCM unsigned 32-bit little-endian 
DE u8    PCM unsigned 8-bit 
0

नीचे कोड काम होना चाहिए:

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav