themactep / thingino-firmware

Open-source firmware for Ingenic SoC IP cameras
https://thingino.com
MIT License
222 stars 60 forks source link

bug: wrong 25 fps on newly fully flashed jooan camera #283

Open nicolasroche898 opened 1 month ago

nicolasroche898 commented 1 month ago

repro: download full firmware for jooan a6m camera, flash full go to web ui streamer:

seen: 25fps for stream0 and stream1 expected: 15fps for stream0 and stream1

camera doesn't support 25fps. this creates streaming and recording problems because player doesn't get the correct frame rate.

nicolasroche898 commented 1 month ago

jooan_wrong_fps

themactep commented 1 month ago

Open web console, check initial request and response to populate the form. Does it receive 25 fps from the streamer?

nicolasroche898 commented 1 month ago

yes it receives 25fps from the websocket upon opening the config page. tested on freshly flashed camera:

{"stream0":{"audio_enabled":true,"bitrate":3000,"buffers":2,"enabled":true,"format":"H264","fps":25,"gop":20,"height":720,"max_gop":60,"mode":"SMART","profile":2,"rotation":0,"rtsp_endpoint":"ch0","width":1280},"stream1":{"audio_enabled":true,"bitrate":1000,"buffers":2,"enabled":true,"format":"H264","fps":25,"gop":20,"height":360,"max_gop":60,"mode":"SMART","profile":2,"rotation":0,"rtsp_endpoint":"ch1","width":640},"audio":{"input_agc_compression_gain_db":0,"input_agc_enabled":false,"input_agc_target_level_dbfs":10,"input_alc_gain":"not supported on this plattform","input_bitrate":40,"input_enabled":true,"input_format":"OPUS","input_gain":25,"input_high_pass_filter":false,"input_noise_suppression":0,"input_sample_rate":16000,"input_vol":80},"image":{"ae_compensation":128,"anti_flicker":2,"backlight_compensation":null,"brightness":128,"contrast":128,"core_wb_mode":0,"defog_strength":null,"dpc_strength":null,"drc_strength":null,"highlight_depress":0,"hue":null,"max_again":160,"max_dgain":80,"running_mode":0,"saturation":128,"sharpness":128,"sinter_strength":128,"temper_strength":128,"wb_bgain":0,"wb_rgain":0}}

cat /etc/prudynt.cfg also shows: fps: 25; for stream0, not commented

nicolasroche898 commented 1 month ago

(after modifying fps from web ui) sensor fps is wrong:

# grep -e " :" -e fps /etc/prudynt.cfg 
general : 
rtsp : 
sensor : 
  fps = 25;
image : 
stream0 : 
  osd : 
  fps = 15;
stream1 : 
  osd : 
  fps = 15;
stream2 : 
  jpeg_idle_fps = 1;
  fps = 25;

for reference:

# sensor all
name:      sc1a4t
chip_id:   0xda4d
i2c_addr:  0x30
width:     1280
height:    720
min_fps:   5
max_fps:   15
version:   H20230921a
themactep commented 1 month ago

i think 25 is default fps in prudynt. @gtxaspec can we add initialized fps in exported sensor driver values? so that prudynt could get the real values from /proc/jz/sensor/fps ?

nicolasroche898 commented 3 weeks ago

still occurring on BUILD_ID="master+7328f82, 2024-10-31 06:19:03 +0000"

this causes recorder and streamer to create wrong stream advertising 25fps, which are skipping upon playback

this is a problem now also for all 30fps cams such as Wyze V3 default, ref #245