Ffmpeg का उपयोग करके वीडियो बिटरेट निर्धारित करें


17

मैं ffmpeg कमांड का उपयोग करके वीडियो बिटरेट (ट्रांसकोडिंग के लिए) निर्धारित करने की कोशिश कर रहा हूं, मैंने कमांड का पालन करने की कोशिश की।

ffmpeg -i 28572615.wmv

और यह निम्नलिखित आउटपुट का उत्पादन करता है

    Input #0, asf, from '28572615.wmv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf57.36.100
  Duration: 00:02:50.92, start: 0.000000, bitrate: 1982 kb/s
    Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
At least one output file must be specified

अगर मैं दूसरे वीडियो का उपयोग करूं

ffmpeg -i with_out_sound.mp4

तो मैं निम्नलिखित उत्पादन मिलता है

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'with_out_sound.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2015-04-21 05:14:57
  Duration: 00:00:27.86, start: 0.000000, bitrate: 500 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 622x480 [SAR 1:1 DAR 311:240], 100 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2015-04-21 05:14:57
      handler_name    : VideoHandler
At least one output file must be specified

जिस बिंदु पर मैं भ्रमित हूं वह यह है कि क्या मुझे वीडियो बिटरेट के लिए अवधि मेटाडेटा लाइन या वीडियो स्ट्रीम मेटाडेटा लाइन (स्ट्रीम # 0: 0) में देखना चाहिए?


दूसरी फ़ाइल के लिए, फ़ाइल का आकार क्या है?
ज्ञान

@Mulvya 2 वीडियो फ़ाइल का आकार 1.66 एमबी है
user2528012

इसलिए दोनों रीडिंग गलत हैं - वास्तविक बिटरेट 61 kb / s है। यह शायद इसलिए है क्योंकि यह एक डीएएस सेगमेंट है।
ज्ञान

Ffmpeg व्यक्तिगत स्ट्रीम बिट्रेट कैसे निर्धारित करता है? बताते हैं कि दरें कैसे निर्धारित की जाती हैं।
creidhne

जवाबों:


16

वीडियो बिटरेट वीडियो स्ट्रीम जानकारी में प्रदर्शित होता है। प्रारूप जानकारी में सभी धाराओं के साथ बिटरेट शामिल है जो ओवरहेड ओवरहेडिंग हैं।

यदि वीडियो बिटरेट गायब है, तो उस मान को प्राप्त करने का एक गंदा तरीका कुल बिटरेट से अन्य सभी धाराओं के बिटरेट को घटाकर है।

यदि यह व्यवहार्य नहीं है, तो एक बोझिल विधि पैकेट के आकार और धारा की अवधि दिखाने के लिए ffprobe को चलाने के लिए है और फिर अंतिम एक को छोड़कर सभी लाइनों को संक्षेप में बिटरेट की गणना करना और अंतिम पंक्ति में मान द्वारा विभाजित करना है।

ffprobe -select_streams v -show_entries packet=size:stream=duration -of compact=p=0:nk=1 video.mp4

आउटपुट:

4199      
2627      
1792      
3921      
2993      
...  
2301      
3076
2879
1543.00000

बेशक, यह एक अंतिम उपाय है, और केवल तभी लागू होता है जब वीडियो स्ट्रीम जानकारी एक बिटरेट को स्पोर्ट नहीं करती है और अन्य सभी धाराओं की दर को घटाकर बिटरेट का अनुमान लगाना संभव नहीं है।

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