2009-07-07 20 views
19

आईफोन ओएस 3 में, ऐप्पल ने HTTP Live Streaming पेश किया है जो इंटरनेट से वीडियो की लाइव स्ट्रीमिंग की अनुमति देनी चाहिए। मैं वर्तमान में एक वेबकैम चला रहा हूं, जो मेरे सर्वर में फ़ीड करता है, और उसके बाद ffmpeg द्वारा FLV स्ट्रीम में परिवर्तित किया जाता है, और ffserver का उपयोग करके वापस स्ट्रीम किया जाता है। क्या किसी को पता है कि वीडियो स्ट्रीम कैसे स्थापित करें Iphone ffmpeg और ffserver का उपयोग कर उपयोग कर सकता है? मैं फ्लाई पर किसी भी प्रारूप में फिर से एन्कोड करने में सक्षम होना चाहिए।HTTP लाइव स्ट्रीमिंग, एफएफएमईजीई और एफएफएसईवर, और आईफोन ओएस 3

उत्तर

22

आपको एक संस्करण> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) या 18793 (svn) के साथ ffmpeg की एक प्रति बनाने की आवश्यकता होगी। सुनिश्चित करें कि आप निर्माण करते समय --enable-libx264 ध्वज भी निर्दिष्ट करते हैं। एक बार जब आप यह है कि शुरू होने के बाद, आपके पास मोटे तौर पर कर सकते हैं निम्नलिखित:

ffmpeg -i <input video> -acodec libmp3lame -ac 1 -vcodec libx264 -s 320x240 \ 
     -level 30 -f mpegts - | \ 
segmenter - 10 test test.m3u8 http://example.com/path/to/your/files/ 

अर्थात कोई इनपुट फ़ाइल लाओ या एप्पल segmenter में ffmpeg और पाइप के साथ MP3 ऑडियो में एक H.264 वीडियो में प्रवाहित होते हैं। सेगमेंटर सेगमेंट की गई फाइलों और एम 3 यू प्लेलिस्ट से विभाजित फाइलों को इंगित करता है। आप अपाचे जैसे वेब सर्वर के माध्यम से खंडित फ़ाइलों और प्लेलिस्ट की सेवा करेंगे।

स्पष्ट रूप से आप परिणाम प्राप्त करने के लिए ffmpeg और सेगमेंटर विकल्पों को काफी हद तक ट्विक करना चाहते हैं।

+0

कोई भी विंडोज सर्वर समाधान? – postalservice14

+0

किसी को भी वास्तव में एक डीवीडी स्रोत से लाइव स्ट्रीम के साथ काम मिल गया है? मैं कोशिश कर रहा हूं और सेगमेंटर से त्रुटियां प्राप्त कर रहा हूं ... –

+0

मैंने पाया कि एफएफएमपीईजी संस्करण एसवीएन-आर 21627 ओपन सोर्स सेगमेंटर के साथ काम करता है http://code.google.com/p/httpsegmenter/ क्या किसी के पास इस संस्करण के बाद क्या बदलाव आया है? –

12

रुचि रखने वालों के लिए मैंने एक स्क्रिप्ट के साथ एक ओपन सोर्स सेगमेंटर को बंडल किया है जो आपको ऐसा करने के लिए ffmpeg का उपयोग करने देगा, मेरी segmented streaming on the iphone प्रोजेक्ट देखें। यह इनपुट स्ट्रीम के लिए बहु-बिटरेट सेगमेंट कर सकता है और स्ट्रीम सेगमेंट को एसपीपी, एफटीपी और यहां तक ​​कि एस 3 तक भी कॉन्फ़िगर करने योग्य गंतव्य में स्थानांतरित कर देगा।

0

फिल्मों को "आईफोन" प्रारूप में बदलने के लिए क्विकटाइम का उपयोग करने में क्या गड़बड़ है? आप बस फाइल> निर्यात> आईफोन प्रारूप करते हैं ... क्या मुझे कुछ याद आ रही है?

iPhone प्रारूप में परिवर्तित करने के बाद, मैं इसे काट mediafilesegmenter (Apple Developer Connection, Http Live Streaming Tools में पाया जाता है) के साथ:

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v 

(नोट: folderName/फ़ोल्डर मौजूद होना चाहिए)

फिर एक वेबसाइट के लिए अपने iPhone बात

<video src='folderName/prog_index.m3u8' height=45 width=70 
     controls='on'>Your browser does not support the video tag</video> 
+3

हर कोई मैक का उपयोग नहीं करता है, और ऐप्पल टूल केवल मैक पर काम करते हैं। – Haqa

+1

@yujean आपका लिंक मर चुका है। – Brad

3

साथ यह काफी एक पुराने विषय है, लेकिन एचएलएस समर्थन, FFmpeg का एक उचित रूप में नई सुविधा किसी के लिए उपयोगी हो सकता है।

एक उदाहरण के रूप में उपयोग किया जाएगा इस प्रकार है:

ffmpeg -i <input_stream> -c:v libx264 -preset ultrafast -map 0 -an -flags -global_header -f hls -hls_time <segment_length> -hls_list_size <playlist_entries> -hls_wrap <wrap> <m3u8_file> 

-hls_list_size तर्क में फ़ाइलों की संख्या को सीमित:

ffmpeg -i <input_file> -c:v libx264 -preset slow -map 0 -an -flags -global_header -f hls -hls_time <segment_length> <m3u8_file> 

आप लाइव स्ट्रीमिंग करना चाहते हैं, तो यह एक और उदाहरण होगा प्लेलिस्ट, और -hls-wrap तर्क कुल फ़ाइलों की संख्या को सीमित करता है और उस बिंदु पर पहुंचने के बाद फ़ाइल नामों को लपेट देगा (उदा: test0.ts, test1.ts ... test7.ts, test0.ts, test1.ts ... जब लपेटें 8 है)।

अधिक जानकारी के लिए, the documentation देखें। कृपया ध्यान दें, उपर्युक्त उदाहरण ध्वज के साथ ऑडियो को बाहर निकाल देते हैं, क्योंकि मुझे व्यक्तिगत रूप से इसकी आवश्यकता नहीं होती है।

+0

सही उत्तर ... ठीक काम करें –

+0

अच्छा लगता है, लेकिन ऐसा लगता है कि आउटपुट प्रारूप एचएलएस के लिए गलत है; सफारी के साथ m3u8 फ़ाइल को देखते समय मुझे "लापता प्लगइन" मिलता है? – Jonny