Fpmpeg निर्मित jpgs की गुणवत्ता में सुधार


29

मैं एक आईपी कैमरा से एक mjpeg फ़ीड लेने के लिए ffmpeg का उपयोग कर रहा हूं और इसे अभी भी jpeg छवियों की एक श्रृंखला में परिवर्तित कर रहा हूं। यहाँ कमांड का उपयोग कर रहा हूँ:

ffmpeg -i http://xxx:xxx@xx.xx.xx.xx/vid.mjpg -f image2 -vcodec mjpeg %05d.jpg

क्या किसी को पता है कि ffmpeg का उपयोग करते समय चित्र बनाने के लिए jpg संपीड़न के स्तर को निर्दिष्ट करने का कोई तरीका है?

जवाबों:


36

यहाँ क्या मेरे लिए चाल कर समाप्त हो गया है:

ffmpeg -i http://xx.xx/mjpg/video.mjpg -q:v 1 %05d.jpg

-q:v 1टिकट था। यह वीडियो एनकोडर की गुणवत्ता को सेट करता है, जहां -qसाधन की गुणवत्ता और :vवीडियो का मतलब है। मान 1 से 31 तक होते हैं, जहां कम का मतलब बेहतर होता है।


2
मुझे नहीं पता कि यह वर्षों पहले उपलब्ध था, लेकिन यदि आप चाहते हैं कि स्रोत JPEG छवियाँ MJPEG से अनमॉडिफ़ाइड हो , तो इसका उत्तर यहाँ है: ffmpeg.org/ffmpeg-bitstream-filters.html#mjpeg2jp ---- संक्षेप में: -c:v copy -bsf:v mjpeg2jpegबजाय q:v 1
जुआनिटोगन 11

1
क्या किसी को पता है कि यह किस डिफ़ॉल्ट मूल्य का उपयोग करता है?
जे। आर। व्रेन

@ JayR.Wren मैंने कुछ परीक्षण किए और मेरे मामले में यह कम (अच्छा) शुरू हुआ और कुछ सेकंड के बाद 24.8 (खराब) हो गया। मुझे पता नहीं क्यों। ffmpegs वर्तमान गुणवत्ता को दिखाता है q। यहाँ है 24.8 के लिए उदाहरणframe= 64 fps=5.0 q=24.8 Lsize=N/A time=00:00:16.00 bitrate=N/A dup=10 drop=299 speed=1.25x
problemofficer

6

$ ffmpeg -r 1/4 -i %03d.jpg -b 5000 -vcodec mjpeg -qscale 1 5000.avi

या

$ ffmpeg -r 1/4 -i %03d.jpg -vcodec copy -qscale 1 copy.avi

संदर्भ:

r       delay between next jpg, results 4 second
b       bitrate
vcodec  use jpeg encode
qscale  quality ratio

qscale बिटरेट स्पेसियर के साथ "प्रतिस्पर्धा" करता है, मुझे आश्चर्य है?
रोज़गारपैक

1
क्या यह नहीं पूछा जा रहा है के विपरीत है? यह एमपीईजी करने के लिए जेपीईजी की तरह दिखता है। एमपीईजी jpeg करने के लिए पूछना है।
जुआनिटोगान

4

आप PPM में निर्यात करने और JPEG में बदलने के लिए कुछ अन्य टूल का उपयोग करने का प्रयास कर सकते हैं।

मैंने ffmpeg / libavcodec / mjpeg.c में देखा। मेरा मानना ​​है कि गुणवत्ता एक निश्चित मूल्य पर सेट है।

इसके अलावा आप एक MJPEG वीडियो को JPEG अभी भी फ्रेम में बदलना चाहते हैं। मुझे लगता है कि इस मामले में कोड ffmpeg / libavcodec / mjpeg2jpeg_bsf.c पर चलता है और डेटा दोबारा नहीं बनाया जाता है। इसलिए छवि की गुणवत्ता में कोई सुधार नहीं होगा।

यह परिमाणीकरण तालिका की परिभाषा है, मैंने * val_? C का कोई संदर्भ नहीं देखा है? जहाँ मानों को उपयोग करने से पहले स्केल किया गया था।

/* Set up the standard Huffman tables (cf. JPEG standard section K.3) */
/* IMPORTANT: these are only valid for 8-bit data precision! */
const uint8_t ff_mjpeg_bits_dc_luminance[17] =
{ /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
const uint8_t ff_mjpeg_val_dc[12] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };

const uint8_t ff_mjpeg_bits_dc_chrominance[17] =
{ /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };

const uint8_t ff_mjpeg_bits_ac_luminance[17] =
{ /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d };
const uint8_t ff_mjpeg_val_ac_luminance[] =
{ 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,

मैं पीपीएम से परिचित नहीं हूं, वह क्या है?
वीटी

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

पीपीएम सबसे सरल रंग छवि प्रारूप है जिसकी कोई कल्पना कर सकता है। इसका सिर्फ एक हेडर जैसे "P6 640 480 255 \ n" और फिर कच्चा डेटा। मैंने अभी देखा। शायद यह वास्तव में इस प्रारूप का उत्पादन नहीं कर सकता है। केवल एक और विकल्प होगा, कच्चा-कच्चा रॉविडियो। क्या आपने -क्वालिटी की कोशिश की?

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