एक .mp3 में कई .mp3 फ़ाइलें सम्‍मिलित करना


45

के रूप में यह सुझाव दिया गया था यहाँ मैं उपयोग कर रहा हूँ catआदेश एक .mp3 फ़ाइल में कई .mp3 फ़ाइलों को श्रेणीबद्ध करने के लिए।

कल्पना कीजिए, मेरे पास वर्तमान फ़ोल्डर में .mp3 फाइलें हैं:

001001.mp3 001002.mp3 001003.mp3 001004.mp3 001005.mp3

या, इस तरह:

096001.mp3 096002.mp3 096003.mp3 096004.mp3

मैं इन। एमपी 3 फ़ाइलों को वहाँ बढ़ते क्रम में करने की आवश्यकता है, यानी 001001.mp3+001002.mp3+001003.mp3+etc.

इन .mp3 फ़ाइलों को एक में शामिल करने के लिए मैं वर्तमान फ़ोल्डर में कमांड का पालन कर रहा हूँ:

cat *.mp3 > final.mp3

मैंने अंतिम .mp3 फ़ाइल का परीक्षण किया और यह वही है जिसकी मुझे उम्मीद है, लेकिन मुझे यह सुनिश्चित करने की आवश्यकता है कि ऊपर कमांड वहाँ आसन्न अनुक्रम में फ़ाइलें चुनता है।

क्या मैं यह सुनिश्चित कर सकता हूं कि ऊपर की कमान हमेशा आरोही क्रम में फाइलों को समेटती है?

थैंक यू सर !

जवाबों:


46

catइस काम के लिए सही उपकरण नहीं है। एमपी 3 प्रारूप में सभी प्रकार के कबाड़ होते हैं जो फ़ाइल के सामने और अंत में दुबक सकते हैं और इसे अलग करना होगा। mp3wrapतुम क्या चाहते हो यह फ़ाइलों में किसी भी मेटाडेटा को बाहर कर देगा और ऑडियो को एक साथ चिपका देगा।

sudo apt-get install mp3wrap
mp3wrap output.mp3 *.mp3

ऐसा करने से पहले, ls *.mp3जांच लें कि वे सही क्रम में हैं। जब मैंने मूल रूप से यह उत्तर लिखा था (छह साल पहले!) वाइल्डकार्ड ग्लब्स ने स्पष्ट रूप से अच्छा व्यवहार नहीं किया था, लेकिन मुझे लगता है कि वे अब करते हैं।

उदाहरण के लिए, यदि वे गिने जा रहे हैं, तो आपको फ़ाइलों का नाम बदलने की आवश्यकता हो सकती है, लेकिन वे शून्य-गद्देदार नहीं हैं, {1-11}.mp3उनके द्वारा हल किया जाएगा 1 10 11 2 3 4 5 6 7 8 9यह आसानी से तय किया जा सकता है


2
राइट - कैट एक ही mp3 फ़ाइल के भीतर एमपी 3 फ़ाइलों को "एक सरणी बनाकर" (जैसा कि यह था) द्वारा एमपी 3 फ़ाइल स्वरूप को मंगाएगा। लेकिन यह काम करने लगता है अगर खिलाड़ी सॉफ्टवेयर पर्याप्त स्मार्ट है।

इसने मेरे लिए बेहतर काम किया, क्योंकि यह फ़ाइल नाम में रिक्त स्थान के साथ एमपी 3 को संभालता है:find . -maxdepth 1 -iname '*.mp3' -print0 | sort -z | xargs -0 mp3wrap output.mp3
बेमपिन

@bmaupin एक उचित बिंदु लेकिन मुझे यकीन नहीं है कि मैं बस बैश के वाइल्डकार्ड विस्तार का उपयोग क्यों नहीं कर रहा था। *.mp3पर्याप्त होना चाहिए (और रिक्त स्थान के साथ काम करता है)।
ओली

काढ़ा पैकेज प्रबंधक से मैक के लिए उपलब्ध है ! $ brew install mp3wrap
रूबेंस

