एक ही उच्च गुणवत्ता AVI फ़ाइल के लिए mp4 बदलने के लिए ffmpeg का उपयोग करें?


28

मैं एक mp4 वीडियो फ़ाइल को AVI में बदलने के लिए ffmpeg का उपयोग करना चाहूंगा, लेकिन एक ही गुणवत्ता के साथ, भले ही यह अधिक स्थान लेता हो। अगर मैं बस करूँ:

ffmpeg -i file.mp4 file.mp4.avi

परिणामी एवीआई फ़ाइल बहुत कम गुणवत्ता वाली और पिक्सेलयुक्त है। वीडियो और ऑडियो गुणवत्ता को बनाए रखते हुए मैं यह परिवर्तन कैसे कर सकता हूं?


3
आप -sameqस्विच का उपयोग कर सकते हैं , जो AVI कंटेनर में एक ही वीडियो कोडेक (एच 264 मानकर) डाल देगा। यदि आपका खिलाड़ी AVI में H264 का समर्थन नहीं करता है, तो आपको कुछ औसत दर्जे के प्रारूप में सर्वश्रेष्ठ संभव वीडियो प्रारूप (H264) को ट्रांसकोड करने की आवश्यकता है, जो अच्छा नहीं है। फिर आप उच्च वीडियो बिटरेट XVID असाइन करते हैं (मान लें कि 2000 केबी / एस)। ऑडियो इतना IMHO मायने नहीं रखता है, लेकिन एमपी 3 में परिवर्तित करने के लिए बेहतर तो AC3
zetah

जवाबों:


16

जब भी आप एक कोडेक से दूसरे, वीडियो या ऑडियो में ट्रांसकोड करते हैं, तो आप हमेशा थोड़ी गुणवत्ता खो देते हैं, लेकिन शायद आप इससे बच सकते हैं यदि आप केवल MP4 कंटेनर प्रकार से एक AVI कंटेनर में बदलना चाहते हैं। codec:copyयदि आपके पास ट्रांसकोड करने का कोई कारण नहीं है (और यह तेज होना चाहिए) सहायक हो सकता है।

यदि आपको ट्रांसकोड करना होगा क्योंकि आपको एक विशेष वीडियो कोडेक का उपयोग करने की आवश्यकता है, तो मुझे आशा है कि आप उसकी टिप्पणी में ऊपर दिए गए zetah के सुझाव का उपयोग कर सकते हैं और -sameqस्विच का उपयोग कर सकते हैं । वैकल्पिक रूप से, आप qscaleगुणवत्ता को मैन्युअल रूप से सेट करने के लिए विकल्प का उपयोग करना चाह सकते हैं । कम संख्या बेहतर गुणवत्ता, लेकिन अधिक जगह अपनी फ़ाइल ले जाएगा।

पिछली बार जब मैंने अपने द्वारा उपयोग किए गए वीडियो को ट्रांसकोड किया था qscale=8.0, लेकिन मेरा सुझाव है कि आप अपने इनपुट की गुणवत्ता से मिलान करने के लिए इष्टतम का प्रयोग करें।

मार्टी जे ने मदद करने का उल्लेख किया है कि इनपुट में उसी मात्रा का मतलब है, जैसा कि उसी गुणवत्ता में हो सकता है। वह जिस लेख में उद्धरण देता है वह मल्टी-पास रूपांतरण का उपयोग करता है, जो गुणवत्ता का त्याग किए बिना बेहतर संपीड़न प्राप्त करने का एक अच्छा तरीका है।


सुझावों के लिए धन्यवाद, मैं -sameqयह देखने की कोशिश करूँगा कि यह कैसे जाता है।
719016

8
-sameq समान गुणवत्ता का मतलब नहीं है; ffmpeg.org/trac/ffmpeg/wiki/…

3
यह -qscale 0विकल्प का उपयोग करने के लिए अनुशंसित लगता है
user989762

बहुत पुराना है, लेकिन मुझे आज यह करने की कोशिश में यह चेतावनी मिली:Option 'sameq' was removed. If you are looking for an option to preserve the quality (which is not what -sameq was for), use -qscale 0 or an equivalent quality factor option.
डेव लुग

10

मेरा समाधान:

ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi

का आनंद लें!!


2
विदित हो कि AVI कंटेनरों में एवीसी धाराओं को एम्बेड करने के लिए एक हैक की आवश्यकता होती है जो कई समुदाय-संचालित वीडियो खिलाड़ियों (जैसे VLC, MPlayer, FFmpeg / Libav या GStreamer, Media Player Classic) द्वारा समर्थित है, लेकिन अन्य वाणिज्यिक खिलाड़ियों (जैसे Windows Media Player) द्वारा समर्थित नहीं है और QuickTime / iTunes इसका समर्थन नहीं करते हैं)।
डेविड फ़ॉर्स्टर

4

यहां मेरा 2-पास (एडवांस्ड सिंपल प्रोफाइल) है जिसका मैं अभी और बाद में उपयोग करता हूं।

पास 1:

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null

पास 2:

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi

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