video एक RTP सत्र में एकाधिक H.264 वीडियो स्ट्रीम




streaming (4)

आपके दो एसडीपी उदाहरणों में पैरामीटर बहुत करीब हैं - स्ट्रीम का नाम और स्पॉपर-पैरामीटर-सेट भिन्न होते हैं मुझे लगता है कि आपको स्ट्रीम नाम के बारे में परवाह नहीं है यदि आपको अलग-अलग सर्प-पैरामीटर-सेट की आवश्यकता होती है और क्लाइंट मानक का समर्थन करते हैं तो आप प्रत्येक संकल्प के लिए अलग गतिशील पेलोड प्रकार का उपयोग कर सकते हैं और एक एकल एसडीपी निम्नानुसार कर सकते हैं:

    v=0
    o=VideoServer 305419896 9876543210 IN IP4 192.168.0.2
    s=VideoStream640x480
    t=0 0
    c=IN IP4 192.168.0.2
    m=video 8000/2 RTP/AVP 96 97
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=0; profile-level-id=4D4033; sprop-parameter-sets=Z01AM5ZkBQHtCAAAAwAIAAADAYR4wZU=,aO48gJ==
    a=rtpmap:97 H264/90000
    a=fmtp:97 packetization-mode=0; profile-level-id=4D4033; sprop-parameter-sets=J01AM5WwPA9sBAIA,KO4G8gA=
    a=control:trackID=1

अन्य उत्तरों के समान यदि आपको वास्तव में विभिन्न स्ट्रीम नामों या अलग-अलग स्पॉपर-पैरामीटर-सेटों की ज़रूरत नहीं है, तो आपको अपना पहला एसडीपी और स्विच प्रारूप मध्य स्ट्रीम का उपयोग करने में सक्षम होना चाहिए। मैं एच .264 या आपके विशेष डिकोडर के वास्तविक पेलोड को यह सुनिश्चित करने के लिए पर्याप्त रूप से नहीं जानता कि यह आपके अनुप्रयोगों में काम करेगा, लेकिन यह वीडियो कॉनफरेंसिंग अनुप्रयोगों में बहुत आम है, बिना किसी संकेत को बदलने के लिए या एक अलग गतिशील पेलोड प्रकार

यद्यपि आप एक और उत्तर में बताए गए दो एसडीपी दस्तावेजों को जोड़ सकते हैं, मुझे नहीं लगता कि यह इस मामले में मदद करेगा। एच .264 डीकोडर केवल एक समय में एक ही स्पॉपर-पैरामीटर-सेट पैरामीटर के साथ काम कर सकते हैं I चूंकि दोनों एसडीपी में एक ही पेलोड प्रकार, स्रोत पोर्ट, आदि होते हैं, इसलिए प्राप्तकर्ता को पता नहीं होगा कि किस सर्प-पैरामीटर-सेट पैरामीटर का उपयोग किया जाए। अद्यतन करें: ध्यान दें कि कुछ कार्यान्वयन एसआरडी (या केवल शुरू में एसडीपी से) में नहीं, उनके स्प्रेप्स इनबेंड मिलते हैं। यदि यह आपके परिवेश में लागू होता है तो एसडीपी स्पॉपर-पैरामीटर-सेट इनबैंड को अपडेट किया जा सकता है

संदर्भ:

  1. एच 264 वीडियो के लिए आरएफसी 3984 आरटीपी पेलोड प्रारूप
  2. नई प्रस्तावित एच .264 आरटीपी पेलोड प्रारूप आरएफसी 6184
  3. आरएफसी 4566 एसडीपी: सत्र विवरण प्रोटोकॉल

[पूर्ण उद्धरण न देने के लिए क्षमा करें - सही करने के लिए स्वतंत्र महसूस करें]

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

640x480.sdp:

v=0
o=VideoServer 305419896 9876543210 IN IP4 192.168.0.2
s=VideoStream640x480
t=0 0
c=IN IP4 192.168.0.2
m=video 8000/2 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=0; profile-level-id=4D4033; sprop-parameter-sets=Z01AM5ZkBQHtCAAAAwAIAAADAYR4wZU=,aO48gJ==
a=control:trackID=1