1
बैश में, *.mp3वर्णमाला क्रम को संरक्षित करने की गारंटी है। यदि आपकी फ़ाइलों का नाम है 09.mp3, तो 10.mp3, 11.mp3शायद यही आप चाहते हैं। यदि आपकी फाइलें नामांकित हैं 9.mp3, 10.mp3तो 11.mp3, यह वह नहीं है जो आप चाहते हैं, लेकिन आप कर सकते हैं `ls *.mp3 | sort -n`
जो लिस

26

mp3wrap एक अच्छा पर्याप्त समाधान लगता है, लेकिन जब मैं परिणामी फ़ाइल खेला, टाइमस्टैम्प सही नहीं था। ऐसा लगता है कि mp3wrap का सबसे अच्छा उपयोग किया जाता है जब आप mp3s को एक ऐसी फ़ाइल में शामिल कर रहे हैं जिसे आप जानते हैं कि आप बाद में विभाजित करना चाहते हैं।

मैं बस कुछ एमपी 3 को स्थायी रूप से एक साथ जोड़ना चाहता था। मैंने फ़ाइलों को संक्षिप्त करने के लिए ffmpeg का उपयोग करके समाप्त किया:

  1. सबसे पहले, ffmpeg स्थापित करें

    • उबंटू 15.04+

      sudo apt install ffmpeg
    • Ubuntu 14.10 और नीचे http://ffmpeg.org/download.html पर
      जाएं , स्थिर बिल्ड में से एक डाउनलोड करें, इसे अनटार करें और कॉपी करें / usr / लोकल / बिन पर जाएं

  2. ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3

अधिक जानकारी: https://trac.ffmpeg.org/wiki/Concatenate#protocol
https://superuser.com/a/314245


ffmpegगायब है, लेकिन avconvइसे बदल देता है: askubuntu.com/questions/432542/…
muru

2
हाँ, मैंने थोड़ी देर के लिए एवोकॉन का उपयोग किया था, लेकिन तब मुझे कुछ ऐसे फीचर्स की आवश्यकता थी जो ffmpeg के पास थे और एवोकन ने नहीं किया था, और मैंने इसका उपयोग नहीं किया है। इन दिनों यह समय की बर्बादी की तरह महसूस करता है यह देखने के लिए कि क्या एवोकन में वे विशेषताएं हैं जिनकी मुझे ज़रूरत है, जब मुझे पहले से ही पता है कि ffmpeg करता है।
बेमपिन

कृपया इस बग रिपोर्ट चर्चा में शामिल होने के लिए आमंत्रित महसूस करें ।
ओरसिरो

