ffmpeg

2013-05-20 8 views
16

के साथ लाइव स्ट्रीमिंग में देरी को कम करने के लिए मुझे कोई समस्या है। मैं अपने वेबकैम से ffmpeg के साथ एक लाइव स्ट्रीमिंग करना चाहता हूं।ffmpeg

  1. मैं ffserver लॉन्च करता हूं और यह काम करता है।
  2. एक और टर्मिनल से मैं इस आदेश साथ स्ट्रीम करने के लिए ffmpeg लांच और यह काम करता है:

    <Stream test.webm> 
    Feed feed1.ffm 
    Format webm 
    NoAudio 
    VideoCodec libvpx 
    VideoSize 720x576 
    VideoFrameRate 25 
    # Video settings 
        VideoCodec libvpx 
        VideoSize 720x576   # 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 
        PreRoll 5 
        StartSendOnKey 
        VideoBitRate 400   # Video bitrate 
    </Stream> 
    
  3. मैं के साथ धारा का शुभारंभ:

    sudo ffmpeg -re -f video4linux2 -i /dev/video0 -fflags nobuffer -an http://localhost:8090/feed1.ffm 
    
  4. मेरी विन्यास फाइल में मैं इस धारा है

    एफएफप्ले http: // 1 9 2.168.1.2: 80 9 0/test.webm यह काम करता है लेकिन मुझे 4 सेकंड की देरी है और मैं इस देरी को कम करना चाहता हूं क्योंकि मेरे आवेदन के लिए आवश्यक है। धन्यवाद

+2

आप probesize का मूल्य कम करने की कोशिश कर सकते हैं:: 'ffplay -probesize 500000 http: //192.168.1.2: 8090/test.webm' एसडीएल बाहर का उपयोग करते हुए भी न्यूनतम विलंबता के साथ फ्रेम देखने के लिए कहा है (500 Kb के लिए, इस मान के साथ प्रयोग, अगर मैं गलत नहीं हूं तो डिफ़ॉल्ट मान 5 एमबी है।) – pogorskiy

+0

ठीक है धन्यवाद। अब मुझे एक मोबाइल ब्राउज़र में स्ट्रीम देखना है और इसलिए मैं ffplay का उपयोग नहीं कर सकता। मुझे कॉन्फ़िगरेशन फ़ाइल को अनुकूलित करने के लिए कुछ सुझाव चाहिए। –

+2

पढ़ना http://ffmpeg.org/sample.html मैं कल्पना कर सकता हूं कि आप VideoBufferSize के साथ प्रयास कर सकते हैं या GOP को कम कर सकते हैं (यह बैंडविड्थ उपयोग को बढ़ाता है)। –

उत्तर

13

FFmpeg के स्ट्रीमिंग गाइड कैसे प्रतीक्षा अवधि कम करने पर एक विशेष खंड है। मैंने अभी तक उनके सभी सुझावों का प्रयास नहीं किया है। इसके परीक्षण के लिए विलंबता -nocache (या -benchmark)

डिफ़ॉल्ट रूप से, ffplay अपने स्वयं के एक छोटे से विलंबता का परिचय है, इसके अलावा उपयोगी साथ mplayer है: http://ffmpeg.org/trac/ffmpeg/wiki/StreamingGuide#Latency

वे एक विशेष नोट कर के बारे में विलंबता ffplay परिचय देता है। ffmpeg ... -f sdl -

+4

धन्यवाद, लिंक से 'ffplay -probesize 32 -sync ext INPUT' ने मेरे लिए चाल बनाई है! – user3473830

+0

आपने किस विलंबता को हासिल किया? मुझे 100 से अधिक एमएस स्ट्रीमिंग विलंबता की आवश्यकता है। क्या यह संभव है ? –

+0

मैंने अंतिम देरी को माप नहीं लिया लेकिन ध्वनि के बूथ के माध्यम से ध्वनि के साथ व्यक्ति में मॉनीटर पर रहने के करीब लग रहा था, इसलिए मेरे लिए काफी अच्छा था। –