คู่มือตัวเข้ารหัสวิดีโอ TCP JSON Protocol RTSP API

สารบัญ

ที่อยู่สตรีมเสียงและวิดีโอแบบเรียลไทม์ RTSP:

  • รูป: rtsp://ไอพี:หมายเลขพอร์ต/สตรีม
  • พอร์ตเริ่มต้น: 554
  • สตรีมรหัส: 0 (กระแสหลัก), 1 (กระแสรอง)
  • ตัวอย่างเช่น, เพื่อดึงสตรีมย่อยจากที่อยู่อุปกรณ์ 192.168.1.188, URL คือ:
  • rtsp://192.168.1.1 8 8 :554 / 1

ลูกค้า (แอพมือถือ) รับและตั้งค่าพารามิเตอร์กล้องผ่านโปรโตคอล TCP;

กล้องทำหน้าที่เป็นเซิร์ฟเวอร์ TCP, โดยมีพอร์ต TCP เริ่มต้นเป็น 8866.

รูปแบบข้อมูลการสื่อสาร TCP:

สตริง JSON บริสุทธิ์

รับสถานะกล้อง:

โครงสร้างข้อมูล:

              โครงสร้าง typedef

              {

                     ถ่าน s8DevId[64]; // รหัสอุปกรณ์, ค่าเริ่มต้นเป็น IP หากไม่มีการตั้งค่า ID.

                     u32 u32Tfบันทึก; // สถานะการบันทึกของการ์ด TF, 0: ไม่มีการบันทึก; 1: อยู่ระหว่างการบันทึก

              }JSON_DEV_STATUS_INFO_S;

อักขระคำสั่ง:

              #กำหนด JS_CMD _ GET_DEV_STATUS “รับสถานะ DevStatus”

สมมติว่าที่อยู่ IP ของอุปกรณ์คือ 192.168.1.188, ลูกค้าส่งข้อมูล JSON ต่อไปนี้:

{

         ” รับสถานะ DevStatus “: {       }

}

หลังจากที่กล้องได้รับข้อมูลเรียบร้อยแล้ว, มันส่งคืนข้อมูล JSON ต่อไปนี้:

{

         ” รับสถานะ DevStatus “: {

         ” s8DevId ” : ” 192.168.1.188 ” ,

         “ u32Tfบันทึก ” : 0

         }

}

การได้มา/การตั้งค่าพารามิเตอร์การเข้ารหัสวิดีโอ:

