जवाबों:
आपकी मूल फ़ाइल कैसे एन्कोड की गई थी, इसके आधार पर, फ़ाइल का आकार रखना संभव नहीं हो सकता है।
ffmpeg -i infile.avi youroutput.mp4
एक mp4 फ़ाइल बनाते समय फ्रेम आकार और दरों को बरकरार रखना चाहिए।
ffmpeg -i infile.avi
आपको अपनी इनपुट फ़ाइल के बारे में जानकारी देगा - फ़्रेम का आकार, उपयोग किए गए कोड, बिटरेट आदि।
जब आप अपना आउटपुट जेनरेट करते हैं तो आप विकल्पों acodec
और vcodec
विकल्पों के साथ भी खेल सकते हैं । यह भी याद रखें कि mp4 और avi फाइलें विभिन्न कोडेक्स का उपयोग कर सकती हैं और आपका माइलेज आपके द्वारा चुने गए कोडेक के अनुसार भिन्न हो सकता है।
मैं AVI फ़ाइलों को mp4 में परिवर्तित करने में बहुत दिलचस्पी थी। आपके पोस्ट को पढ़कर, मुझे यह ffmpeg कमांड याद आया:
ffmpeg -i input.avi -strict -2 output.mp4
कमांड -strict -2
को AAC कोडेक द्वारा आवश्यक किया गया है जो प्रयोगात्मक है, लेकिन काम करता है (लाइबैक), यदि आप उन दो मापदंडों को जोड़ते हैं। आउटपुट फ़ाइल डिफ़ॉल्ट रूप से उच्च-गुणवत्ता वाली होती है।
जहां तक मैं समझता हूं कि एवीआई-कंटेनर को mp4 एक के साथ बदलना आवश्यक है (औपचारिक रूप से - आईएसओ आधार मीडिया फ़ाइल प्रारूप आईएसओ / आईईसी 14496-12)।
यदि आप निम्नलिखित कमांड चलाते हैं:
ffmpeg -i input.avi -y output.mp4
ऐसे मामले में ffmpeg re-encodes प्राथमिक धाराओं में input.avi (cahnge कंटेनरों और re-encode ffmpeg का डिफ़ॉल्ट मोड है )। यह ध्यान देने योग्य है कि पुनः-एन्कोडिंग दृश्य और / या सुनने की गुणवत्ता बिगड़ सकती है।
इसलिए, " सी: वी कॉपी सी: एक कॉपी " कोडेक विकल्पों द्वारा री-एन्कोडिंग को अक्षम करने की सिफारिश की गई है :
ffmpeg -i input.avi -c:v copy -c:a copy -y output.mp4
उपरोक्त मामले में ffmpeg केवल शेल (कंटेनर) बदलता है
ffprobe -i infile.avi
बजाय इसका उपयोग करना बेहतर हैffmpeg -i infile.avi
, क्योंकि "कम से कम एक आउटपुट फ़ाइल निर्दिष्ट होना चाहिए" त्रुटि में बाद के परिणाम।