Open Xuno opened 9 years ago
If clock is set to Video and Buffer Frames to -1 multiple frames still buffer, play and then waits for buffer to refill. We need a no timing option where playback is determined by PC's i/o the same way ffplay works if specified fps can not be reached.
try to set 1
Better results with clock set to video, Buffer Frames 1, AvFormat Reduced Buffering checked, Probe Size 0, Max analyze duration 0. We are splitting Setup Menu options for Video and Image Sequences in the next version with optimum default preset.
It plays as expected based on system i/o for a short while then stops with the following error:
Debug: status changed "Buffered" Debug: status changed "Buffering..." Warning: Queue is still empty Debug: >>>>>>>>>>>>>>disable slider Debug: Succeed to enable screen saver (1) Debug: status changed "" Debug: >>>>>>>>>>>>>>disable slider Debug: Succeed to enable screen saver (1) Warning: QObject::killTimer(): Error: timer id 5 is not valid for object 0x15f8b0 (MainWindow, ), timer has not been killed
Image Sequence defaults and separate setup menu options have been added to the latest version.
I think I just got the same issue. Trying to play http://204.191.3.124:82/live-spts/pandacam/transmux/index.m3u8 on my player (which is just a litter fancier simpleplayer). Here is the details of this m3u8 file:
CCURstream3000000.m3u8
CCURstream2500000.m3u8
CCURstream1800000.m3u8
CCURstream1200000.m3u8
CCURstream600000.m3u8
And here is my player init part: VideoRendererId v = VideoRendererId_Widget; v = VideoRendererId_GLWidget2; //v = VideoRendererId_OpenGLWidget; m_player = new AVPlayer(this); m_re = VideoRendererFactory::create(v); m_player->setRenderer(m_re); static const QStringList str = QStringList()<<"OpenAL"; m_player->audio()->setBackends(str); m_player->setBufferMode(QtAV::BufferBytes); m_player->setBufferValue(1000);
When I tried the low bitrate stream (1.8/1.2/0.6 MB/s) everything is fine. But with high bitrate (2.5/3.0 MB/s), I get the same issue: playing a few seconds (in 2.5 it is a little longer, like 10 seconds, in 3.0 only 2-3 seconds), then dropping a lot of frames, finally stop.
setInteruptOntimeout and setbuffermode/value(I tried all mode and different value (-1, 0, 1, very large)) don't fix it. Cause this stream doesn't have audio track, I even try set masterclock to video or eternel without any effects. So I think maybe there is an internal buffer or something not working when playing high bitrate stream. Let me know what's your idea. Thank you very much
Our forked player updated with commit fe1aa216908527577307fefa63a1ebedb5b7ae77 of QtAV plays image sequences from local hard drive.
On high resolution frames like 3840x2160 if fps exceeds the i/o capability of the PC the first few seconds play OK then the player stalls in a buffering loop.
Debug: status changed "Buffered" Debug: status changed "Buffering..." Debug: status changed "Buffered" Debug: status changed "Buffering..." Debug: status changed "Buffered" Debug: status changed "Buffering..."
By comparison ffplay.exe plays frames at a consistent rate even if slowed down due to i/o limitations.
i.e. ffplay.exe -i c:\demo\Raw_3840x2160\%06d.tif
Testing with changes in /menu/setup Misc and AVformat were unsuccessful in solving this problem. What changes can be made to PacketBuffer.cpp allowing for smooth sequential image play when i/o is limited?
The ability to play full resolution 4K RAW images when color grading and other tasks is preferable to small resolution displayed in proxy players embedded in most post production software.