[FFmpeg-user] 26 second delay when using ffserver

David Ventura davidventura27 at gmail.com
Sat Jul 26 17:35:32 CEST 2014


isn't using both as input parameters redundant?
nobuffer:

Reduce the latency introduced by optional buffering
direct

Reduce buffering.

I'll try it anyway and report back, thanks


On 26 July 2014 02:18, Jeet Bhatnagar <jeetbhatnagar.8941 at gmail.com> wrote:

> Use truncate in ffserver config file
> And avioflags direct,fflags nobuffer in command line
> On Jul 25, 2014 8:47 AM, "David Ventura" <davidventura27 at gmail.com> wrote:
>
> > Hi
> > I'm streaming 2 video sources and 1 audio source to ffserver, then
> pulling
> > them with a complex filter and submitting them to an rtmp server far, far
> > away.
> > I'm using 3 different computers for this, one that pushes (camera +
> xorg),
> > a server (that pushes audio from mumblerecbot) and another computer that
> > pulls + pushes to rtmp.
> >
> > (Not looking for any simplifications, but if you know something else I
> > should try, please tell me)
> >
> > My problem: the video that's being pulled is delayed *exactly* 26
> seconds.
> > I'm now using this live with -itsoffset 26 and works wonders*(see below)
> > (only, introducing 26 seconds of delay for something that should be live)
> >
> > The output of the commands is not pasted because it's normal, but I'll
> set
> > everything up again and run it if it's needed.
> >
> > Push Camera:
> >  ffmpeg -f v4l2 -s 640x480 -framerate 20 -i /dev/video1 -c:v libx264 -an
> > -preset ultrafast -threads 2 -crf 6 http://192.168.1.123:8099/left.ffm
> >
> > Push X:
> >
> > ffmpeg -f x11grab -r 20 -s $resol -i :0.0 -s 640x480 -c:v libx264 -an
> > -preset ultrafast -crf 8 -threads 1 http://192.168.1.123:8099/right.ffm
> >
> > Pull Camera and X, with audio
> >
> > ffmpeg -re -i http://192.168.1.123:8099/left.flv -re -i
> > http://192.168.1.123:8099/right.flv -filter_complex
> > "[0:v]setpts=PTS-STARTPTS, scale=iw:ih, pad=2*iw:ih [left];
> > [1:v]setpts=PTS-STARTPTS, scale=iw:ih [right]; [left][right]
> > overlay=main_w/2:0" -re -itsoffset 00:00:20 -i
> > http://192.168.1.123:8099/audio.mp3 -c:v libx264 -vsync 1 -r 20 -acodec
> > libfaac -preset ultrafast -crf 26 -maxrate 1000k -bufsize 1600k -tune
> > zerolatency -f flv rtmp://**********
> >
> >
> > FFServer
> >
> > <Feed left.ffm>
> >     File /tmp/left.ffm
> >     FileMaxSize 5m
> >     ACL deny 127.0.0.2
> > </Feed>
> > <Feed right.ffm>
> >     File /tmp/right.ffm
> >     FileMaxSize 5m
> >     ACL deny 127.0.0.2
> > </Feed>
> > <Feed audio.ffm>
> >     File /tmp/audio.ffm
> >     FileMaxSize 1m
> >     ACL deny 127.0.0.2
> > </Feed>
> > <Stream left.flv>
> > #camera
> >     Format flv
> >     Feed left.ffm
> >
> >     PreRoll 0 #dont buffer
> >     NoAudio
> >     VideoCodec libx264
> >     VideoSize 640x480
> >     VideoGopSize 20
> >     AVOptionVideo pix_fmt yuv420p
> >     AVOptionVideo flags +global_header
> >
> > #libx264
> >         PixelFormat yuv420p
> >         AVOptionVideo me_range 16
> >         AVOptionVideo qdiff 4
> >         AVOptionVideo qmin 0
> >         AVOptionVideo qmax 51
> > #StartSendOnKey
> > </Stream>
> > <Stream right.flv>
> >         Format flv
> >         Feed right.ffm
> >
> >         PreRoll 0 #dont buffer
> >         NoAudio
> >         VideoCodec libx264
> >         VideoSize 640x480
> >         VideoGopSize 20
> >         AVOptionVideo pix_fmt yuv420p
> >         AVOptionVideo flags +global_header
> >
> > #esto para libx264
> >         PixelFormat yuv420p
> >         AVOptionVideo me_range 16
> >         AVOptionVideo qdiff 4
> >         AVOptionVideo qmin 0
> >         AVOptionVideo qmax 51
> > #StartSendOnKey
> > </Stream>
> > <Stream audio.mp3>
> >         Feed audio.ffm
> >         Format mp2
> >         AudioCodec libmp3lame
> >         AudioBitRate 96
> >         AudioChannels 1
> >         AudioSampleRate 48000
> >         NoVideo
> >         PreRoll 2
> > </Stream>
> >
> >
> >
> >
> > StartSendOnKey disabled so both streams start at the same time
> >
> >
> > Below*:
> > Important: If I set the itsoffset to 26 the audio/video get in sync but
> the
> > output starts stuttering until I get something (within 1-2 minutes) like:
> >
> > <http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=30&t=2057&p=7070#>[h264
> @
> > 0x154dba0] corrupted macroblock 23 0 (total_coeff=16)itrate=1002.2kbits/s
> >
> > [h264 @ 0x154dba0] error while decoding MB 23 0
> > [h264 @ 0x154dba0] corrupted macroblock 34 3 (total_coeff=16)
> > [h264 @ 0x154dba0] error while decoding MB 34 3
> > [h264 @ 0x154dba0] concealing 1095 DC, 1095 AC, 1095 MV errors in I frame
> > DTS 845582853, next:90100000 st:0 invalid dropping:01:50.13 bitrate=
> > 820.7kbits/s
> > PTS 845582853, next:90100000 invalid dropping st:0
> > [h264 @ 0x154e360] Missing reference picture, default is 0
> > [h264 @ 0x154e360] decode_slice_header error
> > WriteN, RTMP send error 104 (136 bytes)And the video stops.
> >
> >
> > Having pasted all those configs:
> >
> > 1-This error would be a non-problem if the delay was not there, so I'm
> not
> > too focused on fixing that, I'd rather fix the delay (or at least reduce
> > it, using itsoffset up to 10 does not give errors)
> >
> >
> > 2-The video (complete, with audio) starts with a big buffer(around 1
> > minute) and the buffer starts 'decaying' over time , after about 50
> > minutes, the delay is around 8 seconds. No clue about this, but it's not
> > really relevant (if this keeps for 3 hours the delay keeps at 8 seconds,
> > included rtmp)
> >
> >
> > Thanks a lot
> >
> > --
> > We need only a little more code,and little more money,and little more
> time,
> > and little more sleep but the world needs a lot more freedom
> > _______________________________________________
> > ffmpeg-user mailing list
> > ffmpeg-user at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> >
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>



-- 
We need only a little more code,and little more money,and little more time,
and little more sleep but the world needs a lot more freedom


More information about the ffmpeg-user mailing list