
I'm developing a platform where users can record videos of themselves or their screen and send them as video messages to customers / clients. There are no exceptions, other error messages or such - it just becomes extremely slow.Įdit: A colleague just told me that this looks like a memory problem with paged-out memory at first glance - but my memory utilization is low (below 1GB, and more than 20GB free)Ĭan anyone tell me what could be causing this? Interesting detail is, that the stack trace of the non-frameskip version shows some system activity I don't really understand - beginning with ntoskrnl.exe!KiPageFault+0x373. Now a heavy workload on many cores would of course cause a minor slowdown per core due to reduced turbo - let's say 10 or 20%.

The conversion of a single frame has become ten times slower than before (average roughly ~350ms). The image of the non-frameskip version shows why: Thus, as multiple threads are used, it also should be quick enough for 60FPS, but it isn't! You see that the conversion is pretty quick (average roughly ~35ms) Here's an image of the frameskip version: Comparing the two versions in Concurrency Visualizer, I found a strange issue I don't know the reason of. So as a first countermeasure I skipped the conversion of some frames and got a stable frame rate of ~40 that way. Decoding still is fast enough, but when it comes to YUV/BGRA conversion it is simply not fast enough, even though it's done in 16 threads (one thread per frame on a 16/32 core machine). But with my maximum target - 4K 60FPS, it fails. With common videos (up to 4K 30FPS), it works pretty good. All known AMV files run sound at 22050 samples per second.I am writing a video player using ffmpeg (Windows only, Visual Studio 2015, 64 bit compile). The first bytes of each frame are origin 16 bits index 16 bits and the number of encoded 16-bit samples hence 32bits.

The audio format is a variant of IMA ADPCM. This video format is variant of motion JPEG with fixed quantisation tables. Although the file was created for portable devices, it can also be played on computers.ĪMV is a container file which is a modified version of AVI.

It is usually saved in low resolutions from 94圆4 to 160x120 in order to fit in small screens. More information on AMV, Anime Music Video File (.amv)ĪMV is a compressed video file format that was produced by MTV for use in Chinese MP4/MP3/MTV players.
