कुछ समय के बाद रिकॉर्डिंग बंद कर दें


13

मेरे पास एक उपकरण है जो वेबकैम के साथ वीडियो का उपयोग करके रिकॉर्डिंग कर रहा है ffmpeg। यह बहुत अच्छा काम कर रहा है, जब रिकॉर्डिंग शुरू हो गई है तो मुझे USR1 सिग्नल मिल रहा है। और रिकॉर्डिंग बंद करने के बाद हमें USR2 सिग्नल मिलता है।

लेकिन मैं 1 घंटे की रिकॉर्डिंग समय के बाद रिकॉर्डिंग को रोकना चाहता हूं।

मुझे नहीं पता, लेकिन मुझे लगता है कि मुझे 1 घंटे के बाद डिवाइस को USR2 सिग्नल पास करना होगा।

तो मैं यह कैसे कर सकता हूँ ... !!!

अग्रिम में धन्यवाद।

जवाबों:


23

-tविकल्प का उपयोग करें । से man ffmpeg:

-t अवधि (इनपुट / आउटपुट)

जब एक इनपुट विकल्प (पहले -i) के रूप में उपयोग किया जाता है , तो इनपुट फ़ाइल से पढ़े गए डेटा की अवधि को सीमित करें ।

जब एक आउटपुट विकल्प (एक आउटपुट फ़ाइल नाम से पहले) के रूप में इस्तेमाल किया है, उसकी अवधि पहुंचने के बाद भी उत्पादन लेखन रोक की अवधि

अवधि एक समय अवधि विनिर्देश होनी चाहिए, ffmpeg-utils (1) मैनुअल में समय अवधि अनुभाग देखें ।

-toऔर -tपारस्परिक रूप से अनन्य हैं और -tउनकी प्राथमिकता है।

उदाहरण है कि एक घंटे के लिए रिकॉर्ड:

ffmpeg -f v4l2 -i /dev/video0 -t 01:00:00 output

या सेकंड में:

ffmpeg -f v4l2 -i /dev/video0 -t 3600 output

3
-tयहां उपलब्ध समय अवधि सिंटैक्स का उपयोग करता है: ffmpeg.org/ffmpeg-utils.html#Time-duration
Hengjie

5

यदि आप कमांड लाइन से ffmpeg या avconv चला रहे हैं, तो आप timeoutकमांड का उपयोग कर सकते हैं :

timeout 3600 avconv -f video4linux2 -r 25 -i /dev/video0  -vcodec mpeg4 -y out.mp4

0

यदि आप पहले से जानते हैं कि आपको दिए गए तरीकों का निश्चित रूप से उपयोग करना चाहिए, हालांकि, यदि आप वास्तव में प्रक्रिया को एक संकेत भेजना चाहते हैं तो आप किल कमांड का उपयोग कर सकते हैं (TERM या KILL के लिए 90% उपयोग किए जाने के बावजूद, कोई भी संकेत भेज सकते हैं - किल -s USR2 पिड)

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