Ffmpeg में ऑडियो और वीडियो फ़ाइल को कैसे मर्ज करें


161

मैं एक वीडियो फ़ाइल (.mp4 प्रारूप) के साथ एक ऑडियो फ़ाइल (.wav या .au प्रारूप) को मर्ज करना चाहता हूं।

कृपया मुझे सुझाव दें कि इसे कैसे प्राप्त किया जाए। मैं इन फ़ाइल को नए .mp4 वीडियो फ़ाइल में मर्ज करना चाहता हूं। एक ffmpeg कमांड का बहुत स्वागत होगा।


यहाँ एक सभ्य लेख है जो सहायक भी हो सकता है ... cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg
साइमन ईस्ट

जवाबों:


260

ऑडियो फिर से एन्कोडिंग के साथ, वीडियो और ऑडियो को मर्ज करना

इस उदाहरण को देखें, इस ब्लॉग प्रविष्टि से लिया गया है लेकिन नए सिंटैक्स के लिए अपडेट किया गया है। इसके प्रभाव के लिए कुछ होना चाहिए:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

यहां, हम मानते हैं कि वीडियो फ़ाइल में अभी तक कोई ऑडियो स्ट्रीम नहीं है, और आप इनपुट प्रारूप के रूप में एक ही आउटपुट प्रारूप (यहां, MP4) चाहते हैं।

उपरोक्त कमांड ऑडियो को ट्रांसकोड करता है, क्योंकि MP4s PCM ऑडियो स्ट्रीम नहीं ले सकता है। आप चाहें तो किसी अन्य इच्छित ऑडियो कोडेक का उपयोग कर सकते हैं। अधिक जानकारी के लिए AAC एन्कोडिंग गाइड देखें ।

यदि आपका ऑडियो या वीडियो स्ट्रीम लंबा है, तो आप -shortestविकल्प जोड़ सकते हैं ताकि एक फ़ाइल समाप्त होते ही ffmpeg एन्कोडिंग बंद कर दे।

फिर से एन्कोडिंग के बिना ऑडियो कॉपी करना

यदि आपका आउटपुट कंटेनर किसी भी कोडेक को संभाल सकता है - जैसे MKV - तो आप बस ऑडियो और वीडियो स्ट्रीम दोनों को कॉपी कर सकते हैं:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

ऑडियो स्ट्रीम बदल रहा है

यदि आपके इनपुट वीडियो में पहले से ही ऑडियो है, और आप इसे बदलना चाहते हैं, तो आपको ffmpeg को बताना होगा कि कौन सी ऑडियो स्ट्रीम लेनी है:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

mapविकल्प ffmpeg केवल पहले इनपुट और आउटपुट फ़ाइल के लिए दूसरे इनपुट से पहले ऑडियो स्ट्रीम से पहले वीडियो स्ट्रीम का उपयोग करता है।


मैंने इसे आजमाया लेकिन विलय करते समय ffmpeg जम रहा है
सैंडी

4
मुझे नहीं लगता कि mp4 कंटेनरों में wav ऑडियो स्ट्रीम हो सकती हैं। कोशिशffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
ल्यूक

1
मैं इसका उपयोग कर रहा हूं और यह मूल ऑडियो को इनपुट ऑडियो से बदल रहा है। क्या होगा यदि मैं इनपुट वीडियो के ऑडियो के साथ इनपुट ऑडियो को मर्ज करना चाहता हूं?
इकबाल मलिक

बहुत ही प्यारी कमांड लाइन ...
चंद्रा नक़ा

बहुत बढ़िया, मैंने ffmpeg -i video.mp4 -i audio.wav \ -c: v copy -c: aac -strict प्रयोगात्मक output.mp4 का उपयोग करके एमपी 3 को Wav फ़ाइल के साथ मर्ज कर दिया ... =>> mp4 5 मिनट, 30 सेकंड प्रदान ..धन्यवाद
sonida

12

चूँकि मुझे अपनी प्रतिष्ठा के साथ पहले उत्तर के लिए टिप्पणी लिखने की अनुमति नहीं है, यहाँ एक परिशिष्ट, क्योंकि मुझे यह समस्या थी जब वेबिंग एन्कोडिंग।
यदि आपका ऑडियो स्ट्रीम वीडियो स्ट्रीम की तुलना में अधिक समय तक है , तो आपको इसे काटना होगा या अन्यथा आपके पास अंतिम वीडियो फ्रेम एक स्थिर छवि और ऑडियो रनिंग के रूप में होगा।

या तो स्ट्रीम में कटौती करने के लिए, आप प्रत्येक -i "file.ext" से पहले -s [hh: mm: ss] -t [ss] का उपयोग कर सकते हैं।
-एसएस [...] कट-
टी के लिए प्रारंभिक बिंदु को परिभाषित करेगा [...] सेकंड में खंड की लंबाई को परिभाषित करेगा

उदाहरण:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4

4
आप केवल -shortestअंत को काटने के लिए भी उपयोग कर सकते हैं ।
nyuszika7h

5

-open कमांड प्रोम्ट (विंडोज़ + आर -> cmd-> दर्ज)

-इसके बाद उस फोल्डर के अंदर जाएं जहां आपके पास ऑडियो और वीडियो फाइल है

इस सीएमडी लागू करें

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

दर्ज करें .... आपको outPutFime.mp4 नाम की एक नई फ़ाइल मिलेगी (ऑडियो और वीडियो की एक मर्ज की गई फ़ाइल)


2
यहां कमांड लाइन का उपयोग कैसे करें, यह वर्णन करना वास्तव में आवश्यक नहीं है। यह बहुत अधिक निहित है कि उपयोगकर्ता इसका पता लगाने में सक्षम होंगे। विशेष रूप से चूँकि पूछने वाले ने FFmpeg निर्दिष्ट किया है। सभी समान, -shortestटैग बहुत निफ्टी है। @ User136036 के उत्तर की तुलना में बहुत सरल है।
कैट

3
यह सब कुछ फिर से सांकेतिक शब्दों में बदलना होगा, जो शायद वह नहीं है जो चाहता था।
22


'ffmpeg' को आंतरिक या बाहरी कमांड के रूप में मान्यता प्राप्त नहीं है,
यूनिकोडर


5

यह मेरे लिए काम किया:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4

1
मेरे लिए आंशिक रूप से काम करना, सभी इनपुट्स के लिए काम नहीं करना, कुछ परिणामी इनपुट वीडियो आउटपुट में समान हैं
नरेंद्र सिंह


1

Mencoder का उपयोग करने का प्रयास करें (हाँ यह ffmpeg आधारित है, लेकिन आप कभी नहीं जानते हैं)। मैं -audiofileतर्क का उपयोग करता हूं । मैं आम तौर पर ffmpeg का उपयोग करता हूं, लेकिन इस सलाह को एक चुटकी नमक के साथ लें।

और, अगर आप विंडोज का उपयोग करते हैं, तो मीडियाकोडर (दु: ख का स्रोत नहीं है) काम करता है ... इसके मूल रूप से बहुत से गनु एनकोडर और कुछ गैर-मुक्त लोगों के लिए एक दृश्य है।

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