मैंने यह कोशिश की है और यह महान काम नहीं करता है; के output.mp3माध्यम से चलाने का प्रयास करें mp3valऔर आप सभी प्रकार की त्रुटियां देखेंगे जो Chrome64 + में प्लेबैक समस्याएँ पैदा करेंगी (देखें bugs.chromium.org/p/chromium/issues/detail?id=794782 और bugs.chromium.org/p.chromium/ मुद्दों / विस्तार? आईडी = 806601 # c10 )
नीनो Šopopac

भयानक समाधान। वैसे भी गाने को सामान्य करने के लिए?
ar2015

8

जैसा कि पहले सुझाव दिया गया है, mp3wrapएक अच्छा समाधान है। यह समय के सभी काम नहीं कर सकता है। जहाँ तक मुझे पता है, mp3wrapमानता है कि सभी इनपुट फ़ाइलों में VBR बनाम CBR, बिटरेट और इसी तरह की एक जैसी विशेषताएँ होती हैं। यदि यह धारणा पूरी नहीं हुई है, तो यह विफल होने की संभावना है। उस मामले में, एकमात्र समाधान सभी mp3files को एक कच्चे प्रारूप की तरह डिकोड करना होगा .wav, जैसे उन्हें एक प्रोग्राम के साथ संक्षिप्त करना soxऔर सभी एमपी 3 को फिर से एन्कोडिंग द्वारा समाप्त करना।


ध्यान दें कि एमपी 3 फ़ाइलों को फिर से एन्कोडिंग ("ट्रांसकोडिंग" के रूप में भी जाना जाता है) एक गुणवत्ता हानि का परिणाम होगा। मेरा सुझाव यह नहीं होगा।
मार्टिन टूरनोइज

5

यह एकल वर्णों के आधार पर एक वर्णानुक्रम प्रकार करता है। इसका मतलब है कि "01" "1" से पहले आता है, क्योंकि शून्य का मूल्य एक से कम होता है।

यहाँ एक उदाहरण है। मुझे 1, 2, 3, 04, 05, और 06 नाम की फ़ाइलों के साथ एक निर्देशिका मिली है। वे पाठ फाइलें हैं जिनमें अपने स्वयं के फ़ाइल नाम शामिल हैं:

test$ cat *
04
05
06
1
2
3

तो, हाँ यह होगा; लेकिन आपको यह सुनिश्चित करने की आवश्यकता है कि आपकी सभी फाइलें ठीक से 'गद्देदार' हैं।

बैश स्क्रिप्ट की यह निफ्टी लाइन आपको फ़ाइल नामों की तुलना करने की सुविधा देगी, जिससे किसी भी गलती को आसानी से किया जा सकेगा:

for f in $(ls); do printf "%05s\n" "$f"; done

यह आउटपुट इस तरह दिखेगा:

   04
   05
   06
    1
    2
    3

यदि वे नहीं हैं, तो आपको फ़ाइल नामों को पैड करने की आवश्यकता होगी: StackOverflow पर फ़ाइल नामों को पैड करने के लिए बैश स्क्रिप्ट बताती है कि यह कैसे करना है।


संपादित करें। ओली के जवाब के लिए वोट करें, यह बहुत बेहतर है। : पी
मैं अपना छोड़ दूंगा क्योंकि यह कुछ जोड़ता है, लेकिन आपको उसके समाधान का उपयोग करना चाहिए,

mp3wrap output.mp3 `ls -1 *.mp3 | sort`

ध्यान रखें कि sortअभी भी जिस तरह से मैंने ऊपर वर्णित किया है, उसमें चीजों को छाँट लेंगे, फिर भी आपको फ़ाइल-नामों को पैड करने की आवश्यकता होगी यदि वे लंबाई में बराबर नहीं हैं।


4

ज्यादातर लोग सुझाव दे रहे हैं mp3wrap, लेकिन इसमें गिरावट है: उत्पन्न फ़ाइल कुछ खिलाड़ियों में इसकी पूरी लंबाई की रिपोर्ट नहीं करती है, और फिर आप उस बिंदु से आगे नहीं बढ़ सकते हैं।

mp3catकाम तेजी से और अच्छी तरह से करता है, जहां तक ​​मैं बता सकता हूं। इसे http://mulholland.xyz/dev/mp3cat/ में डाउनलोड किया जा सकता है , और निम्नानुसार उपयोग किया जा सकता है:

mp3cat file1.mp3 file2.mp3 file3.mp3

एक और संभावना होगी sox

sudo apt-get install sox libsox-fmt-mp3
sox file1.mp3 file2.mp3 target.mp3

लेकिन यह बहुत धीमी गति से लगता है (वास्तव में यह डिकोड करता है और ऑडियो को रीकोड करता है?)


3

मुझे बहुत अच्छी तरह से काम करने और सही टाइम-स्टैम्प (MP3wrap के विपरीत) को संरक्षित करने के लिए ऑनलाइन सर्विस ऑडियो- जॉइनर मिला।


0

आप एक समर्पित ऑडियो संपादन कार्यक्रम (जैसे दुस्साहस ) का उपयोग करना चाह सकते हैं


0

मुझे बमुपिन की टिप्पणी पसंद है , फिर भी यह (संस्करण) संख्याओं के प्राकृतिक प्रकार का उपयोग करके उत्पादन कर सकता है sort -V:

find . -maxdepth 1 -iname '*.mp3' -print0 | sort -Vz | xargs -0 mp3wrap ../tmp.mp3

और आपको ' " () [] {}फ़ाइल नाम में विशेष वर्णों से निपटने की आवश्यकता नहीं है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.