केवल ffmpeg के साथ विशिष्ट वीडियो और ऑडियो ट्रैक में कनवर्ट करें


26

मेरे पास vidui.mkvइसमें 6 ट्रैक के साथ एक MKV फ़ाइल ( ) है।

Track 1 - video - xvid - 1920x1080
Track 2 - video - xvid - 720x576
Track 3 - audio -  AAC - 1240kbps - English
Track 4 - audio -  AAC - 648kbps - Spanish
Track 5 - audio -  AAC - 648kbps - Commentary 1
Track 6 - audio -  AAC - 648kbps - Commentary 2

मैं उपरोक्त फ़ाइल को एक h264 वीडियो और एक AC3 ऑडियो के साथ mp4 प्रारूप में परिवर्तित करना चाहता हूं। इसके अलावा मैं ट्रैक 1 (वीडियो) और ट्रैक 5 (ऑडियो) कन्वर्ट करना चाहता हूं।

अगर मैं उपयोग करता हूं

ffmpeg.exe -i vidui.mkv -f mp4 -vcodec libx264 -acodec ac3 -crf 20 -sn -n vidui.mp4

यह पहले वीडियो ट्रैक और पहले ऑडियो ट्रैक को रूपांतरित करता है, लेकिन जो मैं करना चाहता हूं वह ट्रैक 1 और ट्रैक 5 में परिवर्तित होता है।

जवाबों:


43

आप विशिष्ट इनपुट स्ट्रीम का चयन करने के लिए -mapविकल्प ( पूर्ण प्रलेखन ) का उपयोग कर सकते हैं और उन्हें अपने आउटपुट में मैप कर सकते हैं।

सबसे सरल mapसिंटैक्स आप उपयोग कर सकते हैं -map i:s, जहां iइनपुट फ़ाइल आईडी है और sदोनों के साथ शुरू होने वाली स्ट्रीम आईडी है 0। आपके मामले में, इसका मतलब है कि हम ट्रैक 0और 4:

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:0 -map 0:4 vidui.mp4

यदि आप विशेष रूप से वीडियो, ऑडियो या उपशीर्षक ट्रैक चुनना चाहते हैं, तो आप स्ट्रीम स्पेसर का भी उपयोग कर सकते हैं :

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:v:0 -map 0:a:1 vidui.mp4

यहाँ, 0:v:0पहली वीडियो स्ट्रीम है और 0:a:1दूसरी ऑडियो स्ट्रीम है।


क्या गतिशील रूप से ऐसा करने का कोई तरीका है? कहो कि मैं यह केवल भाषा एक्स के ऑडियो पटरियों के लिए करना चाहता हूं, और ffmpeg को इसे चुनना है?
फ्रीडो ऑक्ट

@Freedo हाँ, कृपया दस्तावेज़ देखें। उदाहरण के लिए-map 0:m:language:eng
slhck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.