2013-05-20 2 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. 내가이 스트림을

    ffplay http : // 192.168.1.2 : 8090/test.webm 작동하지만 4 초의 지연이 있으며 응용 프로그램에 필수적이므로이 지연을 최소화해야합니다.

+2

당신은 probesize의 값을 줄이기 위해 시도 할 수 있습니다 : 500000 HTTP를 -probesize ffplay': //192.168.1.2 : 8090/test.webm' SDL에를 사용 은 최소한의 대기 시간 프레임을 볼 수 있다고 (500Kb까지,이 값으로 실험 해 봅시다, 내가 잘못하지 않으면 기본값은 5Mb입니다.) – pogorskiy

+0

감사합니다. 이제 모바일 브라우저에서 스트림을 시청해야하므로 ffplay를 사용할 수 없습니다. 구성 파일을 최적화하려면 몇 가지 제안이 필요합니다. –

+2

http://ffmpeg.org/sample.html 읽기 VideoBufferSize로 시도하거나 GOP를 줄이면 (대역폭 사용량이 늘어남) 상상할 수 있습니다. –

답변

13

는 FFmpeg의 스트리밍 가이드 덕분에 대기 시간을 줄이는 방법에 대한 특정 섹션이 있습니다. 나는 그들의 제안을 아직 시도하지 않았다. 대기 시간 ffplay가 도입에 대해

http://ffmpeg.org/trac/ffmpeg/wiki/StreamingGuide#Latency 그들은 특정 노트를 만들 : 기본적으로

ffplay는 자신의 작은 지연을 소개하고 또한와 mplayer 유용 자체 테스트 대기 시간 -nocache (또는 -benchmark). ffmpeg ... -f sdl -

+4

감사합니다. 'ffplay -probesize 32 -sync ext INPUT' 링크가 나를 위해 속임수를 사용했습니다! – user3473830

+0

어떤 지연 시간을 보냈습니까? 100 밀리 초 이상의 스트리밍 지연이 필요합니다. 가능한가? –

+0

나는 최종 지연을 측정하지는 않았지만 사운드 부스를 통과하는 소리로 모니터에 직접 가까이서 보았으므로 나를 위해 충분했다. –

관련 문제