2008-09-16 6 views
5

मैं किसी एमपी 3 को प्रोग्राम में या किसी भाग्य के साथ कमांड लाइन के माध्यम से परिवर्तित करने का तरीका ढूंढ रहा हूं। आदर्श रूप में, मेरे पास कोड का एक स्निपेट होगा जो मैं अपने रेल ऐप से कॉल कर सकता हूं जो एक एमपी 3 को एएसी में परिवर्तित करता है। मैं ffmpeg और libfaac स्थापित किया है और निम्न आदेश के साथ एक aac फ़ाइल बनाने के लिए कर रहा था:मैं प्रोग्रामिंग रूप से एमपी 3 को आईट्यून-प्लेबल एएसी/एम 4 ए फ़ाइल में कैसे परिवर्तित करूं?

ffmpeg -i test.mp3 -acodec libfaac -ab 163840 dest.aac

जब मैं dest.m4a को आउटपुट फ़ाइल का नाम बदलने के लिए, यह iTunes में खेलने नहीं करता है।

धन्यवाद!

उत्तर

9

FFmpeg एएसी एन्कोडिंग सुविधाएं प्रदान करता है। आप Windows का उपयोग कर रहे हैं आप से here

ffmpeg -i source.mp3 -acodec libfaac -ab 128k dest.aac 

पूर्ण बाइनरी प्राप्त कर सकते हैं मुझे यकीन है कि कैसे आप माणिक से कहेंगे नहीं हूँ।

साथ ही, बिटरेट को उचित रूप से सेट करना सुनिश्चित करें।

+0

हम्म, मैंने ffmpeg स्थापित किया और जब मैंने आपके द्वारा उल्लिखित आदेश की कोशिश की, तो निम्नलिखित चेतावनियां/त्रुटियां आईं: चेतावनी: बिटरेट पैरामीटर बहुत कम सेट है। यह बिट्स/एस को तर्क के रूप में लेता है, नहीं kbits/s अज्ञात एन्कोडर 'एएसी' मैंने गिट का उपयोग करके स्रोत डाउनलोड किया। क्या मुझे कोई अन्य कोडेक्स डाउनलोड करने की ज़रूरत है? –

+0

आपको libfaac के साथ संकलित एक ffmpeg की आवश्यकता है, और इसके acodec libfaac, एएसी नहीं। -एबी 128k सही मान है, जैसा कि आपने कहा है, 128 पर नहीं। –

+0

मुझे सही करने के लिए धन्यवाद डार्क। और यही कारण है कि हम इसे क्लाइंट को जारी करने से पहले परीक्षण करते हैं: पी – rpetrich

2

केवल तीन मुक्त एएसी एनकोडर कि मुझे लगता है कि के बारे में पता एक कमांडलाइन इंटरफेस के माध्यम से उपलब्ध हैं:

  1. FAAC (LPGL) है, जो ईमानदारी से बहुत बुरा है (गुणवत्ता की तुलना में काफी बदतर होने जा रहा है एक ही बिटरेट पर लम्बा)। यह ठीक है अगर आप उच्च बिटरेट (>> 128 केबीपीएस) के लिए जाने के इच्छुक हैं और अनुकूलता के लिए एएसी की आवश्यकता है, गुणवत्ता के कारण नहीं। एफएएसी का उपयोग करने का सबसे आम तरीका libfaac के रूप में ffmpeg के माध्यम से है।

  2. नीरो एएसी, कमांडलाइन एनकोडर जिसके लिए केवल गैर वाणिज्यिक उपयोग के लिए विंडोज और लिनक्स के तहत नि: शुल्क उपलब्ध है, लेकिन है (और तदनुसार बंद स्रोत है)।

  3. ffmpeg का एएसी एन्कोडर, जो अभी भी विकास में है और मुझे लगता है कि यह तकनीकी रूप से काम करता है, यह सभी स्थिर या अच्छे या तेज भी नहीं है, क्योंकि यह अभी भी शुरुआती चरणों में है। जहां तक ​​मुझे पता है, यह ट्रंक में भी उपलब्ध नहीं है।

(संपादित करें: लगता है आईट्यून भी एक हो सकता है, मैं इसके उपयोग के मामले पर शक नीरो की के समान हैं AFAIK इसकी गुणवत्ता तुलनीय है।।)

1

