2012-10-26 11 views
5

मैं HTTP IOS डिवाइस परिवार पर लाइव स्ट्रीमिंग, iOS 5 और 6HTTP लाइव स्ट्रीमिंग: EXT-X-अलगाव टैग सभी सेगमेंट बाद में केवल बनाता है ऑडियो

पर एप्पल के AVPlayer लाइब्रेरी का उपयोग कर जब से मैं खेल रहा हूँ खेल रहा हूँ विज्ञापन क्लिप के बीच मध्य-रोल विज्ञापन, मैं # EXT-X-DISCONTINUITY टैग का उपयोग कर रहा हूं, जैसा कि पिछले व्यक्ति का जवाब देने वाले भयानक व्यक्ति द्वारा सुझाया गया है।

यह एक बिटरेट के लिए काम कर रहा है, लेकिन मुझे कई बिटरेट्स के लिए बाल प्लेलिस्ट के साथ एक संस्करण प्लेलिस्ट का उपयोग करते समय केवल समस्याएं मिल रही हैं। मुझे पहली बार असंतोष टैग के बाद ऑडियो के साथ एक ब्लैक स्क्रीन मिल रही है, और यह विज्ञापन समाप्त होने के बाद भी कभी ठीक नहीं होता है। (मैं विज्ञापन सुन सकता हूं)।

यह आईफोन 4, 4 एस, 5, और आईपॉड टच 4 वें जीन पर परीक्षण और पुन: उत्पादित किया गया है। आईफोन 4 आईओएस 5 पर है, शेष आईओएस 6 हैं। यह ज्यादातर समय होता है, लेकिन हर बार नहीं। लेकिन निश्चित रूप से, मैं उस पर जोर देना चाहता हूं, यह केवल तभी होता है जब मेरी संस्करण प्लेलिस्ट में एक से अधिक बिटरेट बाल प्लेलिस्ट शामिल हो।

