एक एमपी 3 के अंत में मौन जोड़ें


12

क्या आप में से किसी को लिनक्स में एक एमपी 3 के अंत में एक निश्चित अवधि की चुप्पी जोड़ने का एक तरीका पता है? उदाहरण के लिए MEncoder, FFmpeg, आदि का उपयोग कर?

इसे कमांड लाइन होना चाहिए क्योंकि यह हमारे सर्वर पर स्क्रिप्टेड और रन होगा।

मैं इस के चारों ओर googled और सबसे अच्छा मैं कर सकता padथा SoX में फ़ंक्शन का उपयोग कर रहा है , लेकिन यह MP3s के साथ काम नहीं करेगा।

मैं इसे WAV में परिवर्तित कर सकता हूं, SoX का उपयोग कर सकता हूं, फिर इसे फिर से एमपी 3 में बदल सकता हूं और नए एमपी को मूल से मेटाडेटा (अवधि घटा) सकता हूं। लेकिन, इससे पहले कि मैं इसके लिए एक स्क्रिप्ट लिखूं मैंने सोचा कि मैं देखूंगा कि क्या एक हिट समाधान है।


2
मुझे लगता है कि आप MP3DirectCut (केवल विंडोज के साथ कुछ ऐसा कर सकते हैं , लेकिन वे कहते हैं कि यह वाइन के तहत लिनक्स के साथ संगत है), जो ध्वनि डेटा को पुनः प्राप्त करने से बचता है। अगर आपको MP3 -> WAV -> MP3 जाना था, तो रास्ते में बहुत सारी क्वालिटी खोने से आप पहले से ही MP3 कंप्रेस्ड डेटा स्ट्रीम को पुनः प्राप्त कर लेंगे।
ब्रेकथ्रू

धन्यवाद। क्या आप कमांड लाइन से वाइन के माध्यम से विंडोज़ सॉफ्टवेयर चला सकते हैं? यदि संभव हो तो मैं वाइन समाधान से बचना पसंद करूंगा क्योंकि मैं अपने सर्वर पर वाइन को स्थापित करने के लिए अनिच्छुक हूं।
मैक्स विलियम्स

हम्म, आप शराब मार्ग से बचना चाहते हैं यदि आपके पास यह पहले से नहीं है। शराब अपने आप में एक काफी बड़ा डाउनलोड है, जो मेगाबाइट के ऊपर या साधारण एमपी 3 कट / मर्ज टूल के लिए दो है। मुझे यकीन है कि एक समतुल्य, लिनक्स-देशी समाधान है। अगर मुझे कोई अतिरिक्त टूल मिल जाता है, तो मैं आपको बताना सुनिश्चित करूँगा।
ब्रेकथ्रू

जवाबों:


9

आप SoX के padतर्क और निम्न सिंटैक्स के साथ इतनी आसानी से कर सकते हैं :

sox <oldfile> <newfile> pad <silence at beginning of file> <silence at end of file>

उदाहरण:

sox mp3.mp3 mp3withsilence.mp3 pad 0 1

वे मौन सेकंडों में हैं। (एक अलग सिंटैक्स का उपयोग करके अन्य उपयोग संभव हैं, ताकि विशिष्ट पदों पर उन मौन को सम्मिलित किया जा सके। अधिक के लिए SoX प्रलेखन देखें।)


मुझे ध्यान देना चाहिए कि मैंने इसे MP3 फाइलों के साथ ओके (libmad-0.dll और libmp3lame-0.dll के साथ क्रमशः डीकोडिंग और एन्कोडिंग के लिए स्थापित किया है।) जितना संभव हो उतना संभव है, मैं एक दोषरहित प्रारूप के साथ काम करने की सलाह दूंगा और केवल रूपांतरित करूंगा। केवल अंत में एमपी 3।
फाबिन स्नूवर्ट

यह वास्तव में अच्छा है - धन्यवाद फेबियन!
मैक्स विलियम्स

क्या यह दोषरहित है?
गेरिमिया

अपडेट: मैंने sox मैनपेज में पढ़ा है कि यह एक आंतरिक प्रारूप में परिवर्तित हो जाता है, फिर से एनकोड करता है ...
Geremia

एमपी 3 एक हानिपूर्ण प्रारूप है। एक हानिपूर्ण प्रारूप को एन्कोडिंग और पुनः एन्कोडिंग ऑडियो की गुणवत्ता को कम कर देगा (चाहे आप इसे सुनें या नहीं।) इस प्रकार, यह दोषरहित प्रारूपों के साथ काम करने के लिए सबसे अच्छा है और केवल एक बार हानिरहित प्रारूप में अंत में सांकेतिक शब्दों में बदलना है। हानिप्रद ऑडियो कोडेक्स की सूची के लिए : en.wikipedia.org/wiki/Lossy_compression#Audio और दोषरहित ऑडियो कोडक की सूची के लिए en.wikipedia.org/wiki/Lossless_compression#Audio
Fabien Snauwaert

