audio - Python extract wav from video file -
संबंधित:
मेरा प्रश्न है कि मैं कैसे वीडियो फ़ाइल से wav ऑडियो ट्रैक निकाल सकता हूँ, video.avi
कहें? मैं कई लेख पढ़ता हूं और हर जगह लोगों को सुझाव देता हूं कि (पायथन से) ffmpeg
एक उपप्रक्रिया के रूप में (क्योंकि कोई विश्वसनीय अजगर बाइंडिंग नहीं है - केवल एकमात्र आशा थी PyFFmpeg
लेकिन मैं पाया यह अब unmaintened है)। मुझे नहीं पता कि यह सही समाधान है और मैं अच्छे के लिए देख रहा हूं।
मैंने जीस्ट्रिमर को देखा और मुझे अच्छा लगा, लेकिन मेरी जरूरतों को पूरा करने में असमर्थ - एकमात्र तरीका है जो इसे कमांड लाइन से पूरा करने के लिए मिला I
gst-launch-0.10 playbin2 uri = फ़ाइल: // `pwd` / EX.mp4 ऑडियो-सिंक = 'पहचान एकल खंड = सच! ऑडियोकॉनवर! ऑडियो / एक्स-कच्चे- int, एंडियननेस = (इंट) 1234, हस्ताक्षर किए = (बूलियन) सही, चौड़ाई = (इंट) 16, गहराई = (इंट) 16, रेट = (इंट) 16000, चैनल = (इंट) 1! Wavenc! Filesink location = foo.wav '
लेकिन यह कुशल नहीं है क्योंकि मुझे वीडियो चलाने के दौरान उम्र की प्रतीक्षा करने की आवश्यकता है और साथ ही wav फाइल को लिखना
ffmpeg
बहुत बेहतर है:
avconv -i foo.mp4 -ab 160k -ac 1 -ar 16000 -vn ffaudio.wav < / Code>
लेकिन मैं इसे अजगर से लॉन्च करने में असमर्थ हूं (कमांड लाइन सबप्रोसेस के रूप में नहीं) क्या आप मुझे पाइथन से ffmpeg को एक कमांड लाइन उपयोगिता के रूप में लॉन्च करने के पेशेवर और विपक्ष को सूचित कर सकते हैं? (मेरा अर्थ है अजगर मल्टीप्रोसेसिंग
मॉड्यूल या कुछ इसी तरह का)।
और दूसरा प्रश्न।
क्या आसान तरीका है कटौती लंबे समय तक wav फ़ाइल टुकड़ों में इतना है कि मैं किसी भी शब्द को तोड़ नहीं है? वाक्यों / शब्दों में विराम के दौरान शुरू और अंत के साथ 10-20 सेकंड लंबाई के टुकड़े का मतलब है?
मुझे पता है कि उन्हें मनमानी टुकड़ों पर कैसे तोड़ना है:
आयात करें लहर जीत = लहर। Open ('ffaudio.wav', 'rb') wout = wave.open ('Ffsegment.wav', 'wb') t0, t1 = 2418, 2421 # 2413, 2422 सेकंड s0, s1 = int (t0 * win.getframerate ()), int (t1 * win.getframerate () के बीच कट ऑडियो ) Win.readframes (s0) # डिस्कार्ड फ़्रेम = win.readframes (s1-s0) wout.setparams (win.getparams ()) wout.writeframes (फ्रेम) win.close () wout.close ()
< python
Comments
Post a Comment