Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΡΠ΄Π°Π»ΡΠ½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² ΠΠΈΠΆΠ½Π΅ΠΌ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄Π΅
ΠΠ°ΡΠ°: 2024-10-25
ΠΠ΅ΡΠ°Π»ΠΈ
Π Π΅Π³ΠΈΠΎΠ½
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
ΠΠ°Π½ΡΡΠΎΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
2024-10-25
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: Π΄Π»Ρ iOS, Π΄Π»Ρ Android. Π£ΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΡΠΌΠ°ΡΡΡΠΎΠ½Ρ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ 6 ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ. ΠΏΡΠΎΡΡΠΎΠ΅. (ΠΌΠ΅ΡΠ΅Π½Π΄ΠΆΠ΅Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ).
ΠΠΎΡ
ΠΎΠΆΠΈΠ΅ Π·Π°ΠΊΠ°Π·Ρ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ. ΠΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅Ρ.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-25
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ³Ρ Π½Π° Unity
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π‘Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ ΠΊΠ»ΡΡ. ΠΠ³ΡΠ°: Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΠΠ, Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠ³ΡΠ°: ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½Π°Ρ. ΠΠ°Π½Ρ: ΠΊΠ²Π΅ΡΡ. ΠΡΠ°ΡΠΈΠΊΠ°: 2D.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-22
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ·Π»ΠΎΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°. ΠΠ·Π»ΠΎΠΌ. Π‘ΠΎΠ·Π΄Π°Π»ΠΈ Π»Π΅Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΌΠΎΠΈΠΌΠΈ ΡΠΎΡΠΎ ΠΠ°Π΄ΠΎ ΡΠ·Π½Π°ΡΡ ΠΊΡΠΎ ΡΡΠΎ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π‘ΠΎΠ·Π΄Π°Π»ΠΈ Π»Π΅Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΌΠΎΠΈΠΌΠΈ ΡΠΎΡΠΎ ΠΠ°Π΄ΠΎ ΡΠ·Π½Π°ΡΡ ΠΊΡΠΎ ΡΡΠΎ.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-20
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Python
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Data Science. ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π½Π°ΡΡΡΠΎΠΉΠΊΠ°. ΠΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Ρ ΠΊΠ°ΠΌΠ΅ΡΡ(dev/video0) Π²ΠΈΠ΄Π΅ΠΎ Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅(ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ h264) ΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ rtsp Π½Π° ΠΌΠΎΠΉ ip Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ(Π±Π΅Π· Π΄ΠΎΡΡΡΠΏΠ° Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ). ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° - ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ, Π±ΡΠ»ΠΎ Π²ΠΈΠ΄Π΅ΠΎ .h264, Π° ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅, mpeg Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. import gi gi.require_version('Gst', '1.0') gi.require_version('GstRtspServer', '1.0') from gi.repository import GLib, Gst, GstRtspServer from picamera2 import Picamera2 from picamera2.encoders import H264Encoder from picamera2.outputs import FfmpegOutput import socket # Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ IP Π°Π΄ΡΠ΅ΡΠ° def get_local_ip(): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('[Π’Π΅Π»Π΅ΡΠΎΠ½ ΡΠΊΡΡΡ]', 1)) ip = s.getsockname()[0] except Exception: ip = '127.0.0.1' finally: s.close() return ip class CameraRtspFactory(GstRtspServer.RTSPMediaFactory): def init(self, pipeline): super(CameraRtspFactory, self).init() self.pipeline = pipeline def do_create_element(self, url): return self.pipeline def main(): # ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΌΠ΅ΡΡ picam2 = Picamera2() video_config = picam2.create_video_configuration(main={"size": (1920, 1080)}) picam2.configure(video_config) encoder = H264Encoder(bitrate=17000000) # ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ RTSP ΡΠ΅ΡΠ²Π΅ΡΠ° Gst.init(None) server = GstRtspServer.RTSPServer() server.set_service('8554') # ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΡ
ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· GStreamer pipeline_str = ( 'appsrc ! videoconvert ! video/x-raw,format=I420 ! ' 'x264enc bitrate=17000 speed-preset=ultrafast tune=zerolatency ! ' 'rtph264pay name=pay0 pt=96 config-interval=1' ) gst_pipeline = Gst.parse_launch(pipeline_str) # ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΡ
ΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠ°ΠΌΠ΅ΡΡ ffmpeg_output = FfmpegOutput(gst_pipeline.get_by_name("appsrc")) picam2.start_recording(encoder, ffmpeg_output) # ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° RTSP factory = CameraRtspFactory(gst_pipeline) factory.set_shared(True) mount_points = server.get_mount_points() mount_points.add_factory("/test", factory) server.attach(None) ip = get_local_ip() print(f"Streaming RTSP at rtsp://{ip}:8554/test") loop = GLib.MainLoop() loop.run() if name == "main": main().
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-19
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΠ»Ρ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ (ΠΠ) Π½Π° WordPress ΠΈΡΠ΅ΠΌ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ, Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π±ΡΠ΄ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅. Π€ΠΎΡΠΌΠ°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊΠΎΠ² ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π° ΡΡΡΠ°Π½Ρ. ΠΠΏΠ»Π°ΡΠ° Π·Π° ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ. ΠΠ°Π΄Π°ΡΠΈ: 1) Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠ² Π½Π° ΡΠ΅ΡΡΡΡ Π΄Π»Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² 2) ΠΠΎΠΈΡΠΊ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² ΠΠ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡ-ΠΊΠ°ΡΡΡ (MindMap) ΠΈ Π΄ΠΎΡΠΎΠΆΠ½ΡΠ΅-ΠΊΠ°ΡΡΡ (RoadMap) 3) ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ² (Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠ°), ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎ Π½ΠΈΠΌ ΡΡΠ°ΡΡΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ
ΡΡΡΠΎΠΊΠ°Ρ
.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-18
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΊΡΠΏΠΊΠ΅ Π½ΠΎΡΡΠ±ΡΠΊΠ°. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°. ΠΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΊΡΠΏΠΊΠ΅ Π½ΠΎΡΡΠ±ΡΠΊΠ°. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΠΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΊΡΠΏΠΊΠ΅ Π½ΠΎΡΡΠ±ΡΠΊΠ°.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-15