Mp4 / h.264 फ़ाइलों के बारे में कुछ जानकारी प्राप्त करने के लिए ffprobe का उपयोग कैसे करें


13

मैं लेकिन एक नीच PHP डेवलपर हूं जिसे 100 से हजारों वीडियो फ़ाइलों के बारे में कुछ बुनियादी जानकारी प्राप्त करने का काम सौंपा गया है। मैं निकालने ffmpeg का उपयोग कर कुछ भाग्यशाली रहे हैं video bitrate, video width, video height, duration, और aspect ratioउन लोगों से है, लेकिन 5% के बारे में एक त्रुटि अनुपात के साथ, यह अब भी मुझे फ़ाइलों है कि मैं से निपटने के लिए पता नहीं कैसे का एक विशाल संख्या के साथ छोड़ देता है। वीडियो प्ले करते हैं, लेकिन भारी मात्रा में डेटा जो ffmpeg में होता है, उसने मुझे चकित कर दिया है कि कैसे एक्सएमएल को पार्स किया जाए ताकि मुझे पता चल सके कि मुझे उन सभी स्थितियों के साथ क्या चाहिए जो मुझे मुठभेड़ की लगती हैं। (फाइलें पिछले 15 वर्षों से एक संग्रह हैं, कुछ नए एन्कोडेड हैं, अन्य वर्षो पहले परिवर्तित किए गए हैं)

किसी भी दर पर, मुझे ffprobeअवधि प्राप्त करने के लिए निम्नलिखित उपयोग मिला , और उम्मीद कर रहा था कि यहाँ कोई व्यक्ति जो ffmpeg और ffprobe का उपयोग करने की जटिलताओं को समझता है, वह मेरी मदद करने के लिए पर्याप्त होगा, जिससे मुझे उन दूसरे मूल्यों को खोजने में मदद मिलेगी जिनकी मुझे अधिक स्पष्ट तरीके से आवश्यकता है पागल कोड मैं खुद को ffmpeg के पूर्ण परिणामों के माध्यम से चढ़ाई करने के लिए बना रहा हूं।

ffprobe -i "video.mp4" -show_entries format=duration -v quiet -of csv="p=0"

अग्रिम में बहुत बहुत धन्यवाद।

स्पष्टीकरण:

मुझे नीचे दिए गए cmd के साथ जोड़ना चाहिए, मैं "देख सकता हूँ" जो मुझे चाहिए, लेकिन मुझे समझ नहीं आ रहा है कि मुझे क्या चाहिए निकालने के लिए, जैसे VIDEO बिटरेट को पुनः प्राप्त करना, और ऑडियो बिटरेट को दबाना / अनदेखा करना, या 2 में से कौन निर्धारित करना है। उपयोग करने के लिए अलग-अलग अवधि (ऑडियो / वीडियो अवधि?)

C:\>ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4

duration=1712.000000
bit_rate=64000
width=320
height=240
duration=1711.946113
bit_rate=359827
duration=1712.000000
bit_rate=N/A
duration=1712.000000
bit_rate=N/A

जवाबों:


18

यदि आप केवल पहले वीडियो स्ट्रीम उपयोग से जानकारी चाहते हैं -select_streams v:0:

ffprobe -v error -select_streams v:0 -show_entries stream=width,height,duration,bit_rate -of default=noprint_wrappers=1 input.mp4

उदाहरण आउटपुट:

width=640
height=480
duration=10.000000
bit_rate=942704
  • एक सूची देखने के लिए सभी प्रविष्टियाँ उपयोग -show_streamsऔर / या के -show_formatबजाय -show_entries
  • FFprobe प्रलेखन देखें : विभिन्न आउटपुट स्वरूपण शैलियों के लिए लेखक
  • FFmpeg Wiki देखें : FFprobe अधिक उदाहरणों के लिए।

सहायता के लिए बहुत बहुत धन्यवाद .... मुझे दूसरे उत्तर को केवल इसलिए स्वीकार करना पड़ा क्योंकि मैं पहले इसके बारे में सतर्क था, और इसने यह चाल चली ..
GDP

@GDP कृपया विचार करें: इस मामले में पहले अधिसूचित, क्योंकि यह नवीनतम उत्तर है।
पी

@ मैं पश्चाताप को काफी गंभीरता से लेता हूं, लेकिन जब तक मैं दूसरे को स्वीकार नहीं करता, तब तक यह जवाब मेरी स्क्रीन पर नहीं था, फिर यह दिखाई दिया, इस प्रकार तत्काल माफी। सभी को क्षमा करें ... वास्तव में अपमान करने का मतलब नहीं था।
जीडीपी

9

से https://trac.ffmpeg.org/wiki/FFprobeTips

यदि आप उस 1 वीडियो स्ट्रीम का बिट_रेट प्राप्त करना चाहते हैं जिसका आप उपयोग कर सकते हैं:

ffprobe -v error -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 input.mp4

जहां -select_steams v:01 वीडियो स्ट्रीम का चयन किया जाता है और :nokey=1कुंजी के बिना मान देता है। आप इसे grep पर पाइप करके जानकारी भी निकाल सकते हैं लेकिन मुझे यकीन नहीं है कि यह आपके सिस्टम पर उपलब्ध है।

ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4 | grep -oP "(?<=bit_rate\=)[0-9]+"

उम्मीद है की यह मदद करेगा!


"इसे grep करने के लिए पाइपिंग" ... कुछ ऐसा लगता है जो मैंने किशोरी के रूप में किया हो, योग्य ... सहायता के लिए धन्यवाद!
जीडीपी

धन्यवाद @GDP लेकिन लॉर्डनेकबर्ड का जवाब है जिसे आपको शायद स्वीकार करना चाहिए क्योंकि यह पहले प्रकाशित हुआ था
moorej
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.