2011-06-16 8 views
6

शुरू/विभाजित करना है, मैं एक सर्वर लिख रहा हूं जो HTTP पर mpeg2-ts स्ट्रीम करता है और मुझे आश्चर्य हुआ कि एक एमपीईजी परिवहन धारा को विभाजित करने के लिए सबसे अच्छी स्थिति क्या है। स्ट्रीम आईपीटीवी सेट-टॉप बॉक्स द्वारा खेला जा रहा है और मुझे नहीं पता कि ये डिवाइस कैसे व्यवहार करते हैं।जहां mpeg2-ts

मैं सबसे अच्छी जगह शुरू करने के लिए है कि एक धारा एक आई फ्रेम से पहले है, लेकिन डिवाइस PAT और पीएमटी पैकेट आवश्यकता हो सकती है इससे पहले कि यह वीडियो स्ट्रीम डेटा को डिकोड करने के लिए शुरू होता है लगता होगा ...

+0

आप किसी भी समाधान मिला ?! यदि टीएस में कई प्रोग्राम होते हैं (टीवी कार्यक्रम जो DVB-T द्वारा कैप्चर किए जाते हैं), इसे कैसे विभाजित किया जा सकता है? उदाहरण के लिए मेरे पास एक टीएस फ़ाइल है जिसमें फुटबॉल + खाना पकाने + कार्टून शामिल हैं। क्या मैं इस टीएस फ़ाइल को 3 एमपीजी फाइलों में विभाजित कर सकता हूं? –

+0

मैं समझा सकता हूं कि इसे प्रोग्रामेटिक तरीके से कैसे करें (पीएटी की जांच करें और इसे फिर से लिखें, उचित पीएमटी को पकड़ें, स्ट्रीम पहचानकर्ताओं को देखें, केवल प्रासंगिक डेटा निकालें, और आपको शायद पैकेट को फिर से नंबर देना होगा) - लेकिन यदि सभी आप विभाजन करना चाहते हैं, आप बेहतर उपकरण (ffmpeg?) –

उत्तर

1

आप शुरू कर सकते हैं प्रत्येक 188-बाइट टीएस पैकेट के साथ (0x47 प्रारंभ कोड है)। एमपीईजी डिकोडर स्वचालित रूप से पहले I फ्रेम में कूदता है। आप एमएस मेडियारूम जैसे चालें फट आई-फ्रेम भेजकर कर सकते हैं, लेकिन इसके लिए आपके क्लाइंट (और पेटेंट शाही) में भारी बदलाव की आवश्यकता है।

+0

सैद्धांतिक रूप से खोज लेंगे, हां .. व्यावहारिक रूप से मैं कभी-कभी एक लंगड़ा सेट-टॉप बॉक्स (जो कि यहां काफी लोकप्रिय है) को दुर्घटनाग्रस्त करने में सक्षम था (नहीं, मैं किसी भी 0x47 से शुरू नहीं करता, मुझे पता है * यह एक टीएस पैकेट शुरू है)। इसके अलावा डीकोडर पहले आई-फ्रेम से पहले शुरू होता है, इसलिए मुझे आधा सेकेंड के लिए कुछ खराब डीकोडेड फ्रेम दिखाई देते हैं .. –

+0

कुछ खिलाड़ियों को स्वयं-प्रारंभिक टीएस सेगमेंट की आवश्यकता होती है, जो कि पीएटी/पीएमटी और आई-फ्रेम से शुरू होने वाले सेगमेंट हैं। उदाहरण: एंड्रॉइड 4.4.4 प्लेयर को यह पसंद नहीं है अगर कोई पीएटी/पीएमटी नहीं है और यह बिल्कुल डीकोड नहीं होगा। – aergistal

1

सुरक्षित होने के लिए आपको स्व-प्रारंभिक टीएस सेगमेंट का उपयोग करना चाहिए। इस तरह के सेगमेंट में पीएटी/पीएमटी शामिल होना चाहिए और आईडीआर-फ्रेम से शुरू होना चाहिए।

उदाहरण के लिए I-Frame प्लेलिस्ट का उपयोग करते समय HTTP Live Streaming pantos draft में यह एक आवश्यकता है।

अधिक देखें: GPAC - Apple HLS Introduction

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