के माध्यम से लाइव स्ट्रीमिंग मैं एक ऑनलाइन टीवी सेवा पर काम कर रहा हूं। लक्ष्य में से कोई भी वीडियो बिना किसी अतिरिक्त ब्राउज़र प्लग-इन के बिना खेला जा सकता है (फ्लैश को छोड़कर)।MP4
मैंने एमपी 4 का उपयोग करने का निर्णय लिया, क्योंकि यह एचटीएमएल 5 ब्राउज़र और फ्लैश (फॉलबैक के लिए) द्वारा समर्थित है। एफएफएमपीईजी द्वारा सर्वर पर एएसएफ से वीडियो ट्रांसकोड किए जाते हैं।
हालांकि, मैंने पाया कि एमपी 4 लाइव स्ट्रीम नहीं हो सकता है क्योंकि इसमें मेटाडेटा के लिए एक मूव परमाणु है जिसे लंबाई निर्दिष्ट करना है। FFMpeg सीधे mp4 को stdout पर स्ट्रीम नहीं कर सकता है, क्योंकि यह फ़ाइल के अंत में moov डालता है। (Live transcoding and streaming of MP4 works in Android but fails in Flash player with NetStream.Play.FileStructureInvalid error)
बेशक, एमपीईजी-टीएस मौजूद है, लेकिन यह HTML5 <video>
द्वारा समर्थित नहीं है।
मैंने जो सोचा था, वह एमपी 4 के लिए रीयल-टाइम में स्ट्रीम को ट्रांसकोड करने का तरीका है, और इसके लिए प्रत्येक नए HTTP अनुरोध पर, पहले एक मूव भेजें जो वीडियो की लंबाई के लिए बहुत लंबी संख्या निर्दिष्ट करता है, और फिर भेजना शुरू करता है एमपी 4 फ़ाइल के बाकी।
क्या स्ट्रीमिंग के लिए MP4 का उपयोग करना संभव है?
कुछ शोध और av501 के उत्तर के बाद, मैं समझता हूं कि फ्रेम के आकारों को जाना जाना चाहिए ताकि यह काम कर सके।
क्या mp4 फ़ाइल को छोटे हिस्सों में विभाजित किया जा सकता है ताकि इसे स्ट्रीम किया जा सके?
बेशक, किसी अन्य कंटेनर/प्रारूप में स्विच करना एक विकल्प है, लेकिन फ्लैश और एचटीएमएल 5 दोनों के साथ संगत एकमात्र प्रारूप mp4/h264 है, इसलिए यदि मुझे दोनों का समर्थन करना है, तो मुझे दो बार ट्रांसकोड करना होगा।
यहां एक अच्छा स्पष्टीकरण है, आरटीएमपी या कुछ कस्टम प्रोटोकॉल जैसे ध्वनि शुरू करने का तरीका http://fabiensanglard.net/mobile_progressive_playback/index.php –
आपके उत्तर में चेतावनी है, यह उपरोक्त पर लिखा गया है। समय स्ट्रीमिंग और प्लेबैक के लिए मामला है। तो -1 – agfe2