2017-01-19 9 views
8

मैं आरटीपी यूआरएल से आरटीपी पैकेट (जो ऑडियो स्ट्रीम कर रहा है) स्ट्रीम करने की कोशिश कर रहा हूं उदा। rtp: //@225.0.0.0 उसी पर बहुत अधिक शोध के बाद मैंने कुछ हद तक अपने डिवाइस में यूआरएल स्ट्रीम किया है और इसे https://github.com/maknapp/vlckitSwiftSample के साथ खेल रहा है। यह केवल स्ट्रीम किए गए डेटा को चला रहा है लेकिन डेटा को स्टोर करने के लिए कोई फ़ंक्शन नहीं है।आरटीपी पैकेट कैसे प्राप्त करें जो आईओएस डिवाइस में आरटीपी यूआरएल से स्ट्रीमिंग कर रहे हैं? (उदाहरण के लिए आरटीपी: //@225.0.0.0)

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

मैंने निम्नलिखित लिंक के साथ प्रयास किया है।

  1. https://github.com/kewlbear/FFmpeg-iOS-build-script

  2. https://github.com/chrisballinger/FFmpeg-iOS

इन दोनों भी पॉड मुद्दे अन्य परियोजनाओं की वजह से संकलन या बस मुझे RTSP स्ट्रीम के बजाय आरटीपी स्ट्रीम पर संदर्भ दे मार्गदर्शन नहीं कर रहे हैं।

यदि कोई हमें मार्गदर्शन या कोई विचार दे सकता है कि हम ऐसी चीजों को कैसे कार्यान्वित कर सकते हैं तो इसकी सराहना की जाएगी।

उत्तर

6

सबसे पहले, आपको यह समझने की आवश्यकता है कि यह कैसे काम करता है।

इस आरटीपी धारा के निर्माता यानी शायद कर रही है निम्नलिखित:

  1. डेटा के लिए एक स्रोत उपयोग करता है: ऑडियो के मामले में, इस माइक्रोफोन या ऑडियो नमूने या एक फ़ाइल
  2. हो सकता है एएसी या ओपस जैसे ऑडियो कोडेक का उपयोग कर ऑडियो को एन्कोड करता है।
  3. एन्कोडेड ऑडियो फ्रेम ऐसे यूडीपी के रूप में
  4. एक परिवहन परत का उपयोग करता है से आरटीपी पैकेट बनाने के लिए इन पैकेट

प्रोटोकॉल ऐसे भेजने के लिए RTSP बेहतर धारा में जानकारी प्रदान करने के लिए आवश्यक संकेत जानकारी प्रदान करता है के रूप में आरटीपी packetizer उपयोग करता है। आमतौर पर आरटीपी स्वयं पर्याप्त नहीं है क्योंकि कन्जेशन कंट्रोल, फीडबैक, डायनामिक बिट रेट जैसी चीजें आरटीसीपी की मदद से संभाली जाती हैं।

वैसे भी, आदेश भेजे धारा स्टोर करने के लिए में, आपको निम्न कार्य करने होंगे:

  1. इससे बाहर एन्कोडेड ऑडियो फ्रेम पाने के लिए एक आरटीपी depacketizer का प्रयोग करें। आप अपना खुद का लिख ​​सकते हैं या किसी तृतीय पक्ष कार्यान्वयन का उपयोग कर सकते हैं। वास्तव में ffmpeg एक बड़ा ढांचा है जिसमें अधिकांश कोडेक्स और प्रोटोकॉल के लिए आवश्यक कोड है। हालांकि आपके मामले के लिए, एक साधारण आरटीपी depacketizer खोजें। यह सुनिश्चित करने के लिए कि आप सही आरएफसी का संदर्भ लें, एक विशेष कोडेक से संबंधित शीर्षलेख हो सकते हैं।

  2. एक बार जब आप एन्कोडेड फ्रेम तक पहुंच प्राप्त कर लेते हैं, तो आप स्ट्रीम में उपयोग किए गए ऑडियो कोडेक के आधार पर मीडिया कंटेनर जैसे एम 4 ए या ओग में लिख सकते हैं।

आदेश धारा खेलने के लिए में, आपको निम्न कार्य करने होंगे:

  1. इससे बाहर एन्कोडेड ऑडियो फ्रेम पाने के लिए एक आरटीपी depacketizer का प्रयोग करें। आप अपना खुद का लिख ​​सकते हैं या किसी तृतीय पक्ष कार्यान्वयन का उपयोग कर सकते हैं। वास्तव में ffmpeg एक बड़ा ढांचा है जिसमें अधिकांश कोडेक्स और प्रोटोकॉल के लिए आवश्यक कोड है। हालांकि आपके मामले के लिए, एक साधारण आरटीपी depacketizer खोजें।

  2. एक बार जब आप एन्कोडेड फ्रेम की पहुंच है, फ्रेम को डिकोड या जाँच करने के लिए (एक पुस्तकालय के रूप में उपलब्ध) एक ऑडियो विकोडक का उपयोग अपने मंच सीधे प्लेबैक

  3. के लिए कि कोडेक का समर्थन करता है, तो एक बार जब आप डीकोड फ्रेम के लिए उपयोग किया , आईओएस में, आप इसे चलाने के लिए AVFoundation का उपयोग कर सकते हैं।

आप यह करने के लिए एक आसान तरीका में देख रहे हैं, एक तीसरी पार्टी के कार्यान्वयन का उपयोग हो सकता है इस तरह के रूप http://audiokit.io/

संबंधित मुद्दे