कैसे सबसे अच्छी गुणवत्ता मिल जब mp4 से ffmpeg के साथ AVI परिवर्तित?


11

जब मैं इसका उपयोग करता हूं, तो गुणवत्ता खराब नहीं होती है।

ffmpeg -same_quant -i video.mp4 video.avi

में ffmpegप्रलेखन लिखा है: "ध्यान दें कि यह एक ही गुणवत्ता नहीं है, तो इस विकल्प का उपयोग न करें जब तक आप जानते हैं कि आप इसकी आवश्यकता है।।"

क्या मुझे -same_quantसबसे अच्छी गुणवत्ता मिलती है या क्या कोई विकल्प है जो इनपुट के समान गुणवत्ता देता है और अधिक अनुशंसित है?


उपयोग किए गए कोडेक के आधार पर (कुछ कोडेक कुछ कंटेनरों के साथ असंगत हैं), आप हमेशा स्ट्रीम ( -codec copy) को कॉपी कर सकते हैं । गुणवत्ता में बदलाव से बचने का यह सबसे अच्छा तरीका है, क्योंकि आप धाराओं को दोबारा नहीं बना रहे हैं, बस उन्हें एक अलग कंटेनर में रखा जा रहा है।
njsg

जब मैं यह कोशिश मैं: Unknown decoder 'copy'
साइड_कॉम

3
ऐसा लगता है कि -codec copyइसके बाद जाना चाहिए -i video.mp4- क्या आप कोशिश कर सकते हैं ffmpeg -i video.mp4 -codec copy video.avi? ( -same_quantयहां भी काम करता है, लेकिन कुछ भी नहीं करेगा, क्योंकि यह सिर्फ धाराओं की नकल करता है)
nssg

Ffmpeg के कमांड-लाइन विकल्पों की नियुक्ति के बारे में, ffmpeg का दस्तावेज़ीकरण देखें - 2 विवरण : यहाँ एक अंश है: एक सामान्य नियम के रूप में, विकल्प अगले निर्दिष्ट फ़ाइल पर
पीटर।

धन्यवाद! अब -codec copyसही जगह पर काम करता है।
sid_com

जवाबों:


14

(ऊपर टिप्पणी से अनुकूलित)

उपयोग किए गए कोडेक के आधार पर (कुछ कोडेक कुछ कंटेनरों के साथ असंगत हैं), आप हमेशा स्ट्रीम ( -codec copy) को कॉपी कर सकते हैं । गुणवत्ता में बदलाव से बचने का यह सबसे अच्छा तरीका है, क्योंकि आप धाराओं को दोबारा नहीं बना रहे हैं, बस उन्हें एक अलग कंटेनर में रखा जा रहा है।

ऑडियो / वीडियो फ़ाइलों के साथ काम करते समय, यह ध्यान रखना ज़रूरी है कि कंटेनर ज्यादातर इस्तेमाल किए गए कोडेक्स से स्वतंत्र हैं। फ़ाइलों को "AVI वीडियो" या "MP4 वीडियो" के रूप में संदर्भित करने वाले लोगों को देखना आम है, लेकिन वे कंटेनर हैं और हमें इस बारे में बहुत कम बताते हैं कि क्या कोई खिलाड़ी तकनीकी सीमाओं के अलावा, धाराओं को खेलने में सक्षम होगा या नहीं (उदाहरण के लिए, AVI h264 और Ogg Vorbis के साथ समस्या हो सकती है ), आप किसी भी कोडेक का उपयोग कर सकते हैं।

-same_quantएक समान गुणवत्ता को प्राप्त करने का प्रयास करने के लिए ffmpeg को बताने का एक तरीका प्रतीत होता है, लेकिन जैसे ही आप वीडियो को पुन: लोड करते हैं (कम से कम हानिरहित कोडेक्स के साथ), आपके पास समान गुणवत्ता प्राप्त करने का कोई तरीका नहीं है। यदि आप गुणवत्ता से चिंतित हैं, तो अंगूठे का एक अच्छा नियम है कि जब संभव हो तो धाराओं को पुन: लोड करने से बचें।

तो, ffmpeg के साथ स्ट्रीम कॉपी करने के लिए, आप यह करेंगे:

ffmpeg -i video.mp4 -codec copy video.avi

( जैसा कि @ पीटर.ओ। उल्लेख किया गया है , विकल्प आदेश महत्वपूर्ण है, इसलिए यह वह जगह है जहां आपको -codec copyजाना चाहिए। आप अभी भी रख सकते हैं -same_quant, लेकिन इसका कोई प्रभाव नहीं होगा क्योंकि आप धाराओं को फिर से नहीं कर रहे हैं।)


आपका समाधान मेरे लिए काम करता है। मैं देखता हूं कि avconvअब इसकी सिफारिश की जाती है ffmpegऔर वास्तव में मैंने इसका उपयोग किया है।
फहीम मीठा

3

FreeBSD 8. 2 के तहत, मैंने-कोड कॉपी की कोशिश की, लेकिन मुझे संदेश अज्ञात रूप से डिकोड हो गया। परीक्षण और त्रुटि के बाद मैंने पाया कि काम करना FreeBSD के तहत है:

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