Ffmpeg के साथ mp4 स्ट्रीमिंग


16

मुझे एक फ़ीड बनाने की आवश्यकता है जिसमें दो स्ट्रीम हैं - webm और mp4 - ताकि यह सभी HTML5 वीडियो खिलाड़ियों पर संगत हो सके। वेब स्ट्रीम पूरी तरह से काम करती है। हालाँकि, जब mp4 स्ट्रीम को एक्सेस करने की कोशिश की जाती है, तो सर्वर निम्न त्रुटि करता है:

Sat Mar  9 23:21:54 2013 muxer does not support non seekable output

यहाँ ffserver.conf फ़ाइल का वह भाग है जो mp4 स्ट्रीम से संबंधित है:

<Stream channel1.mp4>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format mp4

   # Audio settings
   AudioCodec libmp3lame
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libx264
   VideoSize 560x320           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

जो मुझे मिल सकता है, उससे कुछ लोग कह रहे हैं कि mp4 को केवल स्ट्रीम नहीं किया जा सकता है। मुझे mp4 से कोई लगाव नहीं है, सिवाय इस तथ्य के कि मैं इस धारणा के तहत था कि आपको HTML से HTML वीडियो प्लेयर के साथ वीडियो स्ट्रीम करने के लिए mp4 की आवश्यकता है। यदि यह मामला नहीं है, तो मुझे बताएं और मैं ख़ुशी से ffmpeg स्ट्रीमिंग के साथ अच्छे से खेलने वाली चीज़ पर स्विच करूँगा।


3
आपको वास्तव में MP4 स्ट्रीम नहीं करनी है । HTML5 H.264 / MP4 वीडियो के लिए वीडियो फ़ाइल को एनकोड करना -movflags faststartया qt-faststartउसके साथ व्यवहार करना पर्याप्त होना चाहिए , फिर <video>टैग में MP4 फ़ाइल को इंगित करें । आपके सर्वर को तब क्लाइंट की तलाश करने के लिए H.264 स्ट्रीमिंग मॉड्यूल की आवश्यकता होती है । या आपके पास लाइव इनपुट है?
slhck

मेरे मुवक्किल की आवश्यकता है कि यह स्ट्रीमिंग हो - वह ग्राहक को पूरी तरह से अक्षम करना चाहता है। यह एक फ़ाइल से स्ट्रीमिंग है (सर्वर पर फ़ाइल वेब प्रारूप में है, अगर यह एक अंतर बनाता है)। मैं केवल नियंत्रणों को छिपा नहीं सकता, क्योंकि iPhones बल नियंत्रण दिखाता है।
फाइबरिकॉन

@ स्लैक: मैं mp4 के साथ लाइव वेबकैम इनपुट कर रहा हूं, लेकिन ऐसा करने में असमर्थ हूं। यह काम करता है जब मैं flv का उपयोग करता हूं। क्या लाइव स्ट्रीमिंग के लिए mp4 का उपयोग करना संभव है?
जॉन क्वालिस

@ जॉन्क्युअलिस को यकीन नहीं है कि यह ffserver के साथ संभव है। लेकिन कंटेनर को कोई फर्क नहीं पड़ता, वास्तव में - कोडेक FLV और MP4 (H.264 और AAC) के साथ समान हैं।
15

@sklhck: मुझे यह ffserver का उपयोग करके flv के साथ काम करने के लिए मिला, लेकिन mp4 के साथ नहीं। अधिकांश वेब ब्राउज़र mp4 का समर्थन करते हैं। मुझे iPhone, android और सभी प्रसिद्ध वेब ब्राउज़रों पर काम करने वाली एक चीज़ चाहिए और यह h264 :) और मैं एक वेबकेम लाइव कर रहा हूँ
John Qualis

जवाबों:


6

आपकी स्वयं की वेब साइट से HTML 5 और iPad के अनुकूल वीडियो का लेख , अंतिम बार 12 नवंबर 2014 को अपडेट किया गया है, यह जानकारी है:

छवि

लेख MP4 के हाल ही में पर्याप्त संस्करण के साथ एक अच्छा समाधान के रूप में MP4 का उपयोग करने की सिफारिश करता है, AAC के साथ H.264 एन्कोडिंग का उपयोग करता है।

मैं विवरणों पर ध्यान देने के साथ लेख पढ़ने का सुझाव देता हूं: इसमें एक उदाहरण HTML फ़ाइल है जो सभी प्रमुख ब्राउज़रों पर काम करेगी, साथ ही एक उदाहरण FFmpeg कमांड का उपयोग वीडियो को .mp4 फ़ाइलों में बदलने के लिए किया जाता है ताकि वे सही तरीके से स्ट्रीम हो सकें।


क्या यह "लाइव" स्ट्रीमिंग के बारे में है?
मार्कस सीबेनेचर

@MarkusSiebeneicher: हाँ, ज्यादातर।
harrymc

मुझे अभी भी समस्या है "लाइव" स्ट्रीमिंग mp4 ffmpeg के साथ, क्योंकि यह "तलाशने योग्य" नहीं लगता है। मैं ffmpeg आउटपुट को सीधे ब्राउज़र में पाइप करता हूं, webm के साथ यह बॉक्स से बाहर काम करता है। Mp4 फॉर्मेट का उपयोग करके यह कहा जाता है कि इसकी खोज योग्य नहीं है ... इसलिए मुझे वास्तव में आश्चर्य है कि mp4 को "लाइव" स्ट्रीम करने योग्य बनाने के लिए क्या करना है, जहां कोई भी वीडियो सीधे फ़ाइल के रूप में सहेजा नहीं जाता है (जो इसे खोज योग्य बना देगा)।
मार्कस सिबेनेचर 14

@MarkusSiebeneicher: मेरा सुझाव है कि इस प्रश्न को विवरण के साथ एक नई पोस्ट में पूछें।
harrymc

0

मुझे लगता है कि HTTP लाइव स्ट्रीमिंग के बारे में सोचना मददगार होगा।

https://developer.apple.com/streaming/

जैसा कि मैं समझता हूँ कि यह iOs उपकरणों में ठीक काम करता है।

यहाँ एक उदाहरण है:

/programming/28723993/ffmpeg-hls-stream-for-android-and-ios


आप मेरे बजाय टिप्पणी के रूप में इसे जोड़ना चाहते हैं ...
rogerdpack
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.