960x480.sdp:

v=0
o=VideoServer 305419896 9876543210 IN IP4 192.168.0.2
s=VideoStream960x480
t=0 0
c=IN IP4 192.168.0.2
m=video 8000/2 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=0; profile-level-id=4D4033; sprop-parameter-sets=J01AM5WwPA9sBAIA,KO4G8gA=
a=control:trackID=1

इन एकल फ़ाइलों को एक एसडीपी फ़ाइल में कैसे जोड़ा जा सकता है?


आप या तो गतिशील पेलोड परिवर्तन या इन-स्ट्रीम पैरामीटर सेट परिवर्तन कर सकते हैं या फिर एसआईपी पुनः-इनवीट कर सकते हैं।

पेलोड परिवर्तनों में एक समस्या है कि यदि आप एन्कोडर और डीकोडर को नियंत्रित नहीं करते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि दूसरे चरण दोनों पेलोड को स्वीकार करते हैं, और वे पेलोड को सही ढंग से स्विच करेंगे (और आपके लिए तेज़ तेज़ हैं - उस पर कोई आवश्यकता नहीं है)।

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

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

(ध्यान दें: मैं RFC 3984bis के लेखक हूँ, आरएफसी 3984 के अपडेट)


मुझे लगता है कि यह आपके विकोडक पर निर्भर करता है। यदि यह स्ट्रीम के अंदर मापदंडों का समर्थन करता है, तो यदि आप संकल्प को बदलते समय संबंधित हेडर डाल करने के लिए एनकोडर को बता सकते हैं, तो आपका डिकोडर स्वचालित रूप से स्विच हो जाएगा।

आपका प्रश्न बिल्कुल क्या है? क्या यह है: मैं स्ट्रीम को रोक / पुनः आरंभ किए बिना कैसे संकल्प बदल सकता हूँ?

मुझे नहीं लगता कि आप एक विकोडक के लिए पहले ही बता सकते हैं, यहां संभावित रिजोल्यूशन हैं, जो आपको कुछ एसडीपी जादू के साथ दिखाई देगा। या तो आपका डिकोडर H264 पैरामीटर परिवर्तन को समझने में सक्षम है, और फिर आप ठीक हैं, या आपको पूरी बात को पुनरारंभ करना बंद करना होगा, और फिर गतिशील sdp पर्याप्त है

मुझे पता है कि उदाहरण के लिए, वीएलसी एमपी 4 एन्कोडिंग परिवर्तन (उदाहरण के लिए चर बिट दर से लगातार बिट दर तक बढ़ रहा है) का पता लगाने में सक्षम है, लेकिन अगर आप रिज़ॉल्यूशन बदलते हैं तो क्रैश हो जाएगा एसडीपी के साथ आप जो कुछ भी कर सकते हैं वह अलग-अलग मीडिया विवरण को संयोजित करना है, उदाहरण के लिए विभिन्न डायनामिक पेलोड प्रकार और अलग-अलग नियंत्रण-आईडी विशेषता।


मैं आरएफसी (आरएफसी 3232 - एसडीपी: सत्र विवरण प्रोटोकॉल ) पर गया हूं और ऐसा प्रतीत होता है कि आप सिर्फ दो एसडीपी दस्तावेजों को जोड़ सकते हैं। दस्तावेज़ स्पष्ट रूप से बताता है:

एसडीपी द्वारा एसएपी द्वारा बताई जाने पर, प्रत्येक पैकेट पर केवल एक सत्र के विवरण की अनुमति दी जाती है। जब एसडीपी को अन्य साधनों से अवगत कराया जाता है, तो कई एसडीपी सत्र के विवरण को एक साथ जोड़ दिया जा सकता है ('वी =' एक सत्र वर्णन की शुरुआत को इंगित करने वाला रेखा पिछले विवरण को समाप्त करता है)