# draw upper limit 460
+            cv2.line(frame, (0, 100),(frame_w, 100), (0,0,0), LINE_THICKNESS)
461
+
462
+            ret, buffer = cv2.imencode('.jpg', frame)
463
+            frame2 = buffer.tobytes()
464
+            yield (b'--frame\r\n'
465
+                b'Content-Type: image/jpeg\r\n\r\n' + frame2 + b'\r\n')  # concat frame one by one and show result
466
+
467
+            #cv2.imshow("preview", frame)
468
+            #cv2.imwrite("../flask-hls-demo/static/frame.jpg", frame)
469
+            out.write(frame)
470
+
471
+            if cv2.waitKey(27) and 0xFF == ord('q'):
472
+                break
473
+        else:
474
+            break
475
+
476
+    #cv2.line()
477
+    #cv2.destroyAllWindows()
478
+    #cap.release()
479
+    #out.release()
480
+
481
+from flask import Flask, render_template, Response
482
+import cv2
483
+
484
+app = Flask(__name__)
485
+
486
+
487
+def find_camera(id):
488
+    '''
489
+    cameras = ['rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp',
490
+    'rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp']
491
+    '''
492
+    cameras = ['rtsp://admin:@Unv123456@192.168.10.252:554/unicast/c1/s1/live']
493
+    return cameras[int(id)]
494
+#  for cctv camera use rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp' instead of camera
495
+#  for webcam use zero(0)
496
+
497
+
498
+def gen_frames(camera_id):
499
+
500
+    cam = find_camera(camera_id)
501
+    cap=  cv2.VideoCapture(cam)
502
+
503
+    while True:
504
+        # for cap in caps:
505
+        # # Capture frame-by-frame
506
+        success, frame = cap.read()  # read the camera frame
507
+        if not success:
508
+            break
509
+        else:
510
+            ret, buffer = cv2.imencode('.jpg', frame)
511
+            frame = buffer.tobytes()
512
+            yield (b'--frame\r\n'
513
+                b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')  # concat frame one by one and show result
514
+@app.route('/video_feed/<string:id>/', methods=["GET"])
515
+def video_feed(id):
516
+
517
+    """Video streaming route. Put this in the src attribute of an img tag."""
518
+    '''
519
+    return Response(gen_frames(id),
520
+                    mimetype='multipart/x-mixed-replace; boundary=frame')
521
+    '''
522
+    return Response(process_video(),
523
+                    mimetype='multipart/x-mixed-replace; boundary=frame')
524
+
525
+@app.route('/', methods=["GET"])
526
+def index():
527
+    return render_template('index.html')
528
+
529
+
530
+if __name__ == '__main__':
531
+    app.run(debug=True, port=9099)

二進制
cap/frame0.jpg


二進制
cap/frame1.jpg


二進制
cap/frame10.jpg


二進制
cap/frame100.jpg


二進制
cap/frame101.jpg


二進制
cap/frame102.jpg


二進制
cap/frame103.jpg


二進制
cap/frame104.jpg


二進制
cap/frame105.jpg


二進制
cap/frame106.jpg


二進制
cap/frame107.jpg


二進制
cap/frame108.jpg


二進制
cap/frame109.jpg


二進制
cap/frame11.jpg


二進制
cap/frame110.jpg


二進制
cap/frame111.jpg


二進制
cap/frame112.jpg


二進制
cap/frame113.jpg


二進制
cap/frame114.jpg


二進制
cap/frame115.jpg


二進制
cap/frame116.jpg


二進制
cap/frame117.jpg


二進制
cap/frame118.jpg


二進制
cap/frame119.jpg


二進制
cap/frame12.jpg


二進制
cap/frame120.jpg


二進制
cap/frame121.jpg


二進制
cap/frame122.jpg


二進制
cap/frame123.jpg


二進制
cap/frame124.jpg


二進制
cap/frame125.jpg


二進制
cap/frame126.jpg


二進制
cap/frame127.jpg


二進制
cap/frame128.jpg


二進制
cap/frame129.jpg


二進制
cap/frame13.jpg


二進制
cap/frame130.jpg


二進制
cap/frame131.jpg


二進制
cap/frame132.jpg


二進制
cap/frame133.jpg


二進制
cap/frame134.jpg


二進制
cap/frame135.jpg


二進制
cap/frame136.jpg


二進制
cap/frame137.jpg


二進制
cap/frame138.jpg


二進制
cap/frame139.jpg


二進制
cap/frame14.jpg


二進制
cap/frame140.jpg


二進制
cap/frame141.jpg


二進制
cap/frame142.jpg


二進制
cap/frame143.jpg


二進制
cap/frame144.jpg


二進制
cap/frame145.jpg


二進制
cap/frame146.jpg


二進制
cap/frame147.jpg


二進制
cap/frame148.jpg


二進制
cap/frame149.jpg


二進制
cap/frame15.jpg


二進制
cap/frame150.jpg


二進制
cap/frame151.jpg


二進制
cap/frame152.jpg


二進制
cap/frame153.jpg


二進制
cap/frame154.jpg


二進制
cap/frame155.jpg


二進制
cap/frame156.jpg


二進制
cap/frame157.jpg


二進制
cap/frame158.jpg


二進制
cap/frame159.jpg


二進制
cap/frame16.jpg


二進制
cap/frame160.jpg


二進制
cap/frame161.jpg


二進制
cap/frame162.jpg


二進制
cap/frame163.jpg


二進制
cap/frame164.jpg


二進制
cap/frame165.jpg


二進制
cap/frame166.jpg


二進制
cap/frame167.jpg


二進制
cap/frame168.jpg


二進制
cap/frame169.jpg


二進制
cap/frame17.jpg


二進制
cap/frame170.jpg


二進制
cap/frame171.jpg


二進制
cap/frame172.jpg


二進制
cap/frame173.jpg


二進制
cap/frame174.jpg


二進制
cap/frame175.jpg


二進制
cap/frame176.jpg


二進制
cap/frame177.jpg


二進制
cap/frame178.jpg


二進制
cap/frame179.jpg


二進制
cap/frame18.jpg


二進制
cap/frame180.jpg


二進制
cap/frame181.jpg


+ 0 - 0
cap/frame182.jpg


Some files were not shown because too many files changed in this diff

tum/whitesports - Gogs: Simplico Git Service

暫無描述

admin-functions.php 406B

12345678910111213141516
  1. <?php
  2. /**
  3. * Administration Functions
  4. *
  5. * This file is deprecated, use 'wp-admin/includes/admin.php' instead.
  6. *
  7. * @deprecated 2.5.0
  8. * @package WordPress
  9. * @subpackage Administration
  10. */
  11. _deprecated_file( basename( __FILE__ ), '2.5.0', 'wp-admin/includes/admin.php' );
  12. /** WordPress Administration API: Includes all Administration functions. */
  13. require_once ABSPATH . 'wp-admin/includes/admin.php';