ffmpeg / avconv बल 2 से विभाज्य होने के लिए आउटपुट स्केल किया गया


9

मैं अपने डेस्कटॉप को avconv (उर्फ ffmpeg) के साथ रिकॉर्ड करता हूं और फिर इसे 720p पर स्केल करता हूं।

मैंने हाल ही में अपनी स्क्रिप्ट में जोड़ा है ताकि वे xwininfo के साथ एक विंडो का चयन कर सकें और यह उस विशेष रूप से रिकॉर्ड करेगा।

हालाँकि, यदि आउटपुट फॉर्मेट 2 से विभाज्य नहीं है, तो एन्कोडर फ़्रीक हो जाता है और मुझे मेरा वीडियो नहीं मिलता है।

वहाँ ffmpeg के अंदर इसे ठीक करने का एक तरीका है, इसलिए मुझे स्केल वैल्यू सेट करने के लिए bash में मैन्युअल गणित का एक गुच्छा नहीं करना है?

यदि वे असमान हैं, तो क्या स्केल फ़िल्टर घटाना / चौड़ाई / ऊंचाई में जोड़ना संभव है? (गोल?)

क्या मूल पैमाने के बाद एक और फ़िल्टर लागू करना संभव है जो इसे पूरा कर सकता है? (यह एक असमान इनपुट आकार और स्केलिंग न करने वाले वीडियो को गोल करेगा)

#!/bin/bash
avconv \
-f x11grab -r $fps -s $capturesize -i :0.0$offset \
-vcodec libx264 \
-vf scale=-1:720 \
-pre:v lossless_ultrafast \
-threads 4 \
-y $@

कुछ पुरानी मेलिंग सूचियां एक round()फ़ंक्शन का सुझाव देती हैं जिसका उपयोग आप फ़िल्टर में कर सकते हैं, लेकिन मुझे सिंटैक्स सही नहीं मिल सकता है। यदि यह scale=round(iw,2):round(ih,2)अंत में लागू एक फिल्टर का काम करता है तो एक ही बार में मेरी सभी समस्याओं को हल कर देगा। iwऔर ihकाम करने के लिए प्रतीत नहीं होता।

जवाबों:


9

कभी-कभी विषम संख्या में 2 इंसर्ट द्वारा विभाजन, यह होना चाहिए:

-vf scale="trunc(oh*a/2)*2:720"

यह -1:720सिंटैक्स के साथ जो चाहेगा वह करता है (मूल पहलू अनुपात रखें)


मैं 16: 9 480p के मामले के रूप में एक उच्च जोड़ी संख्या प्राप्त करने के ceilबजाय उपयोग करता हूंtrunc
फेलिप अल्कासिबर

7

बहुत सारे प्रयोग करने के बाद यह दिखता है कि अन्य पैमाने के फिल्टर के बाद लगाए गए निम्नलिखित फ़िल्टर चौड़ाई और ऊँचाई को 2 तक बढ़ा देंगे।

scale=trunc(in_w/2)*2:trunc(in_h/2)*2

यह मूल रूप से एक विभाजित, गोल, गुणा करने वाली चीज़ है, मेरे पास सिंटेक्स अधिकार नहीं है।


7

दरअसल फ़िल्टर इसे सीधे संभाल सकता है। आपको फ़िल्टर के लिए -1 के बजाय केवल -2 पास करना होगा: जैसे -vf स्केल = "- 2: 720"

3 साल पहले की एक बग रिपोर्ट में मुझे यह जानकर आश्चर्य हुआ था


मेरे लिए काम नहीं किया, क्या न्यूनतम संस्करण यह समर्थन कर रहा है?
लेटैमिक

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