linux/खिड़की मशीन पर परिवर्तित एप्लिकेशन स्थापित करने के बाद आप अपने रेल एप्लिकेशन को चालू कर रहे हैं, सिस्टम पर कनवर्टिंग एप्लिकेशन का आह्वान करने के लिए रूबी में "सिस्टम()" कमांड का उपयोग करें। प्रणाली ("command_here"); यदि आप उन्हें में संकलित किया है

0

मुझे mplayer (जो मुझे विश्वास है कि ffmpeg का उपयोग करता है ...) और लंगड़ा का उपयोग करके शुभकामनाएं मिली हैं।

#!/bin/sh 

TARGET=$1 

BASE=`basename "${TARGET}"` 
echo TARGET: "${TARGET}" 
echo BASE: "${BASE}" .m4a 

# Warning! Race condition vulnerability here! Should use a mktemp 
# variant or something... 
mkfifo encode 
mplayer -quiet -ao pcm -aofile encode "${TARGET}" & 
lame --silent encode "${BASE}".mp3 
rm encode 

सुरक्षा के मुद्दों के लिए क्षमा करें, मैं इस एक दिन ट्रेन में बाहर टकरा ...

मेरे MPlayer और fink से आते हैं लंगड़ा: मुद्दा यह है कि मैं इसे एक स्क्रिप्ट में ऊपर लपेट लिया है करने के लिए

1

मुझे पता है कि मैं इस पार्टी के लिए देर हो रही है, लेकिन मैं इस सवाल के आधार पर सवाल कर रहा हूँ। आप एमपी 3 को "आईट्यून प्लेबल" प्रारूप में क्यों परिवर्तित करना चाहते हैं? आईट्यून्स पहले ही एमपी 3 को संभालता है।

ऐसा लगता है कि आप एक अनावश्यक रूपांतरण कर रहे हैं, और चूंकि आप एक हानिकारक प्रारूप से दूसरे में परिवर्तित हो रहे हैं, तो आप प्रक्रिया में कुछ गुणवत्ता खो रहे हैं।

+0

आईट्यून्स एमपी 3 के रूप में गाने डाउनलोड करेगा, लेकिन अगर आप उन्हें पहले ही एम 4 ए के रूप में डाउनलोड कर चुके हैं, तो आपको उन्हें बदलना होगा। इट्यून्स भी ऐसा करेंगे, लेकिन यदि आपके पास सैकड़ों गाने हैं, तो प्रत्येक पर राइट क्लिक करने और कन्वर्ट करने के लिए परेशान करना मुश्किल है। सभी "मोबाइल डिजिटल संगीत" (बेहतर शब्द की कमी के लिए) नहीं, एम 4 ए खेलें। यही कारण है कि आप पहली जगह में कनवर्ट करना चाहते हैं। – Ramy

1

ffmpeg 0.5 या बाद में मेटाडाटा हस्तांतरण करने के लिए बेहतर परिणाम के लिए उपयोग ffmpeg मैं source.mp3 target.m4a

और डिफ़ॉल्ट बिटरेट ffmpeg ओवरराइड करने के लिए लागू होती है

ffmpeg मैं "input.mp3" - अब 256K -map_meta_data input.mp3: output.m4a output.m4a

सबसे अच्छा न करने वाली के रूप में आइपॉड निभाता है एमपी 3 ठीक (मुझे पता है कि इस तरह के जवाब है, लेकिन मेरी कम से चली आ रही अनुमति नहीं है मतदान)

0

दरअसल, वाक्य रचना एफएफएमपी है उदाहरण- i input.mp3 -c: aac -strict -2 -b: 256k output.m4a; यदि कोई "सही" बिटरेट अनुकरण कर रहा है तो अधिक सही। एक संकलन योजना के लिए सीएफ .: link। (rpmfusion पैकेज भी ठीक काम करता है:

कॉन्फ़िगरेशन: --prefix =/usr --bindir =/usr/bin --datadir =/usr/share/ffmpeg --incdir =/usr/include/ffmpeg --libdir =/usr/lib64 --mandir =/usr/share/man --arch = x86_64 --optflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong - param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = जेनेरिक '--enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable -libcdio --enable-libcelt --enable-libdc1394 --disable-indev = jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg - -एनेबल-लिबोपस - सक्षम-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 - -नेबल-libxvid --enable-x11grab --enable-avfilter --enable-avres पर्याप्त --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir =/usr/lib64 --enable-runtime- cpudetect

संबंधित मुद्दे