Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅ΠΉ β ΡΠ΄Π°Π»ΡΠ½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² ΠΠΈΠΆΠ½Π΅ΠΌ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄Π΅
ΠΠ°ΡΠ°: 2024-06-05
ΠΠ΅ΡΠ°Π»ΠΈ
Π Π΅Π³ΠΈΠΎΠ½
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
ΠΠ°Π½ΡΡΠΎΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
2024-06-05
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ³Π½Π°ΡΡ ΠΌΠ΅Π΄ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· BEFUnet (ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ) ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Ρ detectron2 (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ½Π°Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ), Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π²ΠΎΠ΄ΠΎΡΠ°Π·Π΄Π΅Π»Π° ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ...
ΠΠΎΡ
ΠΎΠΆΠΈΠ΅ Π·Π°ΠΊΠ°Π·Ρ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
ΠΎΡ 1000.00 ΡΡΠ±.
ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ( ΡΠΊΡΠΈΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠ») ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ°ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ Π½Π° ΡΠΈΠ°Π½ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΄Π΅Π»ΠΊΡ Π² Π°ΠΌΠΎ ΡΡΠΌ. ΠΡΠΆΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ. https://disk.yandex.ru/d/2_9_RpdV1JnTXQ.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-29
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π₯ΠΎΡΡ Π±ΡΠ°ΡΡ ΡΡΠΎΠΊΠΈ Π½Π° ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΠΌΡ. ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΠΎΠΆΠ½ΡΡ ΠΊΠ°ΡΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-29
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: Π΄Π»Ρ iOS, Π΄Π»Ρ Android. Π£ΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΡΠΌΠ°ΡΡΡΠΎΠ½Ρ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ 6 ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ. ΠΏΡΠΎΡΡΠΎΠ΅. (ΠΌΠ΅ΡΠ΅Π½Π΄ΠΆΠ΅Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ).
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
2024-10-25
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ. ΠΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅Ρ.
ΠΠΈΠΆΠ½ΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ
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