mirror of https://github.com/OpenIPC/wiki.git
				
				
				
			Update old-notes-for-resorting.md
							parent
							
								
									a01df66627
								
							
						
					
					
						commit
						8793aac4da
					
				|  | @ -161,16 +161,200 @@ if(pinfo->mem->start = 0x20250000 /* address i2c-2 */) { | ||||||
| #endif | #endif | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| # R&D related information | ## R&D related information | ||||||
| 
 | 
 | ||||||
| ##### How to [[login inside]] original firmware | ### How to [[login inside]] original firmware | ||||||
| 
 | 
 | ||||||
| ##### [[Majestic Log]] comments | ### [[Majestic Log]] comments | ||||||
| 
 | 
 | ||||||
| ##### [[DevTools]] | ### [[DevTools]] | ||||||
| 
 | 
 | ||||||
| ##### [[Docs on different IP cameras]]  | ### [[Docs on different IP cameras]]  | ||||||
| 
 | 
 | ||||||
| #### Groups in Telegram related to development: | ### Groups in Telegram related to development: | ||||||
| 
 | 
 | ||||||
| [Majestic Test Group](https://t.me/joinchat/YgHc5Bg4NOoxOTdi) | [Majestic Test Group](https://t.me/joinchat/YgHc5Bg4NOoxOTdi) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ## Tools used in Research and Development | ||||||
|  | 
 | ||||||
|  | [hisi-trace](https://github.com/OpenIPC/hisi-trace) --> tool to run Sofia inside the OpenIPC. Allows porting stock Sofia functions to the target system without loading in the original firmware. | ||||||
|  | 
 | ||||||
|  | [some tools for dissassembling](https://github.com/TekuConcept/ArmElfDisassembler) | ||||||
|  | 
 | ||||||
|  | ## Docs on currently unsupported SoC: | ||||||
|  | 
 | ||||||
|  | [[Novatek NV98515 SoC|https://github.com/hn/reolink-camera]] | ||||||
|  | 
 | ||||||
|  | Different hack & mod related to IP Cameras forums: | ||||||
|  | 
 | ||||||
|  | [[https://www.goprawn.com/]] | ||||||
|  | 
 | ||||||
|  | Below are some examples how to record video streams with various utilities. | ||||||
|  | 
 | ||||||
|  | #### gstreamer | ||||||
|  | 
 | ||||||
|  | * rtsp h264 stream: | ||||||
|  | 
 | ||||||
|  | `gst-launch-1.0 rtspsrc location=rtsp://192.168.1.10:554/stream=0 ! rtpjitterbuffer ! rtph264depay ! h264parse ! mp4mux ! filesink location=stream0_h264.mp4 -e` | ||||||
|  | 
 | ||||||
|  | * rtsp h265 stream: | ||||||
|  | 
 | ||||||
|  | `gst-launch-1.0 rtspsrc location=rtsp://192.168.1.10:554/stream=0 ! rtpjitterbuffer ! rtph265depay ! h265parse ! mp4mux ! filesink location=stream0_h265.mp4 -e` | ||||||
|  | 
 | ||||||
|  | #### ffmpeg | ||||||
|  | 
 | ||||||
|  | #### vlc | ||||||
|  | 
 | ||||||
|  | ## How to login inside original firmware | ||||||
|  | 
 | ||||||
|  | Information applicable only for XM-based camera firmware. | ||||||
|  | 
 | ||||||
|  | ### Enable telnet server | ||||||
|  | 
 | ||||||
|  | In U-Boot console: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | setenv telnetctrl 1; saveenv | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Connect with telnet | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | LocalHost login: root | ||||||
|  | Password: xmhdipc | ||||||
|  | Welcome to HiLinux. | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Also can try [other pairs](https://gist.github.com/gabonator/74cdd6ab4f733ff047356198c781f27d) | ||||||
|  | 
 | ||||||
|  | ### Optional: enable Linux kernel verbose boot (where armbenv exists) | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | # armbenv -s xmuart 0 | ||||||
|  | # reboot | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Or in case where XmEnv exists: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | # XmEnv -s xmuart 0 | ||||||
|  | # reboot | ||||||
|  | ``` | ||||||
|  | ### Enable telnet without even open your camera (remotely) | ||||||
|  | 
 | ||||||
|  | * Find proper zip with recent firmware update using [link](https://translate.google.com/translate?hl=en&sl=ru&tl=en&u=https%3A%2F%2Fwww.cctvsp.ru%2Farticles%2Fobnovlenie-proshivok-dlya-ip-kamer-ot-xiong-mai) and download it. | ||||||
|  | 
 | ||||||
|  | * Unzip it and choose proper `bin` file from several options. | ||||||
|  | 
 | ||||||
|  | * It's recommended update your camera using this stock firmware without | ||||||
|  |     modifying it. It will help understand possible issues. Use `General...` if | ||||||
|  |     not sure which option you want. | ||||||
|  | 
 | ||||||
|  | * Unzip `bin` file as it would be ordinary zip archive. | ||||||
|  | 
 | ||||||
|  | * Copy `add_xmuart.sh` from `utils` directory of the repository inside directory | ||||||
|  |     with unpacked files. | ||||||
|  | 
 | ||||||
|  | * Run `./add_xmaurt.sh` and then ensure that `u-boot.env.img` has | ||||||
|  |     `xmuart=1telnetctrl=1` near the end of file. | ||||||
|  | 
 | ||||||
|  | * Repack `bin` file adding changed `u-boot.env.img` there like this: `zip -u General_IPC_HI3516EV200_85H30AI_S38.Nat.dss.OnvifS.HIK_V5.00.R02.20200507_all.bin u-boot.env.img` | ||||||
|  | 
 | ||||||
|  | * Upgrade camera using new `bin` file | ||||||
|  | 
 | ||||||
|  | Document origin is [here](https://github.com/OpenIPC/camerasrnd/blob/master/get_telnet.md) | ||||||
|  | 
 | ||||||
|  | ## Commands to measure chip temperature on various SoCs | ||||||
|  | 
 | ||||||
|  | `Hi3516CV200 / Hi3518EV200 / Hi3518EV201` | ||||||
|  | ```sh | ||||||
|  | devmem 0x20270110 32 0x60FA0000 ; devmem 0x20270114 8  | awk '{print "CPU temperature: " ((($1)*180)/256)-40}' | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `Hi3516CV300 / Hi3518EV100` | ||||||
|  | ```sh | ||||||
|  | devmem 0x1203009C 32 0x60FA0000 ; devmem 0x120300A4 16 | awk '{print "CPU temperature: " (((($1)-125.0)/806)*165)-40}' | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `Hi3516EV200 / Hi3516EV300` | ||||||
|  | ```sh | ||||||
|  | devmem 0x120280B4 32 0xC3200000 ; devmem 0x120280BC 16 | awk '{print "CPU temperature: " (((($1)-117)/798)*165)-40}' | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `Hi3536D` | ||||||
|  | ```sh | ||||||
|  | himm 0x0120E0110 0x60320000 > /dev/null; himm 0x120E0118 | awk '{print $4}' | dd skip=1 bs=7 2>/dev/null | awk '{print "0x"$1}' | awk '{print "CPU temperature: " (($1*180)/256)-40}' | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `Hi3536C` | ||||||
|  | ```sh | ||||||
|  | himm 0x0120E0110 0x60320000 > /dev/null; himm 0x120E0118 | awk '{print $4}' | dd skip=1 bs=7 2>/dev/null | awk '{print "0x"$1}' | awk '{print "CPU temperature: " (($1-125)/806)*165-40}' | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `HI3520DV200 ` | ||||||
|  | ```sh | ||||||
|  | devmem 20060020 32 | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `Hi3516AV200` | ||||||
|  | ```sh | ||||||
|  | #PERI_PMC68 0x120a0110 (disable-->enable) | ||||||
|  | himm 0x120a0110 0 > /dev/null; | ||||||
|  | himm 0x120a0110 0x40000000 > /dev/null; | ||||||
|  | 
 | ||||||
|  | usleep 100000 | ||||||
|  | #PERI_PMC70 0x120a0118 read temperature | ||||||
|  | DATA0=$(himm 0x120a0118 0 | grep 0x120a0118) | ||||||
|  | DATA1=$(printf "$DATA0" | sed 's/0x120a0118: //') | ||||||
|  | DATA2=$(printf "$DATA1" | sed 's/ --> 0x00000000//') | ||||||
|  | 
 | ||||||
|  | let "var=$DATA2&0x3ff" | ||||||
|  | if [ $var -ge 125 -a $var -le 931 ];then | ||||||
|  |     echo `awk -v x="$var" 'BEGIN{printf "chip temperature: %f\n",(x-125)*10000/806*165/10000-40}'` | ||||||
|  | else | ||||||
|  |     echo "$var ---> invalid. [125,931]" | ||||||
|  | fi | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Direct streaming to YouTube | ||||||
|  | 
 | ||||||
|  | YouTube offers not only LiveStreming but also can record this stream. | ||||||
|  | 
 | ||||||
|  | Up to 12 hours of LiveStream can be recorded.  | ||||||
|  | 
 | ||||||
|  | Direct streaming to YouTube is possible but not currently supported by OpenIPC. | ||||||
|  | 
 | ||||||
|  | ### Direct streaming can be done with MiniHttp | ||||||
|  | 
 | ||||||
|  | Direct streaming to YouTube could be done with the help of RTMP but there are currently no plans add this protocol to the main streamer MiniHttp. | ||||||
|  | 
 | ||||||
|  | ### Direct streaming can be done with FFMPEG | ||||||
|  | 
 | ||||||
|  | There are two modes available: "old one", H264 over RTMP an a "new one", H265 over HLS.  | ||||||
|  | 
 | ||||||
|  | Both methods were not tested in production and still in development mode. See following links for details: | ||||||
|  | 
 | ||||||
|  | ### H264 over RTMP | ||||||
|  | 
 | ||||||
|  | Navigate to the compiled package [H264 over RTMP](https://github.com/ZigFisher/Glutinium/tree/master/hi35xx-ffmpeg/files) | ||||||
|  | 
 | ||||||
|  | Copy file **silence.aac** to /usr/lib/ | ||||||
|  | 
 | ||||||
|  | and file **ffmpeg** to /usr/sbin/ | ||||||
|  | 
 | ||||||
|  | Also set execution permission: | ||||||
|  | 
 | ||||||
|  | `chmod +x /usr/sbin/ffmpeg` | ||||||
|  | 
 | ||||||
|  | Run ffmpeg with the following parameters: | ||||||
|  | 
 | ||||||
|  | ffmpeg -stream_loop -1 -i /usr/lib/silence.aac -rtsp_transport udp -thread_queue_size 64 -i rtsp://127.0.0.1:554/stream=0 -c | ||||||
|  | :v copy -c:a copy -f flv rtmp://a.rtmp.youtube.com/live2/<your key> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | [H265 over HLS](https://gist.github.com/widgetii/ec275524dd621cd55774c952bee4c622) | ||||||
|  | 
 | ||||||
|  | Some build instructions: | ||||||
|  | 
 | ||||||
|  | https://github.com/ZigFisher/Glutinium/blob/master/hi35xx-ffmpeg/0_Build.sh | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue