2013-05-20 20 views
16

ho un problema. Vorrei fare un live streaming con ffmpeg dalla mia webcam.Come ridurre al minimo il ritardo in streaming con ffmpeg

  1. Lancio ffserver e funziona.
  2. da un altro terminale che lanciare ffmpeg per lo streaming con questo comando e funziona:

    sudo ffmpeg -re -f video4linux2 -i /dev/video0 -fflags nobuffer -an http://localhost:8090/feed1.ffm 
    
  3. Nel mio file di configurazione ho questo flusso:

    <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> 
    
  4. lancio il torrente con

    ffplay http: // 192.168.1.2: 8090/test.webm Funziona ma ho un ritardo di 4 secondi e vorrei minimizzare questo ritardo perché è essenziale per la mia applicazione. Grazie

+2

Si può provare a ridurre il valore di probesize: 'ffplay -probesize 500000 http: //192.168.1.2: 8090/test.webm' (a 500 Kb, sperimenta questo valore, il valore predefinito è 5Mb se non sbaglio.) – pogorskiy

+0

ok grazie. Ora devo guardare lo streaming in un browser mobile e quindi non posso usare ffplay. Ho bisogno di qualche suggerimento per ottimizzare il file di configurazione. –

+2

lettura http://ffmpeg.org/sample.html posso immaginare che si può provare con VideoBufferSize o riducendo il GOP (è aumentare il consumo di banda). –

risposta

13

guida lo streaming di FFmpeg ha una sezione specifica su come ridurre la latenza. Non ho ancora provato tutti i loro suggerimenti. http://ffmpeg.org/trac/ffmpeg/wiki/StreamingGuide#Latency

Fanno una nota particolare su ffplay latenza introduce:

Per impostazione predefinita, ffplay introduce una piccola latenza propria, utile è anche mplayer con la sua -nocache per la latenza di prova (o -benchmark). Utilizzando la SDL fuori è anche detto di visualizzare fotogrammi con latenza minima: ffmpeg ... -f sdl -

+4

grazie, 'ffplay -probesize 32 -sync ext INPUT' dal link ha fatto il trucco per me! – user3473830

+0

Che latenza hai raggiunto? Ho bisogno di più di 100 ms di latenza streaming. È possibile ? –

+0

Non ho misurato il ritardo finale ma sembrava vicino a vivere su un monitor di persona con il suono che stava attraversando una cabina audio, quindi era abbastanza buono per me. –

Problemi correlati