2012-09-11 22 views
5

मैं avconv का उपयोग कर jpg फ़ाइलों की एक श्रृंखला को एनिमेट करने की कोशिश कर रहा हूं। कई उदाहरणों के आधार पर, मैं फ़ाइलों को निर्दिष्ट करने के लिए% d.jpg का उपयोग करने का प्रयास कर रहा हूं। या% 05d.jpg। हालांकि, मैं हो रही है:वाइल्डकार्ड

avconv -i %d.jpg a.avi 
avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:37:58 with gcc 4.6.3 
%d.jpg: No such file or directory 

यहाँ मेरी निर्देशिका सूची के स्निप है:

10380.jpg 
10390.jpg 
10400.jpg 
1040.jpg 
10410.jpg 
10420.jpg 
10430.jpg 
10440.jpg 

वहाँ 00000.jpg से jpegs 14400.jpg को

मैं वास्तव में नहीं कर रहे हैं वाइल्डकार्ड सिस्टम को समझें, लेकिन उदाहरणों में यही है।

(ध्यान दें: मैं इसे ffmpeg क्योंकि avconv के लिए एक टैग मौजूद नहीं है, और avconv ffmpeg प्रतिस्थापित करता है टैग किया गया)

अद्यतन मैं @ av501 से नीचे उत्तर के आधार पर सवाल अद्यतन करने कर रहा हूँ।

आरंभ करने के लिए, मेरे पास अनुक्रमिक क्रम के साथ पीएनजी फाइलों की एक सूची है। उनके पास 5 अंकों के पूर्णांक से पहले टेक्स्ट है। उदाहरण के लिए:

SkinMattekNutrient_py_00000.png 
SkinMattekNutrient_py_00010.png 
SkinMattekNutrient_py_00020.png 
... 
SkinMattekNutrient_py_10440.png 

बैच को जेपीजी में परिवर्तित करने का तरीका क्या होगा? मैं

convert ... 
SkinMattekNutrient_py_%05d.png %05d.jpg 

और

convert ... 
SkinMattekNutrient_py_%5d.png %5d.jpg 

की कोशिश की लेकिन मैं मिलता है:

convert SkinMattekNutrient_py_%05d.png %05d.jpg 
convert: missing an image filename `%05d.jpg' @ error/convert.c/ConvertImageCommand/3011. 

उत्तर

4

आप अपनी फ़ाइलों के लिए% 5 डी का उपयोग करने की जरूरत है। लेकिन आपको दो समस्याएं हैं

काम करने के लिए% 5d के लिए आपके पास 5 अंकों की संख्या होनी चाहिए। [आपके पास 1040.jpg है] और लगातार भी। 00000.jpg फिर 00001.jpg। आपकी फ़ाइल नामों से 10

कूद कर रहे हैं उन सभी को 10 में से कई हैं, तो आप% d50.jpg उपयोग कर सकते हैं [लेकिन आप अभी भी अपने 1040.jpg को ठीक करने की जरूरत है] अन्यथा आदेश

लाइन यहाँ काम करता है [मैं ffmpeg उपयोग कर रहा हूँ मैं% 5d.jpg out.avi और ffmpeg मैं% 5d0.jpg out.avi]

+0

मैंने इसे आसान बनाने के लिए अपना प्रश्न अपडेट किया - बस पीएनजी फ़ाइलों को jpg में परिवर्तित करने के बारे में। मैं अभी भी यह पता नहीं लगा सकता कि वाइल्डकार्ड सिस्टम का सही तरीके से उपयोग कैसे किया जाए। मैंने खोज करने की कोशिश की है, लेकिन कोई स्पष्टीकरण नहीं मिल रहा है। सही वाक्यविन्यास क्या होगा? धन्यवाद। – abalter

+0

कन्वर्ट एक अलग उपयोगिता है, है ना? ffmpeg एक अलग है। मैं इसे ffmpeg का उपयोग कर कर रहा हूं और यह ठीक काम करता है। – av501

+0

चाहे मैं किस प्रोग्राम का उपयोग कर रहा हूं, मुझे फ़ाइल त्रुटि नहीं मिल रही है। मुझे आश्चर्य है कि मेरे सिस्टम में क्या गलत है? मेरे द्वारा मिले सभी उदाहरण एक ही चीज़ दिखाते हैं। – abalter

4

यहाँ एक बैश खोल में बैच-परिवर्तित छवि फ़ाइलों के लिए एक ही रास्ता है:

for f in *.png; do ffmpeg -i "$f" "${f%.png}.jpg"; done 

मुझे विश्वास है कि यह तकनीक किसी भी कमांड के लिए काम करेगी जिसके लिए इनपुट और आउटपुट फाइलों को अलग सूचीबद्ध किया जाना चाहिए ately। आपके मामले में यह होगा:

for f in *.png; do convert "$f" "${f%.png}.jpg"; done