2012-08-01 13 views
14

हाल ही में मेरे पास फ़ाइल प्रारूप को mp4 में कनवर्ट करने और इसे स्ट्रीम करने का कार्य था। मैंने ट्रांसकोडिंग टूल के रूप में ffmpeg का उपयोग किया है। MP4 फ़ाइल http प्रोटोकॉल पर स्ट्रीम नहीं होती है [php cgi wrapper का उपयोग किया है], लेकिन फिर आउटपुट प्रारूप को स्ट्रीमिंग के एमपीईजी में बदल दिया जाता है और ठीक काम करता है। नेट http://wiki.videolan.org/MPEG पर एक त्वरित खोज mp4 फ़ाइल स्ट्रीमिंग के लिए एमपीईजी का उपयोग करने के लिए संबंधित है और सलाह देता है। मुझे इन दो प्रारूपों, उनके फायदे और मतभेदों पर अधिक अंतर्दृष्टि की आवश्यकता है।एमपी 4 और एमपीईजी के बीच क्या अंतर है?

धन्यवाद, पीटर

उत्तर

36

एमपीईजी टीएस यूडीपी बहुस्त्र्पीय डीवीबी से अधिक घटनाओं की लाइव स्ट्रीमिंग, के लिए डिज़ाइन किया गया है, लेकिन यह भी HTTP पर । यह धारा को प्राथमिक धाराओं में विभाजित करता है, जो छोटे हिस्सों में विभाजित होते हैं। सिस्टम जानकारी नियमित अंतराल पर भेजी जाती है, इसलिए रिसीवर किसी भी समय स्ट्रीम खेलना शुरू कर सकता है।

एमपीईजी-टीएस फ़ाइलों को स्ट्रीम करने के लिए अच्छा नहीं है, क्योंकि यह फिल्म या गीत के अवधि के साथ-साथ जिन बिंदुओं को आप ढूंढ सकते हैं, के बारे में जानकारी प्रदान नहीं करते हैं।

कुछ नए प्रोटोकॉल हैं जो HTTP, पर स्ट्रीमिंग के लिए एमपीईजी-टीएस का उपयोग कर सकते हैं जो फ़ाइलों में अतिरिक्त मेटाडेटा डालते हैं और इससे पहले कि मैंने पहले किए गए नुकसान को ठीक किया है। ये HTTP लाइव स्ट्रीमिंग और DASH (HTTP पर गतिशील अनुकूली स्ट्रीमिंग) हैं।

दूसरी तरफ MP4 में उस जानकारी को स्ट्रीम के हिस्से में रखा गया है, जिसे मूव परमाणु कहा जाता है। बिंदु यह है कि moov को मीडिया सामग्री से पहले रखा जाना चाहिए और पहले सर्वर से डाउनलोड किया जाना चाहिए। इस तरह वीडियो प्लेयर अवधि जानता है और पूरी फ़ाइल को डाउनलोड किए बिना किसी भी बिंदु की तलाश कर सकता है (इसे HTTP छद्मस्ट्रीमिंग कहा जाता है)।

दुख की बात है कि ffmpeg फ़ाइल के अंत में moov रखता है। आप Xmoov-PHP जैसे सॉफ़्टवेयर के साथ इसे ठीक कर सकते हैं।

Here you can find more info about pseudostreaming.

+0

इस आईपीटीवी के लिए किया जा सकता है उद्देश्यों: एक निरंतर एमपी 4 स्ट्रीम बनाएं, और प्रत्येक अलग HTTP अनुरोध पर, इसकी शुरुआत में एक मूव के साथ इसकी सेवा करें, अवधि बहुत अधिक संख्या में सेट हो? – Ivo

+1

फ़ाइल के अंत में moov परमाणु केवल आदिम खिलाड़ियों के लिए एक समस्या है। मप्लेर जैसे आधुनिक सॉफ़्टवेयर आसानी से पता लगा सकते हैं कि मूव परमाणु अंत में है और दशकों पुरानी रेंज: HTTP शीर्षलेख का उपयोग करके इसे लाता है। –

+0

आईवो, जो आप पूछ रहे हैं वह एमपीईजी डीएएसएच के समान है।डीएएसएच खंडित एमपी 4 का उपयोग करता है जो वीडियो के छोटे (2-10 सेकेंड) हिस्सों को लपेटने के लिए 'ट्रैफ' और 'सिडक्स' बॉक्स का उपयोग करता है। इन्हें एक ही बढ़ती एमपी 4 फ़ाइल में भी जोड़ना संभव है: 'moov' 'sidx' 'traf' 'sidx' 'traf' ... आपके प्लेयर को केवल HTTP और ISO 14496 चश्मा के प्रासंगिक अनुभागों का समर्थन करना होगा। –

5

आप अपने MP4 फ़ाइल क्रम बदल सकते हैं, यह के शुरू में Moov अनुभाग डाल निम्नलिखित FFMPEG कमांड के प्रयोग:

ffmpeg मैं your.mp4 -vcodec कॉपी -acodec प्रतिलिपि - movflags + ठीक हैं reordered.mp4

+6

यह ओपी के प्रश्न का उत्तर देने के लिए प्रतीत नहीं होता है। –

0

.mp4 एक फ़ाइल का विस्तार करते हुए एमपीईजी ts परिवहन धाराओं के लिए प्रयोग किया जाता है ..... ts एमपीईजी एक मानक डिजिटल वीडियो प्रसारण के लिए इस्तेमाल किया एमपीईजी vid भेजने के लिए है ईओ और एमपीईजी ऑडियो। मूल रूप से दो प्रकार के टीएस स्पॉट और mpts स्पॉट्स में केवल एक प्रोग्राम होता है जबकि mpts में इसमें कई प्रोग्राम होते हैं। ts पाठक और वीएलसी मीडिया प्लेयर, ts एमपीईजी खेलने के लिए यदि आप इसके बारे अनुवर्ती में अधिक जानना चाहते उपयोग किया जाता है MPEG TS OR TRANSPORT STREAM MPTS SPTS

परिवहन स्ट्रीम फ़ाइलों के लिए विस्तार है .ts

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