Hi Alex,
Post by Alex CohnSee http://ffmpeg.gusari.org/viewtopic.php?f=12&t=624. For ffmpeg
command line, you can specify the UDP buffer size in the URL, e.g.
udp://localhost:5002?fifo_size=1000000.
Thanks. I did actually see this post, though I get errors from the
overrun_nonfatal argument.
Post by Alex CohnBuy if you get this message because you followed my advice about max
15 FPS, you are doing something wrong on your side: you should pull
the buffers faster.
Yes, I'm dropping frames where I can to decrease fps (though not as
you suggested (yet)).
But I'm decoding multiple streams simultaneously so my CPU is pretty stressed.
I don't use any sleep because I actually prefer processing frames early.
I also don't mind dropped frames in case of processing lag.
Post by Alex CohnDid you add a sleep in the decoder loop? If your
client is at 100% CPU utilization, faster settings for h264 decoder
may help.
What settings are those?
Post by Alex CohnThe only "legitimate" case when increase of the fifo size may really
be the correct solution, is a slow, unreliable network. In such case,
UDP packets may arrive significantly out of order, and nothing but
fifo size will compensate that.
ok...
Post by Alex CohnNote that overrun_nonfatal will break the video output. If the network
is very bad, and you have IDR frames sent often enough, or if you use
an intra-refresh stream.
Sorry, I don't understand what this means.
Basically, my requirements are as follows:
1. Decode multiple video streams simultaneously from a single MTP stream.
2. I do not display the frames, only process the pixels.
3. I'm not very sensitive about dropped frames.
4. I prefer to process the frames as early as possible, even before
they would have been displayed in "playing-time".
If the UDP network stream is bad, then just wait until you get some
proper packets/frames.
Thanks,
Adi