वीडियो से निकाले गए ffmpeg पाइप चित्र


8

मैं ffmpeg का उपयोग करके किसी वीडियो से छवियों को निकालने के लिए निम्न कमांड का उपयोग कर सकता हूं, उन्हें फाइल सिस्टम में सहेज सकता हूं:

... | ffmpeg -i - -f image2 'img-%03d.png'

मैं इन छवियों को किसी अन्य अनुप्रयोग में पाइप करने के बजाय उन्हें फाइलसिस्टम में सहेजना चाहूंगा - कैसे उन्हें पाइप में अलग किया जाता है, इसका बहुत कम महत्व है, क्योंकि यह एक नोड्स स्क्रिप्ट होगी जो मैं खुद को नियंत्रित करता हूं।

निम्नलिखित काम नहीं करता है:

... | ffmpeg -i - -f image2 pipe: | ...

के साथ खराबी

[image2 @ 0xe1cfc0] Could not get frame filename number 2 from pattern 'pipe:' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument

क्या फाइल सिस्टम का उपयोग किए बिना ffmpeg का उपयोग करके वीडियो से निकाले गए चित्रों को बाहर निकालने का कोई तरीका है?


कोशिश-f png - | ...
ज्ञान

@Mulvya के साथ यह परिणामी है [NULL @ 0x10e2860] Requested output format 'png' is not a suitable output format pipe:: Invalid argument
बिरजोलक्सेव

2
कोशिश करो -f image2pipe -vcodec png - | ...। PNG काम नहीं कर सकता है, अगर vododec को हटाने के बाद ऐसा आउटपुट MJPEG होगा।
ज्ञान

@ मुल्व्या ने वास्तव में काम किया। बहुत बहुत धन्यवाद :)
Birjolaxew

जवाबों:


7

हाँ वहाँ है!

तर्क जोड़ें -f image2pipe, और आउटपुट फ़ाइलनाम को एक एकल हाइपेन के रूप में निर्दिष्ट करें ( -इस संदर्भ में इसका अर्थ है stdout), और इनपुट फ़ाइलनाम को भी एक ही हाइपेन के रूप में निर्दिष्ट करें ( -i -, इस संदर्भ में इसका मतलब है stdin) और स्पष्ट रूप से आउटपुट प्रारूप (जैसे png) के लिए निर्दिष्ट करें : -c:v png), यहाँ एक पूरा उदाहरण है:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.