मैं अपने डेस्कटॉप को 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
काम करने के लिए प्रतीत नहीं होता।
ceil
बजाय उपयोग करता हूंtrunc