निश्चित रूप से संभव है। Ffmpeg के हाल के संस्करणों में उन्होंने एक-स्ट्रीम_लूप ध्वज जोड़ा है जो आपको आवश्यकतानुसार इनपुट को लूप करने की अनुमति देता है।
गॉचा यह है कि यदि आप स्रोत से पीटीएस को पुन: उत्पन्न नहीं करते हैं, तो ffmpeg पहले लूप के बाद फ्रेम छोड़ देगा (क्योंकि टाइमस्टैम्प अचानक समय पर वापस आ जाएगा)। इससे बचने के लिए, आपको pts उत्पन्न करने के लिए ffmpeg बताना होगा ताकि आपको लूप के बीच बढ़ती टाइमस्टैम्प मिल सके। यह + जेनप्ट्स कॉल के साथ किया जाता है (इसे -i तर्क से पहले होना चाहिए)।
यहां एक उदाहरण है ffmpeg कॉल (अपनी इनपुट फ़ाइल के साथ $ एफ को प्रतिस्थापित करें)। यह उदाहरण दो आउटपुट स्ट्रीम उत्पन्न करता है और -stream_loop -1 तर्क इनपुट को लगातार लूप करने के लिए ffmpeg को बताता है। इस मामले में आउटपुट एक समान स्ट्रीम प्रसारण इंजेस्ट (मेटा सीडीएनएन) के लिए है, अपनी आवश्यकताओं के अनुसार समायोजित करें। `-f lavfi -re -fflags + genpts मैं" फिल्म = GleamingThatBrownbutterfly.webm:
ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i $F \
-s 640x360 -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 600k -maxrate 600k -bufsize 600k -r 24 -ar 44100 -g 48 -c:a libfdk_aac -b:a 64k "rtmp://publish.live.metacdn.com/2050C7/dfsdfsd/lowquality_664?hello&adbe-live-event=lowquality_" \
-s 1920x1080 -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 2000k -maxrate 2000k -bufsize 2000k -r 24 -ar 44100 -g 48 -c:a libfdk_aac -b:a 64k "rtmp://publish.live.metacdn.com/2050C7/dfsdfsd/highquality_2064?mate&adbe-live-event=highquality_"
स्रोत
2015-12-15 03:34:02
मैं इन तर्कों का उपयोग करने के यह काम ठीक से करना था (टीबी FRAME_RATE *) पाश = 0, setpts = एन/"'। उन लोगों के बिना, यह पहली लूप के बाद रोक रहा था और शेष फ्रेम गिरा दिए गए थे। – jadkik94