2015-01-13 3 views
5

ffmpeg का यूडीपी प्रोटोकॉल क्या है?ffmpeg का यूडीपी प्रोटोकॉल क्या है?

यहाँ एक और question

ffmpeg -i udp://localhost:1234 -vcodec copy output.mp4 
Or try: 

ffmpeg -i rtp://localhost:1234 -vcodec copy output.mp4 

आरटीपी और यूडीपी धाराओं है समान प्रोटोकॉल या UDP पैकेट मैं -f segement विकल्प के साथ बनाया जा सकता है एक ही फ़ाइलें हो से उदाहरण है?

उत्तर

0

उपयोगकर्ता डेटाग्राम प्रोटोकॉल।

एक यूडीपी URL के लिए आवश्यक वाक्य रचना है:

udp://hostname:port[?options] 

विकल्प प्रपत्र कुंजी = वैल की & -separated विकल्पों की सूची में शामिल है।

सिस्टम पर थ्रेडिंग सक्षम होने पर, आने वाले डेटा को स्टोर करने के लिए एक गोलाकार बफर का उपयोग किया जाता है, जो यूडीपी सॉकेट बफर ओवररन्स के कारण डेटा के नुकसान को कम करने की अनुमति देता है। इस बफर से fifo_size और overrun_nonfatal विकल्प संबंधित हैं।

समर्थित विकल्पों की सूची निम्नानुसार है।

ffmpeg -i input -f format udp://hostname:port 

ffmpeg उपयोग, 188 आकार यूडीपी पैकेट का उपयोग कर UDP पर mpegts प्रारूप में स्ट्रीम करने के लिए एक बड़ा इनपुट बफर का उपयोग कर:

ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535 

एक दूरस्थ समाप्ति बिंदु को यूडीपी पर स्ट्रीम करने

उपयोग ffmpeg रिमोट एंडपॉइंट से यूडीपी प्राप्त करने के लिए ffmpeg का उपयोग करें:

ffmpeg -i udp://[multicast-address]:port ... 

आप कुछ पा सकते हैं आदमी कमांड में सुझाव!

+2

यह https://www.ffmpeg.org/ffmpeg-protocols.html#udp जैसा है, मैंने इसे पढ़ने से पहले पढ़ा है। यह प्रोटोकॉल का वर्णन नहीं करता है और अंदर क्या है। – Artem

2

ffmpeg एक यूडीपी पोर्ट को सुन सकता है और उस बंदरगाह से डेटा प्राप्त कर सकता है। डेटा एक ऐसे कैमरे से हो सकता है जो यूडीपी में आरटीपी पैकेट को encapsulated भेजता है। तो कैमरे को एक प्रेषक के रूप में कल्पना करें जो सिर्फ एक बंदरगाह पर एक बंदरगाह पर udp पैकेट भेजता है और उसी पोर्ट पर उस आईपी पर ffmpeg सुनता है और यह संसाधित करता है कि कैमरा किस कैमरे को भेजता है वे केवल आपके डेटा का इनपुट हैं और आप इसका उपयोग कर सकते हैं - च विकल्प, कोई फर्क नहीं पड़ता इनपुट एक UDP पोर्ट से या आप के लिए एक फिल्म से है एक ही है आप

ffmpeg -i movie.mp4 -c copy -f flv a.flv

करते हैं या

ffmpeg -i udp://localhost:1234 -c copy -f flv a.flv 

करते हैं, ffmpeg DNT बात के लिए कर सकते हैं, बस एक है इनपुट

+1

वास्तव में मुझे यूडीपी ऐसे उदाहरण मिले। लेकिन मुझे उस प्रोटोकॉल का वर्णन करने वाला कोई संदर्भ नहीं मिल रहा है। – Artem

+0

हां, यह ffmpeg के लिए कुछ विशेष नहीं है। यूडीपी विंडोज ऑपरेटिंग सिस्टम द्वारा भी इस्तेमाल किया जाने वाला एक प्रोटोकॉल है, लिनक्स, अधिकतम ओएस आदि। एफएमपीईजी यूटिलिटी सिर्फ इस प्रोटोकॉल का उपयोग डेटा भेजने के लिए करता है। –

3

स्पष्ट रूप से यह आरटीएसपी है, स्रोत में libavformat/rtsp.c और libavformat/udp.c देखें।

1

udp: // ffmpeg में इसका अर्थ यह है कि यह यूडीपी नेटवर्क पैकेट में/सीधे मध्यवर्ती प्रोटोकॉल के साथ प्रत्यक्ष वीडियो/ऑडियो सामग्री (उदा। एच .264) को स्ट्रीम/पार्स करेगा।

rtp: // दूसरी ओर, एक और स्तर का encapsulation जोड़ता है, जहां वीडियो/ऑडियो सामग्री आरटीपी पैकेट में encapsulated किया जाएगा, और आरटीपी पैकेट बदले में यूडीपी पैकेट में encapsulated होगा।

आरटीपी मीडिया स्ट्रीमिंग के लिए काफी बेहतर है, क्योंकि इसमें टाइमस्टैम्प और अनुक्रम जानकारी शामिल है। कच्चे यूडीपी पैकेट में उस जानकारी की कमी है, जो ऑर्डर ऑफ ऑर्डर और गिराए गए पैकेट्स से अधिक प्रवण होती है, जिससे वीडियो/ऑडियो कलाकृतियों की ओर अग्रसर होता है।