यहाँ एक प्लेलिस्ट है कि मैं का उपयोग करें (यह 400kbps संस्करण है का एक उदाहरण है, और मैं एक 200 है और इसी प्लेलिस्ट वास्तव में निम्नलिखित की तरह लग रही के साथ संस्करण 800kbps, लेकिन 200 '' के साथ 400 के 'सब की जगह । और '800' (ठीक है, वास्तविक प्लेलिस्ट लंबी है, लेकिन यह एक उदाहरण है)

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-MEDIA-SEQUENCE:0 
#EXTINF:10, 
400-clipA-0.ts 
#EXTINF:10, 
400-clipA-1.ts 
#EXTINF:5, 
400-clipA-2.ts 

#EXT-X-DISCONTINUITY 
#EXTINF:10, 
400-advert0.ts 
#EXTINF:3, 
400-advert1.ts 

#EXT-X-DISCONTINUITY 
#EXTINF:10, 
400-clipB-0.ts 
#EXTINF:10, 
400-clipB-1.ts 
#EXTINF:5, 
400-clipB-2.ts 

#EXT-X-ENDLIST 

और मैं संस्करण प्लेलिस्ट कि बच्चे प्लेलिस्ट के बीच का चयन करता है:।

#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000 
clips-200.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=440000 
clips-400.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=840000 
clips-800.m3u8 

ध्यान दें कि क्या होता है (~ 75% ओ एफ समय) यह है कि जब मैं इसे चलाता हूं, तो वीडियो बहुत पहले असंतुलन टैग (विज्ञापन से ठीक पहले) के बाद काला हो जाएगा और फिर कभी ठीक नहीं होगा, हालांकि मैं विज्ञापन के ऑडियो को सुन सकता हूं। उदाहरण के लिए, अगर मैं केवल एक ही बिटरेट संस्करण के साथ अपने संस्करण प्लेलिस्ट बना:

#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=280000 
clips-200.m3u8 

तो मैं नहीं इस समस्या को बिल्कुल भी मिलता है! बहुत अजीब। इसके अतिरिक्त, यदि मैं सभी विचलन टैग को हटा देता हूं और फिर भी अन्य बिट्रेट्स को संस्करण प्लेलिस्ट में रखता हूं, तो यह ठीक (आमतौर पर) काम करता है, लेकिन कभी-कभी यह किसी कारण से पूरी .ts फ़ाइल को छोड़ देगा, शायद इसलिए कि उन्हें उन असंतोष टैग की आवश्यकता है।

साथ ही, इस अधिक बार जब मैं अमेज़न S3 बाल्टी जहां वे मूल रूप से रहते हैं से की तुलना में अमेज़न CloudFront पर सीधे फाइलों को चला, होता है।

कुछ अन्य जानकारी है कि मदद कर सकता है: मेरा मूल फ़ाइलें (क्लिप और विज्ञापन) सभी .mov प्रत्येक पर एक ही संकल्प के साथ, एक iPhone 4 से लिया फ़ाइलें हैं। मेरे आउटपुट (.ts फाइलें) तब से उत्पन्न किए गए थे - प्रत्येक बिटरेट क्लास के लिए, मेरे पास क्लिप और विज्ञापनों में एक ही एन्कोडिंग सेटिंग्स हैं। आउटपुट सभी एक ही संकल्प और अन्यथा framerate हैं।

एक आखिरी बात, mediasegmentvalidator एप्पल द्वारा प्रदान की है जब मैं इसका इस्तेमाल जाँच करने के लिए कोई चेतावनी नहीं देता है।

मैं वास्तव में किसी भी मदद की सराहना करता हूं जो आप लोग दे सकते हैं! यह :-(

+1

मुझे यह सटीक समस्या है। क्या आपको कभी कामकाज/समाधान मिला? – Bryan

उत्तर

4

चीजें मेरे लिए एक puzzling समस्या मैं जाँच चाहते हैं (किसी भी विशेष क्रम में, बस आदेश मैं उनमें से सोचा है) है।

  1. क्षेत्रों वास्तव में लंबाई M3U8 का दावा है
  2. उन में ऑडियो और वीडियो धाराओं एक ही लंबाई
  3. करता advert0.ts एक वीडियो कुंजी फ्रेम (यही कारण है कि एक biggy है!)
  4. के साथ शुरू कर रहे हैं कर रहे हैं
  5. क्या वीडियो और ऑडियो कोडेक और पैरामीटर समान हैं (विशेष रूप से ऑडियो - यह बिल्कुल नहीं बदला जाना चाहिए)
  6. क्या स्ट्रीम अन्य एचएलएस संगत डिवाइस या एप्लिकेशन पर वापस चलाती है? उदाहरण के लिए, क्या आप वीएलसी के साथ स्ट्रीम खेल सकते हैं?
  7. क्या कोई तरीका है कि आप सर्वर लॉग देख सकते हैं कि विफलता होने से पहले और बाद में आप किस स्तर (खेल) खेल रहे हैं, यदि ऐसा है, तो यह एक उत्तर को इंगित कर सकता है (उदाहरण के लिए यदि डिवाइस विघटन पर स्तर स्विच कर रहा है , शायद आप सेगमेंट के पहले ब्लॉक के सेगमेंट साइज को कम कर सकते हैं ताकि आपको एक अतिरिक्त सेगमेंट मिल सके, जो पहले स्विच करने का अवसर प्रदान करता है।

क्षमा करें मेरे पास एक जवाब नहीं है लेकिन बहुत सारे हैं छोटी, छोटी चीजें जो आपको यात्रा कर सकती हैं।

2

यदि आप भिन्न स्ट्रीम में #EXT-X-DISCONTINUITY का उपयोग करते हैं, तो आपको प्रत्येक संस्करण में #EXT-X-DISCONTINUITY-SEQUENCE:<number> होना चाहिए।

देखें: http://tools.ietf.org/html/draft-pantos-http-live-streaming-18#section-4.3.3.3

+0

यह केवल तभी मान्य है यदि आप # EXT-X-VERSION का उपयोग कर रहे हैं: 6 या उच्चतम –

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