2013-08-07 8 views
5

मैं एफएफ-श्रृंखला (जिसका अर्थ है ffmpeg, ffplay, ffprobe) के साथ थंबनेल निकालने वाला विकास कर रहा हूं।ffprobe की पैकेट आकार इकाई (ffmpeg के समान) क्या है?

मैं फ्रेम के स्थान पता करने की जरूरत है, इसलिए मैं एक कमांड जो नीचे की तरह मैं stackoverflow में एक और पोस्टिंग पाया का उपयोग करें।

ffprobe -show_frames -select_streams v -print_format json=c=1 0001.wmv 

वास्तव में यह अच्छा काम करता है और पैकेट की बहुत सारी जानकारी के साथ फ़ाइल बनाता है।

आउटपुट फ़ाइल नीचे की तरह।

"frames": [ 
     { "media_type": "video", "key_frame": 1, "pkt_pts": 900000, "pkt_pts_time": "10.000000", "pkt_dts": 900000, "pkt_dts_time": "10.000000", "pkt_duration": 3003, "pkt_duration_time": "0.033367", "pkt_pos": "453", "pkt_size": "9744", "width": 720, "height": 480, "pix_fmt": "yuv420p", "sample_aspect_ratio": "8:9", "pict_type": "I", "coded_picture_number": 0, "display_picture_number": 0, "interlaced_frame": 0, "top_field_first": 0, "repeat_pict": 0 },... 

"pkt_size" नामक एक कॉलम है, जिसे मैं पैकेट का आकार मानता हूं।

यह कुछ संख्याओं को प्रदर्शित करता है, लेकिन इकाइयों की कोई जानकारी नहीं।

मुझे आश्चर्य है कि इकाई 'बाइट' या 'बिट' है।

अगर किसी के पास इसकी कुछ जानकारी है, तो मुझे बताएं।

धन्यवाद।

उत्तर

6

इकाई बाइट है।

इसके लिए सबसे अच्छा सुराग उपकरण/प्लॉटफ्रेम से है, जो फ्रेम आकारों की एक साजिश उत्पन्न करने के लिए ffmpeg द्वारा प्रदान किया गया एक उपकरण है। इस कोड स्निपेट को जांचें, जो कि केबीट्स (pkt_size * 8/1000) में फ्रेम आकार आउटपुट करेगा।

foreach my $frame (@{$frames}) { 
    my $type = $frame->{pict_type}; 
    $frame->{count} = $frame_count++; 
    if (not $stats{$type}) { 
     $stats{$type}->{tmpfile} = File::Temp->new(SUFFIX => '.dat'); 
     my $fn = $stats{$type}->{tmpfile}->filename; 
     open($stats{$type}->{fh}, ">", $fn) or die "Can't open $fn"; 
    } 

    print { $stats{$type}->{fh} } 
     "$frame->{count} ", $frame->{pkt_size} * 8/1000, "\n"; 
} 
+0

जवाब के लिए धन्यवाद पारित करके इकाइयों देख सकते हैं। मुझे लगता है कि आपके पास सही जवाब है। लेकिन यह कोड मुझसे अपरिचित प्रतीत होता है, तो क्या आप मुझे बताएंगे कि यह कौन सी भाषा है? –

+0

ffmpeg/tools/plotframes एक perl स्क्रिप्ट है। – Drake

+0

ठीक है। मैं समझ गया! बहुत बहुत धन्यवाद। एक अच्छा दिन है: डी –

0

तुम भी '-unit' विकल्प ffprobe को

तरह

ffprobe -show_frames -select_streams v -print_format -unit json=c=1 0001.wmv 
संबंधित मुद्दे