15

Ffmpeg के साथ, आप चुप्पी पैदा करने के लिए aevalsrc फ़िल्टर का उपयोग कर सकते हैं, और फिर एक दूसरे आदेश में उन्हें दोषरहित रूप से संयोजित करने के लिए concat प्रोटोकॉल का उपयोग करें:

ffmpeg -filter_complex aevalsrc=0 -t 10 10SecSilence.mp3
ffmpeg -i "concat:input.mp3|10SecSilence.mp3" -c copy output.mp3

आप अपनी -t 10पसंद के अनुसार कुछ समय में मौन की लंबाई को नियंत्रित कर सकते हैं। बेशक, आपको केवल एक बार मौन उत्पन्न करने की आवश्यकता है, फिर आप फ़ाइल को इधर-उधर रख सकते हैं और इसका उपयोग उस प्रत्येक फ़ाइल को पैड करने के लिए कर सकते हैं जिसे आप चाहते हैं। आप कॉन्कैट डिमॉक्सर भी देखना चाहते हैं - यह थोड़ा अधिक प्रोसेसर-गहन है, लेकिन आपको शेल स्क्रिप्ट में छोड़ना आसान हो सकता है।

यदि आप इसे एक ही कमांड में करना चाहते हैं, तो आप कॉनसैट फ़िल्टर का उपयोग कर सकते हैं - इसके लिए आपको अपने ऑडियो को फिर से एनकोड करना होगा (क्योंकि फ़िल्टरग्राफ के साथ असंगत हैं -codec copy), इसलिए उपरोक्त विकल्प शायद आपके लिए सबसे अच्छा होगा। लेकिन यह कच्चे PCM के साथ काम करने वाले किसी के लिए भी उपयोगी हो सकता है, ऑडियो एन्कोडिंग करने से पहले अंत में मौन जोड़ना चाहता है:

ffmpeg -i input.mp3 \
-filter_complex 'aevalsrc=0::d=10[silence];[0:a][silence]concat=n=2:v=0:a=1[out]' \
-map [out] -c:a libmp3lame -q:a 2 output.mp3

d=10जो भी समय (सेकंड में) आप चाहते हैं उसे बदलकर मौन की लंबाई को नियंत्रित करें । यदि आप इस विधि का उपयोग करते हैं, तो आपको यह FFmpeg MP3 एन्कोडिंग गाइड उपयोगी लग सकता है।


साभार @evilsoup मैंने अभी-अभी कोशिश की और निम्नलिखित मिला - मैक्सिमम थिंकपैड-लाइनक्स: ~ $ ffmpeg -filter_complex aevalsrc = 0 -t 4.61 silence.mp3ffmpeg version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Nov 6 2012 16:51:33 with gcc 4.6.3 *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. Unrecognized option 'filter_complex' Failed to set value 'aevalsrc=0' for option 'filter_complex'
Max Williams

@ सबसे पहले, आप वास्तव में लिबाव परियोजना से एवोकव का उपयोग कर रहे हैं - वे FFmpeg का एक कांटा है जो कि डेबियन और उबंटू मुख्य परियोजना के बजाय उपयोग कर रहे हैं, और वे ffmpeg का अपंग संस्करण प्रदान करते हैं। avconvइसके बजाय का उपयोग करने का प्रयास करें - वाक्यविन्यास समान होना चाहिए, बस के ffmpegसाथ बदलें avconv
evilsoup

अगर वह काम नहीं करता है, तो ffmpeg के नए संस्करण में अपग्रेड करने का प्रयास करें। चूंकि आप उबंटू पर हैं, इसलिए आपको इस पीपीए का उपयोग करने में सक्षम होना चाहिए , या बहुत नवीनतम संस्करण के लिए आप इसे स्रोत से संकलित कर सकते हैं ।
ईविल्सअप

1
@MaxWilliams या आप एक स्थिर बिल्ड डाउनलोड कर सकते हैं , जिसे आपको पहले संकलित करने की आवश्यकता नहीं है। बस डाउनलोड करें, निकालें, उपयोग करें।
स्लैक

1
भविष्य के संदर्भ के लिए: यदि आप मेरी तरह त्रुटि का सामना करते हैं, तो दोहरे उद्धरण चिह्नों के साथ एकल उद्धरण बदलने की कोशिश करें
SZT
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.