โครงสร้างข้อมูล:

              โครงสร้าง typedef

              {

u8 u8VideoEncChn;        //0 : กระแสหลัก; 1: กระแสรอง;

u8 u8VideoCodecType;    // 1:H264 ; 2:หน้า 265

u16 u16ความกว้างวิดีโอ;              // ความกว้างของวิดีโอ

u16 u16ความสูงของวิดีโอ;       // ความสูงของวิดีโอ

u16 u8FrameRate;           // อัตราเฟรม (1-30)

u16 u8Iframeช่วง;      // ผม- ขนาดช่วงเฟรม (1-100)

u8 u8BitrateControlMode; //โหมดควบคุมบิตเรต: 0: CBR 1: VBR

u16 u16BitRateKps;         // ขนาดบิตเรต

ถ่าน s8VideoSizeName[256]; // รายการความละเอียดที่รองรับ }JSON_VIDEO_ENC_PARAM_S;

อักขระคำสั่ง:

              รับพารามิเตอร์:

              #กำหนด JS_CMD_GET_VIDEO_ENC_PARAM “รับ VideoEncParam”

              การตั้งค่าพารามิเตอร์:

              #กำหนด JS_CMD_SET_VIDEO_ENC_PARAM “setVideoEncParam”

ตัวอย่างเช่น:

ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้ซึ่งมีพารามิเตอร์การเข้ารหัสของบิตสตรีมหลักของกล้อง:

{

         ” รับ VideoEncParam “: {

         ” u8VideoEncChn “: 0

         }

}

ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;

{

         ” รับ VideoEncParam “: {

         ” u8VideoEncChn “: 0,

         “ u8VideoCodecType ” : 1,

         “ u16ความกว้างวิดีโอ ” : 3840,

       ” u16ความสูงของวิดีโอ ” : 1080,

       “ u8FrameRate ” : 30,

         ” u8IframeInterval ” : 60,

         ” u8BitrateControlMode ” : 0,

         “ u16BitRateKps ” : 4096,

       ” s8VideoSizeName ” : ” 3840×1080,1920×540 “

         }

}

ไคลเอนต์ตั้งค่าอัตราเฟรมสตรีมรองของกล้องเป็น 15 และบิตเรตเป็น 1024K ในรูปแบบ JSON, ดังต่อไปนี้:

{

         ” setVideoEncParam “: {

         ” u8VideoEncChn “: 1,

         ” u8FrameRate “: 15,

         ” u16BitRateKps “: 1024

         }

}

หลังจากตั้งค่าสำเร็จแล้ว, กล้องส่งคืน TRUE.

การได้มา/การตั้งค่าพารามิเตอร์การเข้ารหัสเสียง:

โครงสร้างข้อมูล:

              โครงสร้าง typedef

              {

       u8 u8เปิดใช้งาน;             //0: ปิดการใช้งาน; 1: เปิดใช้งาน;

       u32 u32ChnNum; // 1 : โมโน; 2: ระบบเสียงสเตอริโอ

   u8 u8ประเภทการเข้ารหัส; //6 : AAC; 8: G711A; 9: G711U;                        u32 u32อัตราตัวอย่าง; // อัตราการสุ่มตัวอย่าง: 8000, 16000, 24000, 32000, 48000

       u8 u8Aoutปริมาณ; // ขนาดวอลุ่ม: [0–100]                    }JSON_VIDEO_ENC_PARAM_S;

อักขระคำสั่ง:

              รับพารามิเตอร์:

              #กำหนด JS_CMD_GET_AUDIO_PARAM “getAudioParam.getAudioParam”

              การตั้งค่าพารามิเตอร์:

              #กำหนด JS_CMD_SET_AUDIO_PARAM “ตั้งค่า AudioParam”

ตัวอย่างเช่น:

ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้ของพารามิเตอร์การเข้ารหัสเสียงของกล้อง:

{

         ” getAudioParam.getAudioParam “: { }

}

ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;

{

         ” getAudioParam.getAudioParam “: {

         ” u8เปิดใช้งาน “: 1,

         “ u32ChnNum ” : 1,

         “ u8EncodeType ” : 8,

       “ u32อัตราตัวอย่าง ” : 8000,

       “ u8Aoutปริมาณ ” : 80,

                  }

}

การตั้งค่าฝั่งไคลเอ็นต์สำหรับการเข้ารหัสเสียงของกล้องคือ AAC, ระบบเสียงสเตอริโอ, และอัตราการสุ่มตัวอย่าง 48kHz. ข้อมูล JSON มีดังนี้:

{

         ” ตั้งค่า AudioParam “: {

         “ u32ChnNum ” : 2,

         “ u8EncodeType ” : 6,

       “ u32อัตราตัวอย่าง ” : 48000

                  }

}

หลังจากตั้งค่าสำเร็จแล้ว, กล้องส่งคืน TRUE.

การได้มา/การตั้งค่าพารามิเตอร์ภาพวิดีโอ:

โครงสร้างข้อมูล:

โครงสร้าง typedef

{

u8 u8VideoIspChn;           //ช่องไอเอสพี; [0-4]

u8 u8ความสว่าง;              // ความสว่าง: [0~100]

u8 u8คอนทราสต์;                 // อัตราความคมชัด: [0~100]

u8 u8ฮิว;                        // รงค์: [0~100]

u8 u8ความอิ่มตัว;              // ระดับความอิ่มตัว: [0~100]

u8 u8ความคมชัด;                     // ความคม: [0~100]

}JSON_IMAGE_PARAM_S;

อักขระคำสั่ง:

              รับพารามิเตอร์:

              #กำหนด JS_CMD_GET_IMAGE_PARAM “รับ ImageParam”

              การตั้งค่าพารามิเตอร์:

              #กำหนด JS_CMD_SET_IMAGE_PARAM “ตั้งค่า ImageParam”

ตัวอย่างเช่น:

ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้ของพารามิเตอร์รูปภาพสำหรับช่อง 0 ของ ISP ของกล้อง:

{

         ” รับ ImageParam “: {

                   “ u8VideoIspChn ” : 0

         }

}

ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;

{

         ” รับ ImageParam “: {

         ” u8VideoIspChn “: 0,

         “ u8 ความสว่าง ” : 50,

         “ u8คอนทราสต์ ” : 50,

       “u8เว้” : 50,

       “ u8ความอิ่มตัว ” : 50,

         “ u8ความคมชัด ” : 50

                  }

}

การตั้งค่าข้อมูล JSON ฝั่งไคลเอ็นต์สำหรับความสว่างของกล้องคือ 53, ความคมชัดคือ 60, และความอิ่มตัวก็คือ 56 เป็นดังนี้:

{

         ” ตั้งค่า ImageParam “: {

         “ u8VideoIspChn ” : 0,

         “ u8 ความสว่าง ” : 53,

       “ u8คอนทราสต์ ” : 60,

       “ u8ความอิ่มตัว ” : 56

                  }

}

หลังจากตั้งค่าสำเร็จแล้ว, กล้องส่งคืน TRUE.

การดึงข้อมูลบัตร TF;

โครงสร้างข้อมูล:

โครงสร้าง typedef

{

      u32 u32ขนาดรวม;             // ขนาดรวมเป็น MB

      u32 u32ขนาดมือสอง;             // หน่วยความจุที่ใช้แล้ว (MB)

      u32 u32ขนาดที่มีจำหน่าย;             // ความจุที่มีหน่วยเป็น MB

}JSON_SD_CARD_INFO_S;

รับพารามิเตอร์:

#กำหนด JS_CMD_GET_SD_CARD_INFO “getSdCardInfo”

ตัวอย่างเช่น:

ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้เกี่ยวกับข้อมูลการ์ด TF ของกล้อง:

{

         ” getSdCardInfo “: { }

}

ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;

{

         ” getSdCardInfo “: {

         ” u32ขนาดรวม “: 31254,

         “ u32ขนาดมือสอง ” : 20000,

         ” u32ขนาดที่มีจำหน่าย ” : 11254

                  }

}

การกำหนดค่าการบันทึกการ์ด TF:

โครงสร้างข้อมูล:

โครงสร้าง typedef

{

       u8 u8บันทึกอัตโนมัติเปิดใช้งาน;        //1: เปิดใช้งานการบันทึก; 0: ปิดการใช้งานการบันทึก

      u8 u8RecordStrChn;                // การเลือกสตรีมการบันทึก: 0: กระแสหลัก; 1: กระแสรอง

   u8 u8PreRecordวินาที;               // เวลาบันทึกล่วงหน้า [0-10] ในไม่กี่วินาที

   u16 u16บันทึกวินาทีต่อไฟล์; // ระยะเวลาของไฟล์บันทึกเดียว [10-1000] วินาที

}JSON_RECORD_CONTROL_PARAM_S;

รับพารามิเตอร์:

#กำหนด JS_CMD_GET_RECORD_CONTROL_PARAM “getRecordControlParam.getRecordControlParam”

การตั้งค่าพารามิเตอร์:

#กำหนด JS_CMD_SET_RECORD_CONTROL_PARAM “setRecordControlParam”

ตัวอย่างเช่น:

ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้เกี่ยวกับการกำหนดค่าการบันทึกการ์ด TF ของกล้อง:

{

         ” getRecordControlParam.getRecordControlParam “: { }

}

ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;

{

         ” getRecordControlParam.getRecordControlParam “: {

                   ” u8เปิดใช้งานบันทึกอัตโนมัติ “: 1,

                   “ u8RecordStrChn ” : 0,

                   ” u8PrecordSeconds ” : 0,

              ” u16บันทึกวินาทีต่อไฟล์ ” : 300

                  }

}

การกำหนดค่า IP เครือข่ายแบบมีสาย:

โครงสร้างข้อมูล:

โครงสร้าง typedef

{                                               

u8 u8Dhcpเปิดใช้งาน;                  // 0: IP แบบคงที่; 1: DHCP;

ถ่าน s8IP[16];                          //ที่อยู่ IP

ถ่าน s8SubMask[16];              // ซับเน็ตมาสก์

ถ่าน s8GateWay[16];              // ไอพีเกตเวย์

ถ่าน s8Dns[16];                //ที่อยู่ DNS

}JSON_NET_PARAM_S;

รับพารามิเตอร์:

#กำหนด JS_CMD_GET_NET_IP_PARAM “getNetIpParam.getNetIpParam”

การตั้งค่าพารามิเตอร์:

#กำหนด JS_CMD_SET_NET_IP_PARAM “setNetIpParam”

ตัวอย่างเช่น:

ไคลเอนต์ดึงข้อมูล IP ของกล้องโดยใช้ข้อมูล JSON ดังต่อไปนี้:

{

         ” getNetIpParam.getNetIpParam “: { }

}

ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;

{

         ” getNetIpParam.getNetIpParam “: {

                   ” u8Dhcpเปิดใช้งาน “: 0,

                   ” s8IP ” : ” 192.168.1.188 ” ,

                   ” s8SubMask ” : ” 255.255.255.0 ” ,

              ” s8GateWay ” : ” 192.168.1.1 ” ,

              ” s8Dns ” : ” 192.168.1.1 “

         }

}

ไคลเอนต์ได้รับการกำหนดค่าด้วยที่อยู่ IP ของกล้องเป็น 192.168.3.10, เกตเวย์เป็น 192.168.3.1, และ DNS เป็น 192.168.3.1. ข้อมูล JSON มีดังนี้:

{

         ” setNetIpParam “: {

                   ” s8IP ” : ” 192.168.3.10 ” ,

              ” s8GateWay ” : ” 192.168.3.1 ” ,

              ” s8Dns ” : ” 192.168.3.1 “

         }

}

หลังจากตั้งค่าสำเร็จแล้ว, กล้องไม่ส่งคืนข้อมูลใดๆ, และไคลเอนต์จำเป็นต้องเชื่อมต่อกับอุปกรณ์อีกครั้งด้วยที่อยู่ IP ใหม่.

การกำหนดค่าพารามิเตอร์ WiFi:

ไคลเอนต์/แอปดึงรายการ SSID ของเราเตอร์ที่อุปกรณ์พบ.

                  {

                            “รับ APSsidList” :{ }

                  }

                  อุปกรณ์จะส่งคืนรายการ SSID: เลือก SSID เส้นทางจากรายการที่จะเชื่อมต่อ.

                  กำหนดค่า Wi-Fi ของอุปกรณ์ให้ทำงานในโหมด STA:

         {

                  “setWifiSsidParam”:{

                           “u8โหมด”: 0,

                           “s8Ss”: ” ปี 8888 “,

                            “s8PassWd”: “987545598400

                  }

    }

              กำหนดค่า Wi-Fi ของอุปกรณ์ให้ทำงานในโหมดฮอตสปอต AP:

                  {

                            “setWifiSsidParam”:{

                                    “u8โหมด”: 1

                            }

                  }

                  รับสถานะ Wi-Fi ของอุปกรณ์:

                  {

                            “getWifiSsidParam” : { }

                  }

การซิงโครไนซ์เวลา:

โครงสร้างข้อมูล:    

                  โครงสร้าง typedef

                  {

                            u8 u8TimeZone;                        // ค่าเขตเวลา RT_TIMEZONE_E

                            ถ่าน s8DateTime[64];              // รูปแบบเวลา: “2019-06-12_12:56:59_3”    

                  }JSON_DATE_TIME_INFO_S;

                  คำจำกัดความของค่าโซนเวลา:

typedef enum

{

RT_TIMEZONE_InternationalDateLineWest = 0, /* UTC-12:00 */

RT_TIMEZONE_MidwayIslandSamoa = 1, /* UTC-11:00 */

RT_TIMEZONE_ฮาวาย = 2, /* UTC-10:00 */

RT_TIMEZONE_Alaska = 3, /* UTC-9:00 */

RT_TIMEZONE_Tijuanaแคลิฟอร์เนีย = 4, /* UTC-8:00 */

RT_TIMEZONE_PacificTimeUSแคนาดา = 5, /* UTC-8:00 */

RT_TIMEZONE_MountainTimeUSแคนาดา = 6, /* UTC-7:00 */

RT_TIMEZONE_ชิวาวาลาปาซมาซัตลัน = 7, /* UTC-7:00 */

RT_TIMEZONE_แอริโซนา = 8, /* UTC-7:00 */

RT_TIMEZONE_ซัสแคตเชวัน = 9, /* UTC-7:00 */

RT_TIMEZONE_Guaddlajaraเม็กซิโกซิตี้มอนเตร์เรย์ = 10, /* UTC-6:00 */

RT_TIMEZONE_CentralTimeUSแคนาดา = 11, /* UTC-6:00 */

RT_TIMEZONE_CentralAmerica = 12, /* UTC-6:00 */

RT_TIMEZONE_BogotaLimaกีโต = 13, /* UTC-5:00 */

RT_TIMEZONE_EasternTimeสหรัฐฯแคนาดา = 14, /* UTC-5:00 */

RT_TIMEZONE_IndianaEast = 15, /* UTC-5:00 */

RT_TIMEZONE_คารากัส = 16, /* UTC-4:30 */

RT_TIMEZONE_AtlanticTimeCanada = 17, /* UTC-4:00 */

RT_TIMEZONE_จอร์จทาวน์ลาปาซซานฮวน = 18, /* UTC-4:00 */

RT_TIMEZONE_ซานติอาโก = 19, /* UTC-4:00 */

RT_TIMEZONE_NenfoundLand = 20, /* UTC-3:30 */

RT_TIMEZONE_บราซิเลีย = 21, /* UTC-3:00 */

RT_TIMEZONE_บัวโนสไอเรสจอร์จทาวน์ = 22, /* UTC-3:00 */

RT_TIMEZONE_กรีนแลนด์ = 23, /* UTC-3:00 */

RT_TIMEZONE_มิดแอตแลนติก = 24, /* UTC-2:00 */

RT_TIMEZONE_CapeVerdeIs = 25, /* UTC-1:00 (สาธารณรัฐเคปเวิร์ด) */

RT_TIMEZONE_อะโซเรส = 26, /* UTC-1:00 (อะซอเรส) */

RT_TIMEZONE_GreenwichMeanTimeดับลินเอดินบะระลิสบอนลอนดอน= 27, /* เวลาสากลเชิงพิกัด-0:00 */

RT_TIMEZONE_คาซาบลังกา = 28, /* เวลาสากลเชิงพิกัด-0:00 */

RT_TIMEZONE_มอนโรเวีย = 29, /* เวลาสากลเชิงพิกัด-0:00 */

RT_TIMEZONE_อัมสเตอร์ดัมเบอร์ลินเบิร์นโรมสตอกโฮล์มเวียนนา = 30, /* UTC+1:00 */

RT_TIMEZONE_เบลเกรดบราติสลาวาบูดาเปสต์ลูบลิยานาปราก = 31, /* UTC+1:00 */

RT_TIMEZONE_Brusselsโคเปนเฮเกนมาดริดปารีส = 32, /* UTC+1:00 */

RT_TIMEZONE_ซาราเยโวสโกเปียวอร์ซอซาเกร็บ = 33, /* UTC+1:00 */

RT_TIMEZONE_WestCentralAfrica = 34, /* UTC+1:00 */

RT_TIMEZONE_Rareพริทอเรีย = 35, /* เวลาสากลเชิงพิกัด+2:00 */

RT_TIMEZONE_Helsinkiเคียฟริกาโซเฟียทาลลินน์วิลนีอุส = 36, /* เวลาสากลเชิงพิกัด+2:00 */

RT_TIMEZONE_ไคโร = 37, /* เวลาสากลเชิงพิกัด+2:00 */

RT_TIMEZONE_มินสค์ = 38, /* เวลาสากลเชิงพิกัด+2:00 */

RT_TIMEZONE_เอเธนส์บูคาเรสต์อิสตันบูล = 39, /* เวลาสากลเชิงพิกัด+2:00 */

RT_TIMEZONE_เยรูซาเล็ม = 40, /* เวลาสากลเชิงพิกัด+2:00 */

RT_TIMEZONE_แบกแดด = 41, /* เวลาสากลเชิงพิกัด+3:00 */

RT_TIMEZONE_ทบิลิซี = 42, /* เวลาสากลเชิงพิกัด+3:00 */

RT_TIMEZONE_คูเวตริยาด = 43, /* เวลาสากลเชิงพิกัด+3:00 */

RT_TIMEZONE_Moscowเซนต์ปีเตอร์สเบิร์กโวลโกกราด = 44, /* เวลาสากลเชิงพิกัด+3:00 */

RT_TIMEZONE_ไนโรบี = 45, /* เวลาสากลเชิงพิกัด+3:00 */

RT_TIMEZONE_เตหะราน = 46, /* เวลาสากลเชิงพิกัด+3:30 */

RT_TIMEZONE_อาบูดาบีมัสกัต = 47, /* UTC+4:00 */

RT_TIMEZONE_Bakuเยเรวาน = 48, /* UTC+4:00 */

RT_TIMEZONE_คาบูล = 49, /* UTC+4:30 */

RT_TIMEZONE_ทาชเคนต์ = 50, /* UTC+5:00 */

RT_TIMEZONE_เอคาเทรินเบิร์ก = 51, /* UTC+5:00 */

RT_TIMEZONE_อิสลามาบัดการาจี = 52, /* UTC+5:00 */

RT_TIMEZONE_เชนไนโกลกาตามุมไบนิวเดลี = 53, /* UTC+5:30 */

RT_TIMEZONE_กาฐมา ณ ฑุ = 54, /* UTC+5:45 */

RT_TIMEZONE_อัลมาตีโนโวซีบีสค์ = 55, /* UTC+6:00 */

RT_TIMEZONE_AstanaDhaka = 56, /* UTC+6:00 */

RT_TIMEZONE_ย่างกุ้ง = 57, /* UTC+6:30 */

RT_TIMEZONE_ครัสโนยาสค์ = 58, /* UTC+7:00 */

RT_TIMEZONE_กรุงเทพฯฮานอยจาการ์ตา= 59, /* UTC+7:00 */

RT_TIMEZONE_ปักกิ่งฉงชิ่งฮ่องกงอุรุมชี = 60, /* UTC+8:00 */

RT_TIMEZONE_กัวลาลัมเปอร์สิงคโปร์ = 61, /* UTC+8:00 */

RT_TIMEZONE_เพิร์ธ = 62, /* UTC+8:00 */

RT_TIMEZONE_ไทเป = 63, /* UTC+8:00 */

RT_TIMEZONE_IrkutskUlaanBataar = 64, /* UTC+8:00 */

RT_TIMEZONE_โอซาก้าซัปโปโรโตเกียว = 65, /* UTC+9:00 */

RT_TIMEZONE_โซล = 66, /* UTC+9:00 */

RT_TIMEZONE_Yakutsk = 67, /* UTC+9:00 */

RT_TIMEZONE_แอดิเลด = 68, /* UTC+9:30 */

RT_TIMEZONE_บริสเบน = 69, /* UTC+10:00 */

RT_TIMEZONE_วลาดิวอสต็อก = 70, /* UTC+10:00 */

RT_TIMEZONE_กวมมอร์สบี = 71, /* UTC+10:00 */

RT_TIMEZONE_โฮบาร์ต = 72, /* UTC+10:00 */

RT_TIMEZONE_แคนเบอร์ราเมลเบิร์นซิดนีย์ = 73, /* UTC+10:00 */

RT_TIMEZONE_มากาดานโซโลมอนนิวแคลิโดเนีย = 74, /* UTC+11:00 */

RT_TIMEZONE_โอ๊คแลนด์เวลลิงตัน = 75, /* UTC+12:00 */

RT_TIMEZONE_Fijiคัมชัตกามาร์แชลล์= 76, /* UTC+12:00 */

RT_TIMEZONE_นูคูอาโลฟา = 77, /* UTC+13:00 */

RT_TIMEZONE_BUTT

}RT_TIMEZONE_E;

รับพารามิเตอร์:

#กำหนด JS_CMD_GET_DEV_DATE_TIME “รับDevDateTime”

การตั้งค่าพารามิเตอร์:

#กำหนด JS_CMD_SET_DEV_DATE_TIME “setDevDateTime”

รับข้อมูล JSON เวลาของอุปกรณ์ :

                  {

                            ” รับDevDateTime ” : {}

                  }

อุปกรณ์ส่งคืนข้อมูล JSON:

                  {

                            ” รับDevDateTime ” : {

                            “u8ไทม์โซน” : 60,

                            “s8DateTime” : “2020-03-06_12:56:59_3”

                            }

                  }

ข้อมูล JSON ตั้งเวลาอุปกรณ์เป็นวันพฤหัสบดี, มีนาคม 12, 2020, ที่ 3:38:30 PM:

                  {

                            ” setDevDateTime ” : {

                                     “s8DateTime” : “2020-03-12_15:38:30_4”

                            }

                  }

อุปกรณ์ส่งคืน TRUE เมื่อตั้งค่าสำเร็จ.

การจัดการอุปกรณ์:

ข้อมูล JSON สำหรับการรีสตาร์ทอุปกรณ์:

                            {

                                     ” setSysControlParam ” : {

                                               “u8รีสตาร์ท” : 1               

                                     }

                            }

ข้อมูล JSON สำหรับการกู้คืนการตั้งค่าจากโรงงาน:

                            {

                                     ” setSysControlParam ” : {

                                               “u8รีเซ็ตค่าเริ่มต้น” : 1              

                                     }

                            }

การจัดรูปแบบข้อมูล JSON ของการ์ด SD:

                            {

                                     ” setSysControlParam ” : {

                                               “u8FormatSdCard” : 1                              

                                     }

                            }

การควบคุม PTZ:

โครงสร้างข้อมูล:

โครงสร้าง typedef

{

       u8 u8Cmd;                        // รหัสคำสั่ง PTZ_CONTROL_CODE

u8 u8Speed;                     // ความเร็ว (1-64)

u8 u8Data1;                            // ที่สงวนไว้; สิ่งนี้จะถูกใช้สำหรับตำแหน่งที่กำหนดไว้ล่วงหน้า.

u8 u8Data2;                            // ที่สงวนไว้, ซึ่งจะใช้สำหรับคำสั่ง PTZ พิเศษ.

}JSON_PTZ_CONTROL_S;

แจกแจง PTZ_CONTROL_CODE

{

              PTZ_STOP = 0, // หยุด

              PTZ_UP=1,          // ขึ้น

              PTZ_DOWN=2,          // ลง

              PTZ_LEFT=3,              // ซ้าย

              PTZ_RIGHT=4,           // ขวา

              PTZ_LEFT_UP=5, // ซ้ายบน

              PTZ_LEFT_DOWN=6, // ล่างซ้าย

              PTZ_RIGHT_UP=7, // ด้านบนขวา

              PTZ_RIGHT_DOWN=8, // 8 : ล่างขวา

              PTZ_ZOOM_IN=9, // 9 : ซูมเข้า

              PTZ_ZOOM_OUT=10, // 10: ซูมออก=10, // 10 : ซูมออก=10

              PTZ_FOCUS_NEAR=11, // 11 : เน้นอยู่ใกล้

              PTZ_FOCUS_FAR=12, // 12 : เน้นไปไกล.

              PTZ_IRIS_ADD=13, // 13 : รูรับแสงเพิ่มขึ้น

              PTZ_IRIS_REDUCE=14, // 14 : รูรับแสงลดลง

              PTZ_GOTO_POINT = 15, // 15 : โทรบิตที่ตั้งไว้ล่วงหน้า

              PTZ_CLEAR_POINT = 16, // 16 : ล้างบิตที่ตั้งไว้ล่วงหน้า

              PTZ_PERSET_POINT = 17, // 17 : ตั้งค่าบิตที่ตั้งไว้ล่วงหน้า

              PTZ_AUTO_RUN = 18, // 18 : สแกนอัตโนมัติแนวนอน

};

การควบคุม PTZ:

#กำหนด JS_CMD_PTZ_CONTROL “PtzControlCmd”

คำสั่ง JSON ควบคุมโดย Ptz:

  • เคลื่อนตัวลงมาด้วยความเร็ว. 30:

{

         ” PtzControlCmd “: {

         ” u8Cmd “: 2,

         ” u8ความเร็ว ” : 30

                  }

}

  • 1. กำหนดตำแหน่งที่กำหนดไว้ล่วงหน้า 2:

{

         ” PtzControlCmd “: {

         ” u8Cmd “: 17,

         “ u8สปีด ” : 30,   

         “ u8Data1 ” : 2

                  }

}

ค้นหาไฟล์บัตร TF:

( 1) คำสั่งให้ค้นหาไฟล์วิดีโอทั้งหมดภายในระยะเวลาที่กำหนดในวันเดียวกัน:

{

                  “searchRecordFileList”:{

                            “U32ปี”:2020, // ปี

                            “คุณ8เดือน”:7,                             // เดือน

                            “u8Day”:14,                       // วัน

                            “u8StartHour”:0,              // เวลาเริ่มต้นเป็นชั่วโมง

                            “u8StartMinute”:0,                   // เวลาเริ่มต้นเป็นนาที

                            “u8EndHour”:23,             // เวลาสิ้นสุดเป็นชั่วโมง

                            “u8EndMinute”:59,                  // เวลาสิ้นสุดเป็นนาที

                            “u8EncChn”:0,                           // 0 เป็นค่าเริ่มต้น.

                            “u8RecordTye”:0, // ประเภทไฟล์: 0: ไฟล์ทั้งหมด, 1: การบันทึกตามกำหนดการ; 2: บันทึกการเตือนภัย; 3: รูปภาพ;

                            “u32StartIdx”:0,               // หมายเลขลำดับของไฟล์เริ่มต้น

                            “u32จำนวนที่คาดหวัง”: 10                 // จำนวนไฟล์ที่ส่งคืนโดยคำขอ, ปัจจุบันค่าสูงสุดอยู่ที่ 32.

                  }

}

ข้อมูลที่ส่งคืนโดยอุปกรณ์:

{

“searchRecordFileList”: {

“u32RecordFileTotalCount”: 7,                // จำนวนไฟล์ทั้งหมดที่ค้นหาภายในช่วงเวลานี้

“stRecordFileList”: [        // ชื่อไฟล์พร้อมเส้นทาง, ขนาดไฟล์]

“/dev/disk/0/part0/rec-pic/20200714/0/000_180149_0_0300_2.mp4”, 251649649, “/dev/disk/0/part0/rec-pic/20200714/0/001_180644_0_0169_256.mp4”, 144935215, “/dev/disk/0/part0/rec-pic/20200714/0/002_181001_0_0300_2.mp4”, 251650689, “/dev/disk/0/part0/rec-pic/20200714/0/003_181458_0_0300_2.mp4”, 251657016, “/dev/disk/0/part0/rec-pic/20200714/0/004_181958_0_0300_2.mp4”, 301449467, “/dev/disk/0/part0/rec-pic/20200714/0/005_182458_0_0000_256.mp4”, 37801991, “/dev/disk/0/part0/rec-pic/20200714/0/006_182642_0_0244_256.mp4”, 200069913

]

}

}

ถ่ายภาพ JPG ด้วยตนเอง:

              ส่งคำสั่งต่อไปนี้ไปยังอุปกรณ์.

              {

                            “คู่มือSnapJpg”:{

                            }

                  }

กลับสำเร็จแล้ว:

                  {

                  “คู่มือSnapJpg”: จริง

                   }

การควบคุม PWM ปรับความสว่าง LED:

รับค่า PWM ปัจจุบัน:

{

“getPwmParam”:{

          “u32PwmChn”: 0

}

}

กลับสำเร็จแล้ว:

{

“getPwmParam”:{

          “u32PwmChn”:0,

          “u8เปิดใช้งาน”:1,

          “u8DutyValue”:20

}

}

  • ตั้งค่า PWM:

{

“setPwmParam”:{

          “u32PwmChn”: 0,

          “u8เปิดใช้งาน”: 1,

          “u8DutyValue”: 60

}

}

กลับสำเร็จแล้ว:

{

“setPwmParam”:จริง

}

บันทึก : u32PwmChn มีค่าเริ่มต้นเป็น 0 และไม่ควรเปลี่ยนแปลงโดยพลการ. u8Enable มีค่าเป็น 0/1, ที่ไหน 0 ปิดการใช้งานเอาต์พุต PWM และ 1 เปิดใช้งานเอาต์พุต PWM. u8DutyValue มีช่วงค่าเป็น 0-100.

17. การรับข้อความ OSD/การตั้งค่า:

(1)   รับช่องวิดีโอที่ระบุ, พารามิเตอร์ข้อความ OSD:

{“getVideoOsdTextInfo”:{

          “u8IspChn”:0,

          “u8TextIdx”:1

}}

กลับสำเร็จแล้ว:

{

“getVideoOsdTextInfo”:{

          “u8IspChn”:0, // ช่องวิดีโอ 0, กรอก 0 สำหรับกล้องตัวเดียว

          “u8TextIdx”:1, // หมายเลขของกล่องข้อความ OSD, รองรับกล่องข้อความหลายกล่อง.

          “u8เปิดใช้งาน”:0, // เปิดใช้งาน, 0: อย่าแสดง; 1: แสดง

          “u16XRatioBase50000”:40000, // พิกัดสัมพัทธ์ของตำแหน่งแนวนอน, ด้วยมูลค่าสูงสุดที่ 50000.

          “U16YRatioBase50000”:1600, // พิกัดสัมพัทธ์ของตำแหน่งแนวตั้ง, ด้วยมูลค่าสูงสุดที่ 50000.

          “u8Fgความโปร่งใส”:10, // ความโปร่งใสเบื้องหน้า [0-255]

          “u8Bgความโปร่งใส”:255, // ค่าความโปร่งใสของพื้นหลัง [0-255]

          “u8SizeType”:1, // ขนาดข้อความ, ช่วงค่า [0-3]

          “u32TextColor_BGRA8888”:4294967295, // สีข้อความค่า ARGB888

          “aszText”:”” // กล่องข้อความจะแสดงสตริงเนื้อหา

}

}

(2)   ตั้งค่าช่องวิดีโอที่ระบุ, พารามิเตอร์ข้อความ OSD:

{

“setVideoOsdTextInfo”:{

          “u8IspChn”:0,

          “u8TextIdx”:1,

          “u8เปิดใช้งาน”:1,

          “u16XRatioBase50000”:40000,

          “U16YRatioBase50000”:1600,

          “u8Fgความโปร่งใส”:10,

          “u8Bgความโปร่งใส”:255,

          “u8SizeType”:1,

          “u32TextColor_BGRA8888”:4294967295,

          “aszText”:”ทดสอบ 11111222233334444″

}

}

กลับสำเร็จแล้ว:

{

“setVideoOsdTextInfo”:จริง

}

ช่วงราคา: $98.00 ผ่าน $158.00
ราคาเดิมอยู่ที่: $199.00.ราคาปัจจุบันอยู่ที่: $130.00.
ช่วงราคา: $118.00 ผ่าน $178.00

ถามคำถาม

← ย้อนกลับ

ข้อความของคุณถูกส่งแล้ว