Hi all
I have a 3-year ongoing issue with my AXIS P3346-VE and P3364-VE cameras that I have mounted outdoors around my house.
When vehicles are passing by the video playback from the recorded video (as well as the live stream) has some jumpy frames / "jumpiness". It looks sometimes like the jumps / short freezes (like 100-500 milliseconds) comes when the cameras are sending an I-frame.
Here are some shared links to my Google Drive where you can download some samples and look on the "jumpiness":
AXIS P3346-VE - Jumpy frames - Terrace.20170206_110000.avi
Jumpy frames - 20 fps - I-frame 20 - Comp 30 - VBR - 2048x1536 capture - 2480x1536 stream - Jumpiness back! - Terrace.20170412_170000_1.avi
My hardware setup is the following:
Cameras:
3 of the AXIS P3346-VE 3MP cameras with latest firmware 5.50.3.5 running @ 20 fps
1 of the AXIS P3364-VE 1MP camera with latest firmware 6.10.1.3 running @ 25 fps
(I have 2 more of the P3346-VE:s to be mounted and connected in the coming spring as well as a Vivotek FD9381-EHTV 5MP camera that supports H.265 encoding which BlueIris now supports as well)
PC is dedicated for my video surveillance:
Motherboard is Asus X99-A (X99-A | Motherboards | ASUS Global)
CPU Intel Core i7 5820K / Haswell-E/EP
Specification Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
Number of cores 6 (max 8)
Number of threads 12 (max 16)
RAM is 16GB
Graphics card is Asustek NVIDIA GeForce GTX 770 with 2GB graphics RAM.
Intel CT Gigabit network adapter (the one on the motherboard has been disabled by me in the BIOS) with the latest driver.
All this running on Windows 10 PRO 64-bit OS together with (as of today) latest BlueIris x64 version.
My PC indicates a load of 10-15% with all 4 cameras running at full FPS and my resource monitor looks like the dedicated surveillance PC is running at idle.
I have also run the software "DPC Latency checker" (DPC Latency Checker) to see if I have any IRQ / response time issues but it all looks good with an average DPC latency of approx 32 microseconds and the absolute maximum I saw under a 5 minute testing period was 362 microseconds.
Note that my problems with the jumpiness are NOT related to BlueIris or settings within BlueIris since I have EXACTLY the same problem with many other software platforms I have tested (even AXIS' own NVR software AXIS Companion and the more professional AXIS Camera Station). Other platforms I have tested are Milestone, Luxriot, Avigilon and so on. They all show the same stuttering / jumpiness as I see with BlueIris.
I have done extensive research, testing of both software parameters, camera settings, testing of hardware involved such as measuring network performance with both software JPERF and actual network measurement tools like the Fluke Cable IQ Qualification Tester (Cable IQ Qualification Tester - Network Cable Tester | Fluke Networks)
NONE of the measurements indicates networking issues.
I have actually connected a laptop at the cable ends where the cameras are normally connected and then I have run JPERF between that laptop all the way through the involved switch (Zyxel GS1900-8HP) and to my dedicated surveillance PC. The JPERF measurements shows excellent results with NO packet losses and speeds of up to 400Mbits/s.
I have even tested to play 1080p HD video files through the same network cables and switch and there is NO glitch/jumpiness/freezes whatsoever. (I had the laptop in the camera cable end playing up a video from my dedicated surveillance PC.)
I have set GOV to 20 (i.e. one I-frame per 20 frames) for the P3346-VE cameras running @ 20 fps and GOV = 25 for the P3364-VE camera running @ 25 fps. I have tested with many different GOV settings between 1 and up to 120 but no difference.
I have tested to switch between VBR (variable bit rate) and CBR (constant bit rate, which for AXIS is not TRUE constant bit rate but more like a ceiling of the bit rate: FAQ: What is the difference between Variable Bit Rate and Constant Bit Rate? | Axis Communications). Neither CBR or VBR gets rid of the jumpiness.
When I look at the camera log I see NO lost packets in the camera's own debug logs.
As you can see there are NO lost packets or errors on the transmitted packets. I think this log shows the packets since the previous restart of the camera (10 days):
----- Network statistics -----
Inter- |Receive |Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth0: 2500775728 252227755 13 0 0 13 0 677459 842642917 430564708 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
These problems are for ALL my 4 connected cameras.
Finally I contacted Ken at BlueIris support and when he investigated some BVR-files that I sent to him I got some really interesting observations from him.
Below is a log output from the actual frames and packets coming from the AXIS cameras into BlueIris
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 8/9 1 used 40410/40410 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 9/10 1 used 38821/38821 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 0/1 1 used 493678/493678 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34162/34162 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38819/38819 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 40175/40175 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 40682/40682 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 5/6 1 used 40498/40498 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 100 6/7 1 used 47902/47902 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 7/8 1 used 41071/41071 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 8/9 1 used 39751/39751 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 9/10 1 used 39023/39023 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 0/1 1 used 493911/493911 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34346/34346 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38734/38734 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 40758/40758 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 450 0/1 1 used 493835/493835 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34756/34756 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38810/38810 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 150 3/4 1 used 55366/55366 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 43049/43049 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 5/6 1 used 40959/40959 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 6/7 1 used 40396/40396 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 150 7/8 1 used 51766/51766 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 200 0/1 1 used 493701/493701 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34694/34694 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 49 2/3 1 used 38824/38824 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 450 0/1 1 used 494446/494446 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 500 0/1 1 used 493330/493330 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 700 0/1 1 used 494509/494509 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 35046/35046 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 39252/39252 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 699 0/1 1 used 494857/494857 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 100 1/2 1 used 47381/47381 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 42377/42377 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 100 3/4 1 used 50138/50138 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 42644/42644 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 450 0/1 1 used 495498/495498 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 35001/35001 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 39323/39323 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 41198/41198 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 40929/40929 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 400 0/1 1 used 495413/495413 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34923/34923 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 39417/39417 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 40514/40514 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 40987/40987 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 150 5/6 1 used 53744/53744 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 250 0/1 1 used 495890/495890 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34347/34347 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38817/38817 12; 2048x1536 b=0 0
The time distance from the previous frame is right after the word "decode" in this data. You can see most are 50 milliseconds which is equivalent of 20 fps. However, look at the long jumps, some 100, 150, 250, even 500 and 700. That's more than 1/2 sec between frames!
After the log word "used" you can see the frame size in bytes. The ones with 50 ms jumps are only about 40-50kb. The ones causing the jumpiness are much larger, nearly 500kb! So the camera is definitely sending larger frames when there is motion, which makes sense if you are on VBR (variable bit rate). However as I mentioned higher up in my text above I have tested with CBR (constant bit rate) ... in that case I would expect each frame to be about the same size but that does not happen (as my link above to how AXIS works with CBR being a CEILING for the bitrate, not a fixed bitrate).
So it's not the playback in BlueIris causing the "jumpiness". It's the way the video is being received from the camera with these long gaps. This is causing the "jumpiness" in playback.
So the question now is WHY is this happening? Is this a defect of the firmware of AXIS cameras and how they produce the data for each I-frame and/or P-fram or is this a "proof" of something being screwed up in my network anyway even though all my measurements with both software and hardware instruments indicates that my network is capable of Gigabit speeds and the ethernet interfaces of my AXIS cameras are only for 100MBit/s while the actual bitrate used by the cameras is hovering around 2-6Mbit/s.
My "feeling" is that this is bad behaviour of the AXIS P33-series of cameras.
Does any of you have a suggestion what tool I could use to inspect real time frames coming from the camera similar to the way Ken is showing for me in the BlueIris log above?
I found this interesting blog post talking about AXIS doing its own implementation of multicasting of video that only seems to work with IE: AXIS IP Cameras = Fail - System Overlord
I tried to configure multicasting but I was never able to get it to work in BlueIris.
I am currently using RTSP-streams but I have tested with normal HTTP-streams and I have also played with the settings "Use RTP/UDP ports", "Send RTSP keep-alives", "Use RTSP/stream timecode" but no difference with any of the settings. Still the jumpiness as can be seen the packet log above.
I am really hoping to be able to mount and connect my new Vivotek FD9381-EHTV 5MP camera within 4-5 weeks from now and see if I get the same jumpiness with that camera as well.
Any other AXIS camera users out there seeing similar problems?
I have a 3-year ongoing issue with my AXIS P3346-VE and P3364-VE cameras that I have mounted outdoors around my house.
When vehicles are passing by the video playback from the recorded video (as well as the live stream) has some jumpy frames / "jumpiness". It looks sometimes like the jumps / short freezes (like 100-500 milliseconds) comes when the cameras are sending an I-frame.
Here are some shared links to my Google Drive where you can download some samples and look on the "jumpiness":
AXIS P3346-VE - Jumpy frames - Terrace.20170206_110000.avi
Jumpy frames - 20 fps - I-frame 20 - Comp 30 - VBR - 2048x1536 capture - 2480x1536 stream - Jumpiness back! - Terrace.20170412_170000_1.avi
My hardware setup is the following:
Cameras:
3 of the AXIS P3346-VE 3MP cameras with latest firmware 5.50.3.5 running @ 20 fps
1 of the AXIS P3364-VE 1MP camera with latest firmware 6.10.1.3 running @ 25 fps
(I have 2 more of the P3346-VE:s to be mounted and connected in the coming spring as well as a Vivotek FD9381-EHTV 5MP camera that supports H.265 encoding which BlueIris now supports as well)
PC is dedicated for my video surveillance:
Motherboard is Asus X99-A (X99-A | Motherboards | ASUS Global)
CPU Intel Core i7 5820K / Haswell-E/EP
Specification Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
Number of cores 6 (max 8)
Number of threads 12 (max 16)
RAM is 16GB
Graphics card is Asustek NVIDIA GeForce GTX 770 with 2GB graphics RAM.
Intel CT Gigabit network adapter (the one on the motherboard has been disabled by me in the BIOS) with the latest driver.
All this running on Windows 10 PRO 64-bit OS together with (as of today) latest BlueIris x64 version.
My PC indicates a load of 10-15% with all 4 cameras running at full FPS and my resource monitor looks like the dedicated surveillance PC is running at idle.
I have also run the software "DPC Latency checker" (DPC Latency Checker) to see if I have any IRQ / response time issues but it all looks good with an average DPC latency of approx 32 microseconds and the absolute maximum I saw under a 5 minute testing period was 362 microseconds.
Note that my problems with the jumpiness are NOT related to BlueIris or settings within BlueIris since I have EXACTLY the same problem with many other software platforms I have tested (even AXIS' own NVR software AXIS Companion and the more professional AXIS Camera Station). Other platforms I have tested are Milestone, Luxriot, Avigilon and so on. They all show the same stuttering / jumpiness as I see with BlueIris.
I have done extensive research, testing of both software parameters, camera settings, testing of hardware involved such as measuring network performance with both software JPERF and actual network measurement tools like the Fluke Cable IQ Qualification Tester (Cable IQ Qualification Tester - Network Cable Tester | Fluke Networks)
NONE of the measurements indicates networking issues.
I have actually connected a laptop at the cable ends where the cameras are normally connected and then I have run JPERF between that laptop all the way through the involved switch (Zyxel GS1900-8HP) and to my dedicated surveillance PC. The JPERF measurements shows excellent results with NO packet losses and speeds of up to 400Mbits/s.
I have even tested to play 1080p HD video files through the same network cables and switch and there is NO glitch/jumpiness/freezes whatsoever. (I had the laptop in the camera cable end playing up a video from my dedicated surveillance PC.)
I have set GOV to 20 (i.e. one I-frame per 20 frames) for the P3346-VE cameras running @ 20 fps and GOV = 25 for the P3364-VE camera running @ 25 fps. I have tested with many different GOV settings between 1 and up to 120 but no difference.
I have tested to switch between VBR (variable bit rate) and CBR (constant bit rate, which for AXIS is not TRUE constant bit rate but more like a ceiling of the bit rate: FAQ: What is the difference between Variable Bit Rate and Constant Bit Rate? | Axis Communications). Neither CBR or VBR gets rid of the jumpiness.
When I look at the camera log I see NO lost packets in the camera's own debug logs.
As you can see there are NO lost packets or errors on the transmitted packets. I think this log shows the packets since the previous restart of the camera (10 days):
----- Network statistics -----
Inter- |Receive |Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth0: 2500775728 252227755 13 0 0 13 0 677459 842642917 430564708 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
These problems are for ALL my 4 connected cameras.
Finally I contacted Ken at BlueIris support and when he investigated some BVR-files that I sent to him I got some really interesting observations from him.
Below is a log output from the actual frames and packets coming from the AXIS cameras into BlueIris
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 8/9 1 used 40410/40410 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 9/10 1 used 38821/38821 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 0/1 1 used 493678/493678 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34162/34162 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38819/38819 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 40175/40175 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 40682/40682 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 5/6 1 used 40498/40498 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 100 6/7 1 used 47902/47902 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 7/8 1 used 41071/41071 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 8/9 1 used 39751/39751 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 9/10 1 used 39023/39023 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 0/1 1 used 493911/493911 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34346/34346 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38734/38734 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 40758/40758 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 450 0/1 1 used 493835/493835 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34756/34756 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38810/38810 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 150 3/4 1 used 55366/55366 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 43049/43049 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 5/6 1 used 40959/40959 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 6/7 1 used 40396/40396 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 150 7/8 1 used 51766/51766 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 200 0/1 1 used 493701/493701 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34694/34694 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 49 2/3 1 used 38824/38824 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 450 0/1 1 used 494446/494446 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 500 0/1 1 used 493330/493330 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 700 0/1 1 used 494509/494509 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 35046/35046 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 39252/39252 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 699 0/1 1 used 494857/494857 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 100 1/2 1 used 47381/47381 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 42377/42377 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 100 3/4 1 used 50138/50138 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 42644/42644 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 450 0/1 1 used 495498/495498 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 35001/35001 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 39323/39323 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 41198/41198 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 40929/40929 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 400 0/1 1 used 495413/495413 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34923/34923 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 39417/39417 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 3/4 1 used 40514/40514 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 4/5 1 used 40987/40987 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 150 5/6 1 used 53744/53744 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 250 0/1 1 used 495890/495890 12; 2048x1536 b=0 1
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 1/2 1 used 34347/34347 12; 2048x1536 b=0 0
BVR.cpp(746) : atlTraceGeneral - FFMPEG decode 50 2/3 1 used 38817/38817 12; 2048x1536 b=0 0
The time distance from the previous frame is right after the word "decode" in this data. You can see most are 50 milliseconds which is equivalent of 20 fps. However, look at the long jumps, some 100, 150, 250, even 500 and 700. That's more than 1/2 sec between frames!
After the log word "used" you can see the frame size in bytes. The ones with 50 ms jumps are only about 40-50kb. The ones causing the jumpiness are much larger, nearly 500kb! So the camera is definitely sending larger frames when there is motion, which makes sense if you are on VBR (variable bit rate). However as I mentioned higher up in my text above I have tested with CBR (constant bit rate) ... in that case I would expect each frame to be about the same size but that does not happen (as my link above to how AXIS works with CBR being a CEILING for the bitrate, not a fixed bitrate).
So it's not the playback in BlueIris causing the "jumpiness". It's the way the video is being received from the camera with these long gaps. This is causing the "jumpiness" in playback.
So the question now is WHY is this happening? Is this a defect of the firmware of AXIS cameras and how they produce the data for each I-frame and/or P-fram or is this a "proof" of something being screwed up in my network anyway even though all my measurements with both software and hardware instruments indicates that my network is capable of Gigabit speeds and the ethernet interfaces of my AXIS cameras are only for 100MBit/s while the actual bitrate used by the cameras is hovering around 2-6Mbit/s.
My "feeling" is that this is bad behaviour of the AXIS P33-series of cameras.
Does any of you have a suggestion what tool I could use to inspect real time frames coming from the camera similar to the way Ken is showing for me in the BlueIris log above?
I found this interesting blog post talking about AXIS doing its own implementation of multicasting of video that only seems to work with IE: AXIS IP Cameras = Fail - System Overlord
I tried to configure multicasting but I was never able to get it to work in BlueIris.
I am currently using RTSP-streams but I have tested with normal HTTP-streams and I have also played with the settings "Use RTP/UDP ports", "Send RTSP keep-alives", "Use RTSP/stream timecode" but no difference with any of the settings. Still the jumpiness as can be seen the packet log above.
I am really hoping to be able to mount and connect my new Vivotek FD9381-EHTV 5MP camera within 4-5 weeks from now and see if I get the same jumpiness with that camera as well.
Any other AXIS camera users out there seeing similar problems?
Last edited: