News:

I have another forum dedicate to arcade board and handheld reverse engineering over at http://forum.retrosticks.com

Author Topic: XMeye Hi3518E-based camera module  (Read 37409 times)

  • No avatar
  • *
August 02, 2015, 04:44:37 pm
Spi id table Version 1.22
Hisilicon Spi Flash Controller V350 Device Driver, Version 1.10
Spi(cs1) ID: 0xC2 0x20 0x17 0xC2 0x20 0x17
SPI FLASH start_up_mode is 3 Bytes
Spi(cs1):
Block:64KB
Chip:8MB
Name:"MX25L6406E"
spi size: 0x8388608
chip num: 1
6 cmdlinepart partitions found on MTD device hi_sfc
Creating 6 MTD partitions on "hi_sfc":
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x0000003b0000 : "romfs"
0x0000003b0000-0x000000630000 : "user"
0x000000630000-0x000000770000 : "web"
0x000000770000-0x0000007b0000 : "custom"
0x0000007b0000-0x000000800000 : "mtd"


http://www.sendspace.com/filegroup/bHzj3Z9fWdh9tx3OWlnQ6g

Linux version 3.0.8 (xiaochangzhen@localhost.localdomain) (gcc version 4.4.1 (Hisilicon_v100(gcc4.4-290+uclibc
_0.9.32.1+eabi+linuxpthread)) ) #150 Mon Jan 5 11:19:45 CST 2015
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: hi3518
Memory policy: ECC disabled, Data cache writeback
AXI bus clock 200000000.
On node 0 totalpages: 11008
free_area_init_node: node 0, pgdat c048aa50, node_mem_map c04a6000
  Normal zone: 86 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 10922 pages, LIFO batch:1
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc:
  • 0

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 10922
Kernel command line: mem=43M console=ttyAMA0,115200 root=/dev/mtdblock1 rootfstype=cramfs mtdparts=hi_sfc:256K
(boot),3520K(romfs),2560K(user),1280K(web),256K(custom),320K(mtd)
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 43MB = 43MB total
Memory: 38832k/38832k available, 5200k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
    vmalloc : 0xc3000000 - 0xfe000000   ( 944 MB)
    lowmem  : 0xc0000000 - 0xc2b00000   (  43 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .init : 0xc0008000 - 0xc0025000   ( 116 kB)
      .text : 0xc0025000 - 0xc046d000   (4384 kB)
      .data : 0xc046e000 - 0xc048b0e0   ( 117 kB)
       .bss : 0xc048b104 - 0xc04a5c48   ( 107 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:32 nr_irqs:32 32
sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 42949ms
Console: colour dummy device 80x30
Calibrating delay loop... 218.72 BogoMIPS (lpj=1093632)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Serial: AMBA PL011 UART driver
uart:0: ttyAMA0 at MMIO 0x20080000 (irq = 5) is a PL011 rev2
uart:1: ttyAMA1 at MMIO 0x20090000 (irq = 5) is a PL011 rev2
uart:2: ttyAMA2 at MMIO 0x200a0000 (irq = 25) is a PL011 rev2
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource timer1
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NetWinder Floating Point Emulator V0.97 (double precision)
squashfs: version 4.0 (2009/01/31) Phillip Lougher
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.16)
msgmni has been set to 75
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered (default)
io scheduler cfq registered
brd: module loaded
loop: module loaded
Spi id table Version 1.22
Hisilicon Spi Flash Controller V350 Device Driver, Version 1.10
Spi(cs1) ID: 0xC2 0x20 0x17 0xC2 0x20 0x17
SPI FLASH start_up_mode is 3 Bytes
Spi(cs1):
Block:64KB
Chip:8MB
Name:"MX25L6406E"
spi size: 0x8388608
chip num: 1
6 cmdlinepart partitions found on MTD device hi_sfc
Creating 6 MTD partitions on "hi_sfc":
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x0000003b0000 : "romfs"
0x0000003b0000-0x000000630000 : "user"
0x000000630000-0x000000770000 : "web"
0x000000770000-0x0000007b0000 : "custom"
0x0000007b0000-0x000000800000 : "mtd"
Fixed MDIO Bus: probed
himii: probed
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
usbcore: registered new interface driver hwa-rc
usbmon: debugfs is not available
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
hiusb-ehci hiusb-ehci.0: HIUSB EHCI
hiusb-ehci hiusb-ehci.0: new USB bus registered, assigned bus number 1
hiusb-ehci hiusb-ehci.0: irq 15, io mem 0x100b0000
hiusb-ehci hiusb-ehci.0: USB 0.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: HIUSB EHCI
usb usb1: Manufacturer: Linux 3.0.8 ehci_hcd
usb usb1: SerialNumber: hiusb-ehci
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
hiusb-ohci hiusb-ohci.0: HIUSB OHCI
hiusb-ohci hiusb-ohci.0: new USB bus registered, assigned bus number 2
hiusb-ohci hiusb-ohci.0: irq 16, io mem 0x100a0000
usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: HIUSB OHCI
usb usb2: Manufacturer: Linux 3.0.8 ohci_hcd
usb usb2: SerialNumber: hiusb-ohci
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver hwa-hc
usbcore: registered new interface driver wusb-cbaf
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
usbcore: registered new interface driver cdc_wdm
usbcore: registered new interface driver mdc800
mdc800: v0.7.5 (30/10/2000):USB Driver for Mustek MDC800 Digital Camera
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
Registering the dns_resolver key type
registered taskstats version 1
Warning: unable to open an initial console.
VFS: Mounted root (cramfs filesystem) readonly on device 31:1.
Freeing init memory: 116K
udevd (465): /proc/465/oom_adj is deprecated, please use /proc/465/oom_score_adj instead.
Hisilicon Media Memory Zone Manager
hi3518_base: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
Hisilicon UMAP device driver interface: v3.00
pa:82b00000, va:c3300000
load sys.ko for Hi3518...OK!
load viu.ko for Hi3518...OK!
ISP Mod init!
load vpss.ko ....OK!
load venc.ko for Hi3518...OK!
load group.ko for Hi3518...OK!
load chnl.ko for Hi3518...OK!
load h264e.ko for Hi3518...OK!
load jpege.ko for Hi3518...OK!
load rc.ko for Hi3518...OK!
load region.ko ....OK!
load vda.ko ....OK!
hi_i2c init is ok!
Kernel: ssp initial ok!
acodec inited!
Hisilicon Watchdog Timer: 0.01 initialized. default_margin=60 sec (nowayout= 0, nodeamon= 1)
rtusb init rt2870 --->
usbcore: registered new interface driver rt2870
at24c16:========================================================
gpio_addr 20190004.
reset_addr 200f00b4.
gpio_level 0.
gpio_mode 3.
AW8733A init !
PHY: himii:01 - Link is Up - 100/Full
***link down status changed***.
PHY: himii:01 - Link is Down
PHY: himii:01 - Link is Up - 100/Full
Sofia uses obsolete (PF_INET,SOCK_PACKET)
svc: failed to register lockdv1 RPC service (errno 111).
lockd_up: makesock failed, error=-111
svc: failed to register lockdv1 RPC service (errno 111).


  • No avatar
  • *
August 03, 2015, 10:02:08 pm
Output from /usr/bin/Sofia executable when an invalid option is entered:

# /usr/bin/Sofia --help
LibCrypto : g_cryptotype = 2
**********************************************************************
|                      SYSTEM INFO
|                 ID:           8043420004048425
|       product type:           50H10L
|            product:           HI3518E_50H10L_S39
|      video channel:           1
|      audio channel:           1
|           alarm in:           1
|          alarm out:           1
| forward video chip:           OV9712
|           DSP chip:           HI3518E
|  analog audio mode:           voice codec
|           talkback:           voice codec
|    back video chip:           no chip
|    store interface:           SDIO
|    matrix surpport:           No
| wireless interface:           USB
|    hardware encode:           encode chip
|   hardware version:           1
|    video_interface:           BNC
|      net_interface:           Ethernet
|  hardware info len:           8
**********************************************************************
LIBDVR: Complied at Mar 12 2015 10:06:50 SVN:953
LIBFVIDEO: Complied at Mar 16 2015 09:35:48 SVN:1186
LIBHICAP: Complied at Feb  4 2015 15:57:10 SVN:2311
GENERATION: 0, PRODUCTION: 2, MAIN_SERIES: 0, HYPO_SERIES: 5, OEM_TYPE: 0
SLAVE_CHIP_NUM is 0
VI_CHN_NUM_HOST_CHIP is 1
VI_CHN_NUM_PER_SLAVE_CHIP is 0
AI_CHN_NUM_HOST_CHIP is 1
AI_CHN_NUM_PER_SLAVE_CHIP is 0
======================
VIDEO_SAMPLE_CHIP_1 = 0,VIDEO_SAMPLE_CHIP_2 = 0,
HWID_MAIN_SERIES_TYPE = 0
DVR/MVR info: TOTAL_VI_CHN_NUM: 1, HDEC_CHN_NUM: 4, HVR_TOTAL_CHN_NUM: 1, VDEC_CHN_NUM: 4
AVdec - PlayDecodeInit(5413): enter
SampleSysInit enter, Feb  4 2015, 15:57:10
=>ibwlan version: 1.0.0 - Complie time Mar  5 2015 15:17:57, wpa-psk
LIBISP:50H10L: Complied at Jan 20 2015 19:16:49 SVN:61

Command not found

Here are all of the commands:

Sofia --upgrade [file]        upgrade with file 'file'
Sofia --burnHWID [id]         burn hwid
Sofia                         start the Sofia

#


Finally, running strings against /usr/bin/Sofia and searching for 'snap' reveals these embedded commands / help.  I suspect these are artifacts of some earlier snapshot functionality or maybe Hi3516 features?

snap -s show snap status
snap -d 0 set debug status[0] or [1]
snap -p path set debug path
snap -g chn path get a pic
set snap debug status:%s
set snap debug path:%s
snap
=====>>snap fps:%d
snap_%d.jpg
AVenc - %s(%d): save snap picture failed!

« Last Edit: August 03, 2015, 10:05:24 pm by VorlonFrog »

  • ***
August 04, 2015, 04:27:03 am
You can access the Sofia Interface easily via port 9527 and it has many more commands beside the few you show here.



Complete details for accessing the Sofia interface for this Hi3518E camera module:

http://www.ipcamtalk.com/showthread.php?1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)&p=19789&viewfull=1#post19789

Very Very detailed information about this Hi3518E camera module as well as all the other many different camera modules made by this same manufacturer can be found at this link below as well.

Including ("All FREE!"):

Telnet password.

Many links and .zip files such as developer tools.

Camera reset utility.

Serial recovery instructions and their files to recover this Hi3518E camera module.

Links to ALL the manufacturers many different and free applications and firmware download pages for all these different camera modules.

Links to the manufactures Wiki and forum and documentation on all the pin outs for all their different camera modules.

http://www.ipcamtalk.com/showthread.php?1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)&p=19499&viewfull=1#post19499

You can also get this Hi3518E camera module already to use in the mini camera shown below which is a 1 mp and 1280*720 HD camera for only $17.65 U.S ("Free Shipping") here is the order page and full specifications:



http://www.buyincoins.com/item/54494.html#.VcB0H86D7IU

The Network IP Camera using the Hi3518E camera module shown above, is so small you could call it a hidden Network IP Camera because it's hardly noticeable.

Notes:

This mini Network IP Camera shown above is one of the cheapest, functional and dependable that I have found, But the Hi3518E based camera above is a wired Ethernet only camera without wireless. It does not use IR-CUT or have IR lights or support PoE. But it's a great price and can be used and/or mounted virtually anywhere.

You will also need to purchase/use a 12V DC 1 amp power supply for the camera above. Which can be purchased anywhere. You may even have one laying around.

You can also purchase one from the same seller as the mini camera shown above if needed for $2.30 U.S. ("Free Shipping") here:

http://www.buyincoins.com/item/38674.html#.VcCAh86D7IU

Note: The cord on the above 12V DC 1 amp power supply is short. So depending where you are going to mount your camera you may want to find a similar power supply with a longer cord.

You can also purchase a RT3070 WiFi board for about $10.00 U.S. for this Hi3518E camera module and even the mini camera shown above and with a special firmware version make this same Hi3518E camera module or the mini camera shown above support both wired and wireless.

Note: Most RT3070 Wifi boards won't fit in the container for the mini camera shown above so you would need to run wires from the RT3070 WiFi board into the mini camera container and then connect those wires to the mini cameras Hi3518E camera module board and create a housing/container for the RT3070 WiFi board and the WiFi antenna it will use.

You can also build and make your own custom Network IP Cameras by using the this Hi3518E camera module or other camera modules and boards manufactured by this same manufacturer. Which can support IR-CUT and PoE. See the links above for more details.

The possibilities are endless for designing and building your own custom Network IP Cameras using this manufacturers Network IP Camera modules and boards while doing it extremely cheap!

Don

« Last Edit: August 04, 2015, 07:47:17 am by TheUberOverLord »

  • No avatar
  • *
August 04, 2015, 08:41:06 am
Quote
You can also build and make your own custom Network IP Cameras by using the this Hi3518E camera module or other camera modules and boards manufactured by this same manufacturer. Which can support IR-CUT and PoE. See the links above for more details.

The possibilities are endless for designing and building your own custom Network IP Cameras using this manufacturers Network IP Camera modules and boards while doing it extremely cheap!

Don
Thanks for that extremely helpful and informational post, Don!!  I agree, these little jewels are limited not by the hardware, but only by the default firmware provided.  I'll have to grab one of the TOP-201 cams to see how the firmware differs from the bare modules available.  I understand they removed the wifi drivers in a later release of the firmware, but my OEM firmware was built in March 2015 and still includes them.

  • ***
August 05, 2015, 06:00:39 pm
Quote
You can also build and make your own custom Network IP Cameras by using the this Hi3518E camera module or other camera modules and boards manufactured by this same manufacturer. Which can support IR-CUT and PoE. See the links above for more details.

The possibilities are endless for designing and building your own custom Network IP Cameras using this manufacturers Network IP Camera modules and boards while doing it extremely cheap!

Don
Thanks for that extremely helpful and informational post, Don!!  I agree, these little jewels are limited not by the hardware, but only by the default firmware provided.  I'll have to grab one of the TOP-201 cams to see how the firmware differs from the bare modules available.  I understand they removed the wifi drivers in a later release of the firmware, but my OEM firmware was built in March 2015 and still includes them.

You are very welcome.

If what you're calling OEM firmware is displayed in your camera as:



Note: The hardware version of your camera module is composed of the digits shown in the above image surrounded by the red box. In the above example, the hardware version of the above camera or camera modules firmware, currently installed. Shows it's a 6510 hardware version camera module or camera from this manufacturer.

Or what you're calling your OEM firmware filename is:

General_HZXM_IPC_HI3518E_50H10L_S38_RT3070_V4.02.R12.20150317_ALL.bin

Then in fact. This firmware is stock firmware created by the manufacturer and not any OEM. It's also the very last WiFi RT3070 board stock firmware created by the manufacturer ONLY for their Hi3518E 6510 hardware camera module board.

It should be noted that many camera builders who create cameras and sell them to others that use this manufacturers camera modules use the manufacturers stock firmware and don't create their own custom firmware. Some do, but many don't.

Here is the download link for the very last firmware that works ONLY with the 6510 version of this manufacturers hardware version and RT3070 WiFi board. Which is stock firmware created by the boards manufacturer and not an OEM:

http://www.ipcamtalk.com/showthread.php/1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)?p=39726&viewfull=1#post39726

To verify what the current hardware version of your camera module or camera is which is produced by this hardware manufacturer. Since there are many different camera modules produced by this manufacturer. You can compare your system firmware version ("Using the method shown above") in the camera module or camera and use the link below to see what your cameras module or cameras hardware versions most current firmware version is and download the firmware for it if you choose, as well as get the pin outs for your camera modules hardware board version ("See example below"):

http://www.ipcamtalk.com/showthread.php/1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)?p=19499&viewfull=1#post19499

Notes:

The firmware download links located at the above link always will point to the most current stock firmware created by the manufacturer, for any and all of the camera modules or cameras produced by this manufacturer.

Some of these different camera module versions support connections for Audio In/Out, Alarm Input/Output, LED indicator lights, USB ("host") WiFi connections to support after market WiFi daughter boards, IR-Cut, IR LED power connections, PoE +48V DC input power connections, +12V DC power input and +5V DC power out connections. Which you may want to use.

But obviously, you need to know if specific connections are present for specific hardware version camera module boards produced by this manufacturer and where those connections are located on that camera modules board first, before doing so.

Example pin outs: The 6510 camera module:

Hass 38 single-board 6510 camera module interface specification

* Pin 1 is shown in green in the image of the board below. For connectors P1-P5

P1

1 ICR ICR signal control
2 ICR ICR signal control

P2

1 infrared light control signal input infrared light control ICR
2 GND Ground
3 NC idle feet

P3

1 +48 POE positive
2 + 48_GND POE negative
3 GND ground
4 + 12V_IN + 12V

P4

1 ETHRX- ETHERNET Signal
2 ETHRX + ETHERNET Signal
3 LEDLINKA speed indicator
4 ETHTX- ETHERNET Signal
5 ETHTX + ETHERNET Signal
6 NET_LED_ACT connection indicator

P5

1 GND Ground
2 USB_DP USB differential signal
3 USB_DM USB differential signal
4 + 5V 5V power supply
5 AC_OUT audio output
6 AC_LINE audio input
7 audio analog-ground
8 Alarm-in alarm input

Image shown below is larger than actual size of the 6510 camera module board


it's possible, as one example of many. To create your own connection for pin 8 ("Alarm In") located on P5, for a opened/closed alarm input from some other device ("Like a infrared sensor") with the 6510 camera module version. That can be used to trigger camera alarms vs. using the cameras internal motion detection which might have more false-positives than a infrared sensor would.

While the stock mini-camera 6510 hardware version boards produced by this manufacturer don't have a formal connector where P5 is. Some camera builders who use the 6510 camera module in their cameras which use the 6510 camera module they sell. May have added a connector for P5. In any case, even with the formal connector missing for P5. All the pins of P5 work as shown above.

Some camera builders that sell their own cameras using one of the camera modules produced by this manufacturer might not even externally expose all or any of these connections on their cameras. But that doesn't mean that you can't access or customize that camera simply because they chose not to expose those connections on the outside of their camera housings when you purchased your camera.

For example: The Top-201 Network IP Camera ("Shown in my prior post here") which uses the 6510 camera module hardware version board. Does not expose any of these pin out connections shown above. Minus the +12V DC input and Ethernet connection. But, all the other connections shown above in the 6510 pin outs, are still present and accessible, on that cameras 6510 camera modules board.

Don
« Last Edit: August 06, 2015, 10:38:23 am by TheUberOverLord »

  • No avatar
  • *
August 06, 2015, 01:27:39 pm
While the stock mini-camera 6510 hardware version boards produced by this manufacturer don't have a formal connector where P5 is. Some camera builders who use the 6510 camera module in their cameras which use the 6510 camera module they sell. May have added a connector for P5. In any case, even with the formal connector missing for P5. All the pins of P5 work as shown above.

Some camera builders that sell their own cameras using one of the camera modules produced by this manufacturer might not even externally expose all or any of these connections on their cameras. But that doesn't mean that you can't access or customize that camera simply because they chose not to expose those connections on the outside of their camera housings when you purchased your camera.

The P5 connector and matching cable are available from CylonG at AliExpress.com.

  • No avatar
  • *
August 07, 2015, 08:21:02 pm
One of the things I like about this camera is the kernel modules are all external files, and not embedded within the kernel.  Here's a listing from directory /usr/lib/modules:


# cd /usr/lib/modules
# ls -la
drwxrwxr-x    3 556      556            734 Mar 17 01:44 .
drwxrwxr-x    3 556      556             67 Mar 17 01:44 ..
-rwxr-xr-x    1 556      556          11658 Mar 17 01:44 acodec.ko
-rwxr-xr-x    1 556      556          11401 Mar 17 01:44 at24c.ko
-rwxr-xr-x    1 556      556           5723 Mar 17 01:44 aw8733a.ko
-rwxr-xr-x    1 556      556           1815 Mar 17 01:44 clkcfg_hi3518.sh
drwxr-xr-x    2 556      556            179 Mar 17 01:44 extdrv
-rwxr-xr-x    1 556      556          11996 Mar 17 01:44 hi3518_adec.ko
-rwxr-xr-x    1 556      556          35343 Mar 17 01:44 hi3518_aenc.ko
-rwxr-xr-x    1 556      556          52436 Mar 17 01:44 hi3518_ai.ko
-rwxr-xr-x    1 556      556          49004 Mar 17 01:44 hi3518_ao.ko
-rwxr-xr-x    1 556      556          56220 Mar 17 01:44 hi3518_base.ko
-rwxr-xr-x    1 556      556          49593 Mar 17 01:44 hi3518_chnl.ko
-rwxr-xr-x    1 556      556          76550 Mar 17 01:44 hi3518_dsu.ko
-rwxr-xr-x    1 556      556          72408 Mar 17 01:44 hi3518_group.ko
-rwxr-xr-x    1 556      556         155732 Mar 17 01:44 hi3518_h264e.ko
-rwxr-xr-x    1 556      556          11957 Mar 17 01:44 hi3518_isp.ko
-rwxr-xr-x    1 556      556          44686 Mar 17 01:44 hi3518_ive.ko
-rwxr-xr-x    1 556      556          56886 Mar 17 01:44 hi3518_jpege.ko
-rwxr-xr-x    1 556      556         172805 Mar 17 01:44 hi3518_rc.ko
-rwxr-xr-x    1 556      556          57777 Mar 17 01:44 hi3518_region.ko
-rwxr-xr-x    1 556      556          20523 Mar 17 01:44 hi3518_sio.ko
-rwxr-xr-x    1 556      556          51046 Mar 17 01:44 hi3518_sys.ko
-rwxr-xr-x    1 556      556         142216 Mar 17 01:44 hi3518_tde.ko
-rwxr-xr-x    1 556      556          74372 Mar 17 01:44 hi3518_vda.ko
-rwxr-xr-x    1 556      556          86354 Mar 17 01:44 hi3518_venc.ko
-rwxr-xr-x    1 556      556         224270 Mar 17 01:44 hi3518_viu.ko
-rwxr-xr-x    1 556      556         190851 Mar 17 01:44 hi3518_vpss.ko
-rwxr-xr-x    1 556      556           9126 Mar 17 01:44 hi_rtc.ko
-rwxr-xr-x    1 556      556          18680 Mar 17 01:44 hidmac.ko
-rwxr-xr-x    1 556      556          84712 Mar 17 01:44 hifb.ko
-rwxr-xr-x    1 556      556           2547 Mar 17 01:44 hiuser.ko
-rwxr-xr-x    1 556      556           5314 Mar 17 01:44 load3518
-rwxr-xr-x    1 556      556           1137 Mar 17 01:44 lowpower.sh
-rwxr-xr-x    1 556      556          30133 Mar 17 01:44 mmz.ko
-rwxr-xr-x    1 556      556           4115 Mar 17 01:44 pinmux_hi3518.sh
-rwxr-xr-x    1 556      556           1462 Mar 17 01:44 sysctl_hi3518.sh
-rwxr-xr-x    1 556      556          10089 Mar 17 01:44 wdt.ko
#

Here's the output of lsmod which shows the inter-relationships among these modules:

# lsmod
Module                  Size  Used by
aw8733a                 1481  0
hi_rtc                  4371  0
rt3070sta             655530  0
wdt                     4229  2
hi3518_adec            15867  2
hi3518_aenc            43404  3
hi3518_ao              39007  2
hi3518_ai              41050  2
hi3518_sio             12310  3 hi3518_ao, hi3518_ai
hidmac                 13241  2 hi3518_ao, hi3518_ai
acodec                  7444  0
ssp_ad9020              4993  0
pwm                     1489  0
hi_i2c                  3792  0
hi3518_vda            172345  1
hi3518_region          51475  2
hi3518_rc             158631  1
hi3518_jpege           48265  1
hi3518_h264e          132627  1
hi3518_chnl            39893  1
hi3518_group          178678  4
hi3518_venc            77916  7 hi3518_jpege, hi3518_h264e
hi3518_vpss           208726  4
hi3518_isp              6366  4 ssp_ad9020, hi_i2c
hi3518_viu            177568  3
hi3518_dsu            129270  1
hi3518_tde            117632  1 hi3518_dsu
hi3518_sys             40801  3 hi3518_viu
hi3518_base            43364 19 hi3518_adec, hi3518_aenc, hi3518_ao, hi3518_ai, hi3518_sio, hi3518_vda,
                                hi3518_region, hi3518_rc, hi3518_jpege, hi3518_h264e, hi3518_chnl,
                                hi3518_group, hi3518_venc, hi3518_vpss, hi3518_isp, hi3518_viu,
                                hi3518_dsu, hi3518_sys
mmz                    19713  5 hi3518_aenc, hi3518_h264e, hi3518_tde, hi3518_base
#


Since they unnecessarily load the USB wifi module, we can unload it to free up some memory:

# free
              total         used         free       shared      buffers
  Mem:        38948        37692         1256            0         1580
 Swap:            0            0            0
Total:        38948        37692         1256
#
#
# rmmod rt3070sta
#
# free
              total         used         free       shared      buffers
  Mem:        38948        37056         1892            0         1580
 Swap:            0            0            0
Total:        38948        37056         1892
#

« Last Edit: August 07, 2015, 08:23:48 pm by VorlonFrog »

  • No avatar
  • *
August 07, 2015, 08:35:45 pm
Interesting things in the /usr/lib/modules directory are some shell scripts:

# cd /usr/lib/modules
# ls -la *.sh
-rwxr-xr-x    1 556      556           1815 Mar 17 01:44 clkcfg_hi3518.sh
-rwxr-xr-x    1 556      556           1137 Mar 17 01:44 lowpower.sh
-rwxr-xr-x    1 556      556           4115 Mar 17 01:44 pinmux_hi3518.sh
-rwxr-xr-x    1 556      556           1462 Mar 17 01:44 sysctl_hi3518.sh
#


Each of these call specialized utilities that are wrapped within the file /usr/bin/btools:

# cd /bin
# ls -la | grep btools
-rwxr-xr-x    1 556      44           12616 Jan  1  1970 btools
lrwxrwxrwx    1 556      44               6 Jan  1  1970 himc -> btools
lrwxrwxrwx    1 556      44               6 Jan  1  1970 himd -> btools
lrwxrwxrwx    1 556      44               6 Jan  1  1970 himd.l -> btools
lrwxrwxrwx    1 556      44               6 Jan  1  1970 himm -> btools
#




  • ***
August 07, 2015, 09:15:05 pm
Get All My IP Camera Developer Examples Bundled Together With One Hour Of One-On-One Support To Implement Them Click Here!

This free tool has many purposes. It supports ALL Top-201 model cameras and Top-201 NVR's/DVR's currently being sold.

The end-goals of creating this tool. Was to make sure, that it was as simple and as painless as possible, to setup as well as maintain this tool. To provide as much detail as possible as to the health of your Top-201 cameras and Top-201 NVR's/DVR's and your local network equipment. While providing as many different features and other uses, as possible, at the same time.



This free tool, really does belong in your toolbox of tools, for ALL your Top-201 cameras and Top-201 NVR's/DVR's.

Note: FFmpeg ("Which this free tool includes and uses") often produces and contains much more log detail, than VLC does. Which is especially important to have when troubleshooting camera throughput issues and/or when checking the health of your Top-201 cameras and/or Top-201 NVR's/DVR's and your local network.

Example log output produced by this tool using a 6510 hardware version camera module made by this manufacturer ("Using a Top-201 camera") while recording a RTSP video stream using the Main 1280x720 video/audio stream. For a 10 second recording window. The tool supports doing the same for RTSP Sub video streams as well. The recording window time is a configuration value you can change in the tool to be the value of your choice:

Code: [Select]
ffmpeg started on 2015-08-08 at 07:20:16
Report written to "H264RecordMainStreamAudioVideoAvi.log"
Command line:
"..\\ffmpeg.exe" -rtsp_transport tcp -i "rtsp://192.168.1.10:554/user=YourUserId&password=YourPassword&channel=1&stream=0.sdp" -acodec copy -vcodec copy -force_key_frames "expr:gte(t,n_forced*5)" -t 10 -report -y h264_MainStreamAudioVideo.avi
ffmpeg version N-68102-g2db2948 Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov 29 2014 03:01:59 with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.101 / 56. 15.101
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport' with argument 'tcp'.
Reading option '-i' ... matched as input file with argument 'rtsp://192.168.1.10:554/user=YourUserId&password=YourPassword&channel=1&stream=0.sdp'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-force_key_frames' ... matched as option 'force_key_frames' (force key frames at specified timestamps) with argument 'expr:gte(t,n_forced*5)'.
Reading option '-t' ... matched as option 't' (record or transcode "duration" seconds of audio/video) with argument '10'.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'h264_MainStreamAudioVideo.avi' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file rtsp://192.168.1.10:554/user=YourUserId&password=YourPassword&channel=1&stream=0.sdp.
Successfully parsed a group of options.
Opening an input file: rtsp://192.168.1.10:554/user=YourUserId&password=YourPassword&channel=1&stream=0.sdp.
[rtsp @ 028623e0] SDP:
v=0

o=- 38990265062388 38990265062388 IN IP4 192.168.1.10

s=RTSP Session

c=IN IP4 192.168.1.10

t=0 0

a=control:*

a=range:npt=0-

m=video 0 RTP/AVP 96

a=rtpmap:96 H264/90000

a=range:npt=0-

a=framerate:0S

a=fmtp:96 profile-level-id=4d001f; packetization-mode=1; sprop-parameter-sets=Z00AH5WoFAFuhAAAAwAEAAADALIQ,aO48gA==

a=framerate:25

a=control:trackID=3


[rtsp @ 028623e0] video codec set to: h264
[rtsp @ 028623e0] RTP Profile IDC: 4d Profile IOP: 0 Level: 1f
[rtsp @ 028623e0] RTP Packetization Mode: 1
[rtsp @ 028623e0] Extradata set to 029bd120 (size: 33)!
[rtsp @ 028623e0] hello state=0
[h264 @ 029bcbc0] unknown SEI type 229
[h264 @ 029bcbc0] unknown SEI type 229
[rtsp @ 028623e0] All info found
Input #0, rtsp, from 'rtsp://192.168.1.10:554/user=YourUserId&password=YourPassword&channel=1&stream=0.sdp':
  Metadata:
    title           : RTSP Session
  Duration: N/A, start: 0.189100, bitrate: N/A
    Stream #0:0, 28, 1/90000: Video: h264 (Main), yuv420p, 1280x720, 11 fps, 25 tbr, 90k tbn, 22 tbc
Successfully opened the file.
Parsing a group of options: output file h264_MainStreamAudioVideo.avi.
Applying option acodec (force audio codec ('copy' to copy stream)) with argument copy.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
Applying option force_key_frames (force key frames at specified timestamps) with argument expr:gte(t,n_forced*5).
Applying option t (record or transcode "duration" seconds of audio/video) with argument 10.
Successfully parsed a group of options.
Opening an output file: h264_MainStreamAudioVideo.avi.
Successfully opened the file.
Output #0, avi, to 'h264_MainStreamAudioVideo.avi':
  Metadata:
    INAM            : RTSP Session
    ISFT            : Lavf56.15.101
    Stream #0:0, 0, 1/22: Video: h264 (H264 / 0x34363248), yuv420p, 1280x720, q=2-31, 11 fps, 22 tbn, 22 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 0, current: -3; changing to 1. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 1, current: -2; changing to 2. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 2, current: -2; changing to 3. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 3, current: -1; changing to 4. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 4, current: 0; changing to 5. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 5, current: 1; changing to 6. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 6, current: 2; changing to 7. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 7, current: 3; changing to 8. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 8, current: 4; changing to 9. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 9, current: 5; changing to 10. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 10, current: 6; changing to 11. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 11, current: 6; changing to 12. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 12, current: 7; changing to 13. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 13, current: 8; changing to 14. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 14, current: 9; changing to 15. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 15, current: 10; changing to 16. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 16, current: 11; changing to 17. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 17, current: 12; changing to 18. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 18, current: 13; changing to 19. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 19, current: 13; changing to 20. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 20, current: 14; changing to 21. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 21, current: 15; changing to 22. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 22, current: 16; changing to 23. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 23, current: 17; changing to 24. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 24, current: 18; changing to 25. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 25, current: 19; changing to 26. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 26, current: 20; changing to 27. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 27, current: 20; changing to 28. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 28, current: 21; changing to 29. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 29, current: 22; changing to 30. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 30, current: 23; changing to 31. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 31, current: 24; changing to 32. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 32, current: 25; changing to 33. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 33, current: 26; changing to 34. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 34, current: 27; changing to 35. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 35, current: 28; changing to 36. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 36, current: 28; changing to 37. This may result in incorrect timestamps in the output file.
frame=   38 fps=0.0 q=-1.0 size=     480kB time=00:00:01.72 bitrate=2274.8kbits/s   
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 37, current: 29; changing to 38. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 38, current: 30; changing to 39. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 39, current: 31; changing to 40. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 40, current: 32; changing to 41. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 41, current: 33; changing to 42. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 42, current: 34; changing to 43. This may result in incorrect timestamps in the output file.
frame=   44 fps= 38 q=-1.0 size=     551kB time=00:00:02.00 bitrate=2258.9kbits/s   
[NULL @ 029bcbc0] unknown SEI type 229
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 43, current: 36; changing to 44. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 44, current: 38; changing to 45. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 45, current: 40; changing to 46. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 46, current: 42; changing to 47. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 47, current: 44; changing to 48. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 48, current: 46; changing to 49. This may result in incorrect timestamps in the output file.
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 49, current: 48; changing to 50. This may result in incorrect timestamps in the output file.
frame=   51 fps= 30 q=-1.0 size=     676kB time=00:00:02.31 bitrate=2388.9kbits/s   
[avi @ 029bd420] Non-monotonous DTS in output stream 0:0; previous: 50, current: 50; changing to 51. This may result in incorrect timestamps in the output file.
frame=   57 fps= 25 q=-1.0 size=     750kB time=00:00:02.77 bitrate=2217.0kbits/s   
frame=   63 fps= 23 q=-1.0 size=     824kB time=00:00:03.31 bitrate=2034.5kbits/s   
frame=   69 fps= 21 q=-1.0 size=     896kB time=00:00:03.86 bitrate=1899.7kbits/s   
frame=   75 fps= 19 q=-1.0 size=     966kB time=00:00:04.40 bitrate=1795.4kbits/s   
frame=   81 fps= 18 q=-1.0 size=    1038kB time=00:00:04.95 bitrate=1715.6kbits/s   
frame=   87 fps= 17 q=-1.0 size=    1109kB time=00:00:05.50 bitrate=1651.7kbits/s   
[NULL @ 029bcbc0] unknown SEI type 229
frame=   93 fps= 17 q=-1.0 size=    1219kB time=00:00:06.04 bitrate=1652.1kbits/s   
frame=   99 fps= 16 q=-1.0 size=    1294kB time=00:00:06.59 bitrate=1608.7kbits/s   
frame=  105 fps= 16 q=-1.0 size=    1369kB time=00:00:07.13 bitrate=1571.7kbits/s   
frame=  111 fps= 15 q=-1.0 size=    1443kB time=00:00:07.68 bitrate=1539.0kbits/s   
frame=  117 fps= 15 q=-1.0 size=    1518kB time=00:00:08.22 bitrate=1511.3kbits/s   
frame=  123 fps= 15 q=-1.0 size=    1591kB time=00:00:08.77 bitrate=1485.3kbits/s   
frame=  129 fps= 15 q=-1.0 size=    1663kB time=00:00:09.31 bitrate=1462.0kbits/s   
[NULL @ 029bcbc0] unknown SEI type 229
frame=  135 fps= 14 q=-1.0 size=    1774kB time=00:00:09.86 bitrate=1473.0kbits/s   
No more output streams to write to, finishing.
frame=  137 fps= 14 q=-1.0 Lsize=    1802kB time=00:00:10.04 bitrate=1469.6kbits/s   
video:1791kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.607107%
Input file #0 (rtsp://192.168.1.10:554/user=YourUserId&password=YourPassword&channel=1&stream=0.sdp):
  Input stream #0:0 (video): 138 packets read (1847011 bytes);
  Total: 138 packets (1847011 bytes) demuxed
Output file #0 (h264_MainStreamAudioVideo.avi):
  Output stream #0:0 (video): 137 packets muxed (1834274 bytes);
  Total: 137 packets (1834274 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0503fc60] Statistics: 10 seeks, 150 writeouts

Because of the Real-Times statistics and the logs storing them, while recording video, from your Top-201 cameras or Top-201 NVR's/DVR's. You can instantly see how replacing a potential flaky Ethernet cable with another one during troubleshooting or adjusting a Top-201 cameras wireless antenna or moving your wireless Router/AP to a slightly higher location can increase the FPS ("Frames Per Second") rates, bits and bytes per second rates and decrease dwell times ("Time between data being sent from your Top-201 cameras and Top-201 NVR's/DVR's) for your Top-201 cameras or Top-201 NVR's/DVR's.

So that your can tune your Top-201 cameras and/or Top-201 NVR's/DVR's and your local network equipment to operate as efficiently and effectively as possible and faster, than it currently does now.

You can easily, compare all these measurements to see the differences, of when your camera is in wired mode vs. wireless mode. If you have more than one Top-201 camera or NVR/DVR, you can compare Top-201 cameras or NVR's/DVR's in wired or wireless modes to each other as well.

You now also have quick and easy ways to record your Top-201 cameras, view and/or hear your cameras in Real-Time. Besides simply using the standard camera interface that comes with the Top-201 cameras and DVR/NVR. Plus you get detailed statistics while doing so to show how healthy your Top-201 cameras or NVR'S/DVR's and your local network is. Anytime you choose.

All of the camera recording files produced by this tool, can be played using Windows Media player, VLC and ffplay ("Which is included in this download") and many other popular Media Players.

This tool shows how to instantly record both audio and video, video only and audio only in, .asf, .avi and .wav file formats. As well as pull snapshots using RTSP video streams from both Main and Sub video streams. For All Top-201 camera models and all Top-201 NVR/DVR models.

Many people are not aware that VLC is based on ffmpeg. This is the base and foundation, of this tool.

This tool also re-uses the same files for recording and for logging. No need to have tons of disk space tied up by old files, yet to be deleted.

This allows you to review the logs and see what your FPS ("Frames Per Second") rates are for your Top-201 cameras or NVR's/DVRs. What the bit rates are for your Top-201 cameras and Top-201 NVR's/DVR's. What time delays your Top-201 cameras or Top-201 NVR's/DVR's may have sending information to your devices. So that you can tweak your Top-201 cameras or Top-201 NVR/DVR and your local network, to be the best they can be.

While also, at the same time, allowing you to instantly record your Top-201 cameras or Top-201 DVR's/NVR's, as needed, with no delays. Simply a double click of your mouse for any combination of audio with video, video only, audio only, in .avi, .asf and .wav file formats. As well as pull snapshots using RTSP video streams from both Main and Sub video streams.

Once you do the initial configuration. Which takes seconds, for this tool. All the features supported by this tool, require simply using a double click of your mouse, to invoke any of the features, this tool supports.

No clutter of files, waiting to be deleted. Only the most recent recordings and logs are saved, based on the type of recording and the file format chosen to save that recording.

So you can have the most recent video with audio, video only and audio only recordings in .asf, .avi and .wav file formats. On a per camera basis.

There are also .bat files that use ffplay which is a part of ffmpeg, to play the files you recorded, again with simply a double click of your mouse and you also can view and/or hear your Top-201 cameras in real-time, with audio and video, video only and audio only. Again, by a double click of your mouse. This works with all Top-201 cameras and Top-201 NVR's/DVR's.

If you have multiple Top-201 cameras, you can copy the "Top-201" folder ("In the .zip file below") and name it to another folder name like "Front Door" or "Back Yard" or whatever name you wish to reference your Top-201 cameras as and follow the instructions in each folder to configure the folder to use for each of your other Top-201 cameras easily. This allows you to use this tool quickly for as many Top-201 cameras or Top-201 NVR's/DVR's you may have.

There is nothing else to download or install. Everything is included with this free tool. Please read the ReadThisFirst.txt file, in the primary folder and then go to the Top-201 folder and read the ReadThisFirst.txt file located in that folder, for additional instructions.

While this free tool is setup for Windows systems. It's important to note, there are versions of ffmpeg that can also be downloaded for Mac and Linux Operating systems. So you can get some ideas for those operating systems. By reviewing how all this was done. These same concepts used in this tool, can also be used for those Operating Systems, by using their command files or scripts. More details at the link below:

http://ffmpeg.org/download.html

Setup is both extremely fast and easy to do. Generally, less than 1 minute per Top-201 camera or camera on a Top-201 NVR/DVR.

Simply add your Top-201 cameras or Top-201 NVR/DVR Local IP Address and RTSP port or ISP IP Address and RTSP port or DDNS and RTSP port for your Top-201 camera or NVR/DVR as well as a user and password for your Top-201 camera or Top-201 NVR/DVR, which can be any user with the proper RTSP access permissions.

Then enter the Top-201 cameras or NVR's/DVR's channel for a Top-201 camera that you wish to access via RTSP. Optionally, you can change the default length for recordings, which defaults to 1 minute. But you can make that shorter or longer. That's it. This tool is ready to use, in seconds.

To download this free tool and get started. Please click the below download link:

http://www.saveontelephonebills.com/camera/ffmpegForTop-201CamerasAndNvrsDvrsV11.zip

Note: When you access your Top-201 cameras or NVR's/DVR's using any of the .bat files this tool uses, you may need to check your firewall for permission.

If you have any questions, comments or suggestions about this tool. Please post them here.

More here, about additional free tools:

http://107.170.59.150

Don
« Last Edit: March 12, 2016, 12:26:35 am by TheUberOverLord »

  • No avatar
  • *
August 08, 2015, 07:08:27 am
I'm not certain what any of that has to do with 'Firmware', but nevertheless...

hi3518_base            43364 19 hi3518_adec, hi3518_aenc, hi3518_ao, hi3518_ai, hi3518_sio, hi3518_vda,
                                hi3518_region, hi3518_rc, hi3518_jpege, hi3518_h264e, hi3518_chnl,
                                hi3518_group, hi3518_venc, hi3518_vpss, hi3518_isp, hi3518_viu,
                                hi3518_dsu, hi3518_sys
mmz                    19713  5 hi3518_aenc, hi3518_h264e, hi3518_tde, hi3518_base


and from the 'dmesg' output:

Hisilicon Media Memory Zone Manager
hi3518_base: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint


So HiSilicon's 'mmz' module manages memory in some way, several key Hi3518 encoder kernel objects depend on it (memory mapping the OV712 CMOS sensor, probably), and then many, many other kernel objects depend on the proprietary module 'hi3518_base' to access their kernel-to-hardware interfaces.


  • No avatar
  • *
August 08, 2015, 08:41:53 am
Continuing with the Linux startup sequencing...

Here are the relevant lines from /etc/inittab, the BusyBox startup configuration file. Notice they've disabled the 'dnode' script, because they've embedded a call to it within the /etc/init.d/rcS startup script. They also create a root shell on the serial console port ttyS000. 

#::sysinit:/etc/init.d/dnode
::sysinit:/etc/init.d/rcS
::respawn:/sbin/getty -L ttyS000 115200 vt100 -n root -I "Auto login as root ..."
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a



And here is the script /etc/init.d/rcS which brings up the system.  They start the udev software, mount the file systems from MTD flash ram, load additional kernel modules, and begin starting daemon processes. The final action performed is to load/start the Sofia camera executable.

#! /bin/sh

/etc/init.d/dnode

udevd --daemon
udevstart

mount -t squashfs /dev/mtdblock2 /usr
mount -t squashfs /dev/mtdblock3 /mnt/web
mount -t squashfs /dev/mtdblock4 /mnt/custom
mount -t jffs2 /dev/mtdblock5 /mnt/mtd

mount -t ramfs  /dev/mem        /var/
mkdir -p /var/tmp
mount -t ramfs  /dev/mem2       /utils
mount -t usbfs usbfs /proc/bus/usb/

mkdir -p /mnt/mtd/Config /mnt/mtd/Log /mnt/mtd/Config/ppp /mnt/mtd/Config/Json
if [ -f /mnt/mtd/Config/ppp/3gdigal ]; then
        chmod 777 /mnt/mtd/Config/ppp/3gdigal
fi

/usr/etc/loadmod
netinit
cp /bin/upgraded /utils/ -f
/utils/upgraded &
telnetd &
sysinit &
searchIp &
wlandaemon &
route_switch &

/bin/pppd pty /etc/ppp/pppoe-start file /etc/ppp/pppoe-options &
if [ -f /mnt/custom/extapp.sh ];then
        /mnt/custom/extapp.sh &
fi
dvrHelper /lib/modules /usr/bin/Sofia 127.0.0.1 9578 1 &



Here's the script /usr/lib/modules/loadmod  It calls /usr/lib/modules/load3518, a lengthy shell script that installs/removes all the necessary kernel modules. In this case, it loads the OV9712 sensor module.  It can also load modules for an AR0130 sensor instead.  Then it calls /usr/etc/loadpublic, which loads the USB wireless network module.  This script loads any of the RT3070, 8188EU, MT7601U, or AW8733A modules, if they are present in the file system.

./load3518 -i ov9712
himm 0x200f00bc 0x00

insmod mb88347.ko

. /usr/etc/loadpublic

himm  0x20050068  0x50002c2c
cd /


After working through this exercise of tracing the system startup, it's evident they're bit-banging several memory locations of the Hi3518E SoC.  It will be interesting to investigate/map all of these calls to the 'himm' executable, mainly because they've commented many of them to indicate exactly which hardware interfaces are being impacted.

  • No avatar
  • *
August 08, 2015, 09:47:35 am

/usr/lib/modules/load3518 performs the following commands for the OV9712 image sensor:

        ov9712|soih22|ov2710)
            himm 0x20030030 0x1;              #Sensor clock 24 MHz
            insmod extdrv/ssp_ad9020.ko;;



0x20030030 is the memory location of the video sensor clock rate. 
For other models of sensors, these are the clock rate values:

            himm 0x20030030 0x1;              # Sensor clock 24 MHz
            himm 0x20030030 0x5;              # Sensor clock 27 MHz
            himm 0x20030030 0x6;              # Sensor clock 37.125 MHz
            himm 0x2003002c 0x6a;             # VI input associated clock phase reversed



/usr/lib/modules/clkcfg_hi3518.sh reveals these memory locations:

            himm 0x2003002c 0x2a;           # VICAP, ISP unreset & clock enable
            himm 0x20030034 0x510;          # VDP  unreset & HD clock enable
            himm 0x20030040 0x2;            # VEDU unreset
            himm 0x20030048 0x2;            # VPSS unreset, code also config
            himm 0x20030058 0x2;            # TDE  unreset
            himm 0x20030060 0x2;            # JPEG unreset
            himm 0x20030068 0x2;            # MDU  unreset



/usr/lib/modules/lowpower.sh reveals these memory locations:

            himm 0x20050080 0x000121a8      # USB PHY [12]bit
            himm 0x20050084 0x005d2188      # USB PHY [22]bit
            himm 0x200300D0 0x5             # NANDC
            himm 0x200f00c8 0x1             # NANDC gpio
            himm 0x200f00cc 0x1
            himm 0x200f00d0 0x1
            himm 0x200f00d4 0x1
            himm 0x200f00d8 0x1
            himm 0x200f00dc 0x1
            himm 0x200f00e0 0x1
            himm 0x200f00e4 0x1
            himm 0x200f00e8 0x1
            himm 0x200f00ec 0x1
            himm 0x200f00f4 0x1
            himm 0x200f00f8 0x1
            himm 0x20030080 0x1             # SAR ADC
            himm 0x200b0008 0x1             # SAR ADC
            himm 0x20030038 0x2             # PWM
            himm 0x20070000 0x0             # IR
            himm 0x200f00c4 0x1             # IR gpio
            himm 0x200A0030 0x0             # UART2 [9][8][0]bit
            himm 0x200f0108 0x0             # UART2 gpio
            himm 0x200f010c 0x0             # UART2 gpio
            himm 0x200C0004 0x7F00          # SPI0
            himm 0x200E0004 0x7F00          # SPI1
            himm 0x200f000c 0x0             # SPI0 gpio
            himm 0x200f0010 0x0
            himm 0x200f0014 0x0
            himm 0x200f0110 0x0             # SPI1 gpio
            himm 0x200f0114 0x0
            himm 0x200f0118 0x0
            himm 0x200f011c 0x0


  • No avatar
  • *
August 08, 2015, 03:52:28 pm
I went digging through the SDK directories, and found there are two separate sets of drivers for the imaging:

/Hi3518_SDK_V1.0.7.0/mpp
/Hi3518_SDK_V1.0.7.0/mpp2

These represent old and new interfaces from HiSilicon, as described in their image processing documents (attached).  Unfortunately, they don't lead any closer to grabbing a JPEG snapshot from the sensor (yet).

  • ***
August 08, 2015, 08:33:43 pm
I went digging through the SDK directories, and found there are two separate sets of drivers for the imaging:

/Hi3518_SDK_V1.0.7.0/mpp
/Hi3518_SDK_V1.0.7.0/mpp2

These represent old and new interfaces from HiSilicon, as described in their image processing documents (attached).  Unfortunately, they don't lead any closer to grabbing a JPEG snapshot from the sensor (yet).

Most likely most of the manufacturers stock firmware for each camera module has the ability to reference/load any supported camera sensor drivers. If their drivers for those cameras sensors are present. Just to keep the program responsible for doing that common to the manufacturers product line. Firmware wise. The same applies to different Wi-Fi daughter boards that can be used with different camera modules firmware.

This makes it easier for the OEM's that build actual cameras based on this manufacturers camera modules who in some cases don't use the manufacturers stock firmware totally but they can still use the manufacturers stock firmware as a base and not be required to modify some of the manufactures stock firmware which is and can load different drivers.

Here are all the camera sensors that are currently supported by the manufacturers camera modules:

Please see 3 device support classes, item 5 in the link below:

http://www.microsofttranslator.com/bv.aspx?from=&to=en&a=http%3A%2F%2Fwiki.xm030.com%2Findex.php%2FIPC%25E7%25B1%25BBFAQ

Another method you can use is to also use the manufacturers camera model board specifications. To see what camera sensors each can support. The below example is for the 6510 camera module you are dealing with. Which also has all the specifications for the 6510 camera module board:

http://wiki.xm030.com:81/产品参数/English/IPG模组/Parameters%20for%203518E%20IP%20Camera%20Module.pdf

Hi Hass camera module interface definitions can also be found here but they need to be translated from Chinese to English after downloading them:

http://www.microsofttranslator.com/bv.aspx?from=&to=en&a=http%3A%2F%2Fwiki.xm030.com%2Findex.php%2FHi%25E6%25B5%25B7%25E6%2580%259D%25E6%25A8%25A1%25E7%25BB%2584%25E6%258E%25A5%25E5%258F%25A3%25E5%25AE%259A%25E4%25B9%2589

While this manufacturer uses a media server that supports RTSP standard video formats. The manufacturer uses a proprietary video format internally for all their camera modules and their NVR/DVR product lines. Of course they do create snapshots from this proprietary video format for FTP and Email. But they don't support any generic URL for snapshots to be pulled on the fly.

Which is why one needs to use their ActiveX plugin with IE ("Internet Explorer") browsers and their CMS, VMS and SNVR PC client applications ("Which also use that same ActiveX") as well as their mobile applications which have libraries to convert the proprietary format to standard formats as their .NET Windows developer SDK does.

More details on the manufacturers applications that can be used to ("After the fact") convert those proprietary video formats to standard ones, can be found here:

They even have a stand-alone utility that can be used to grab snapshots from NVR's and DVR's at the link below as well.

http://www.microsofttranslator.com/bv.aspx?from=&to=en&a=http%3A%2F%2Fwiki.xm030.com%2Findex.php%2F%25E4%25BA%25A7%25E5%2593%2581%25E8%25BD%25AF%25E4%25BB%25B6%25E4%25B8%258B%25E8%25BD%25BD

So, currently there are no hidden URL methods to grab snapshots from this manufacturers camera modules in the firmware or their NVR'S/DVR's firmware. Which they also manufacturer. Because of the internal proprietary video formats they currently use in their product lines and their engineers have stated that they have no intent on changing that:

http://www.ipcamtalk.com/showthread.php?p=39874#post39874

Because of the above. The only current ways to get around this and generate snapshots, on the fly. For this manufacturers camera modules. Is to use one of the following methods to grab snapshots:

1. Use the camera modules "Alarm Input" and trigged it using something to generate a snapshot that will be sent via FTP as needed.

http://www.openipcam.com/forum/index.php/topic,1183.msg4619.html#msg4619

http://www.ipcamtalk.com/showthread.php/1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)?p=39424&viewfull=1#post39424

http://www.ipcamtalk.com/showthread.php/1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)?p=39663&viewfull=1#post39663

2. Use the cameras modules port 9527 interface to save snapshots in the cameras modules memory ("IMHO not a good choice because of memory usage required in the camera"). The 6510 camera module only has a total of 8 MB of memory. Which is why Wi-Fi is no longer supported with the stock manufacturers firmware for them. Due to buffer issues which caused instability issues. The 6510 camera modules current stock firmware .bin file provided by the manufacturer is 6.5 MB.

http://www.ipcamtalk.com/showthread.php?1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)&p=19789&viewfull=1#post19789

http://www.openipcam.com/forum/index.php/topic,1183.msg4614.html#msg4614

3. Pull snapshots from RTSP video streams.

http://www.openipcam.com/forum/index.php/topic,1183.msg4625.html#msg4625

4. Use the manufacturers .NET SDK for Windows. Which can be downloaded from here:

http://www.ipcamtalk.com/showthread.php/1812-Review-TOP-201-Super-Mini-720P-HD-IP-Cam-(The-Cheapest-IP-Cam-So-Far-!!)?p=19499&viewfull=1#post19499

5. Access the ActiveX proprietary interface provided by the manufacturer. To be forced to save snapshots to a local drive and then afterwards, be forced to also display a snapshot in a non-HTML window. Which no documentation currently exists in the public domain.

Don   

« Last Edit: August 09, 2015, 10:21:57 pm by TheUberOverLord »

  • No avatar
  • *
August 09, 2015, 08:15:01 am
Xiong Mai elects not to support JPEG snapshots, but Foscam does (using larger NAND flash ram and DRAM sizes) and there is a HiSilicon JPEG encoder kernel module loaded. 

Module                  Size  Used by
hi3518_jpege           48265  1

Submitting this module to the Online Disassembler provided a peek inside.  The Sofia program is too large to submit to the ODA, but I'd wager there are callouts from Sofia's 'snap' functionality to this JPEG Encoder kernel module, and they will illustrate its use to generate JPEG snapshot files.