[FFmpeg-user] 26 second delay when using ffserver

David Ventura davidventura27 at gmail.com
Fri Jul 25 05:16:06 CEST 2014


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


More information about the ffmpeg-user mailing list