Русское сообщество AutoIt

  • Май 20, 2012, 13:00:40 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:


Последняя финальная версия AutoIt: 3.3.8.1 (Скачать)
Последняя Beta версия AutoIt: 3.3.9.4 (Скачать)

Реклама

Автор Тема: Передача потокового видео  (Прочитано 895 раз)

0 Пользователей и 2 Гостей смотрят эту тему.

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 83
  • Online Online
  • Пол: Мужской
  • Сообщений: 771
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Передача потокового видео
« Создано: Февраль 27, 2011, 14:06:07 »

с помощью клиент сервера

server
Код: AutoIt [Выделить]
#include <WindowsConstants.au3>
#include <Webcam.au3>
#include <GUIConstants.au3>
#include <GDIPlus.au3>

_GDIPlus_Startup()

TCPStartup()
$listen = TCPListen("ip", порт )
Do
    $tcp = TCPAccept($listen)
Until $tcp <> -1

$gui = GUICreate("Webcam", 160, 120)

$dll_avi = DllOpen("avicap32.dll")
$dll_user = DllOpen("user32.dll")

$cap = DllCall($dll_avi, "int", "capCreateCaptureWindow", "str", "cap", "int", BitOR($WS_CHILD, $WS_VISIBLE), "int", 0, "int", 0, "int", 160, "int", 120, "hwnd", $gui, "int", 1)

DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_CONNECT, "int", 0, "int", 0)
DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_SCALE, "int", 1, "int", 0)
DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_OVERLAY, "int", 1, "int", 0)
DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEW, "int", 1, "int", 0)
DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEWRATE, "int", 1, "int", 0)

GUISetState(@SW_SHOW)

$timer = TimerInit()
$fps = 10
While 1
    If (GUIGetMsg() = $GUI_EVENT_CLOSE) Then
        ExitLoop
    EndIf
    If (TimerDiff($timer) > 1000 / $fps) Then
        $timer = TimerInit()
        DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_GRAB_FRAME_NOSTOP, "int", 0, "int", 0)
        DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_FILE_SAVEDIBA, "int", 0, "str", "temp.bmp")
        $img = _GDIPlus_ImageLoadFromFile("temp.bmp")
        _GDIPlus_ImageSaveToFile($img, "temp.jpg")
        _GDIPlus_ImageDispose($img)
        TCPSend($tcp, StringToBinary(FileRead("temp.jpg")))
    EndIf
WEnd

DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_END, "int", 0, "int", 0)
DllCall($dll_user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)
DllClose($dll_user)


клиент
Код: AutoIt [Выделить]
#include <GUIConstants.au3>
GUICreate("Test", 320, 240)
$pic = GUICtrlCreatePic("", 0, 0,  320, 240)
GUISetState(@SW_SHOW)
TCPStartup()
$tcp = TCPConnect("ip", порт)
While 1
    If (GUIGetMsg() = $GUI_EVENT_CLOSE) Then
        ExitLoop
    EndIf
    $r = TCPRecv($tcp, 1024)
    FileWrite("tcp.jpg", Binary($r))
    If (BinaryMid($r, BinaryLen($r)-1, 2) = "0xFFD9") Then
        GUICtrlSetImage($pic, "tcp.jpg")
        FileDelete("tcp.jpg")
    EndIf
WEnd

библиотека Webcam.au3




  Записан

Arei [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 83
  • Online Online
  • Пол: Мужской
  • Сообщений: 771
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Передача потокового видео
« Ответ #1, Отправлен: Февраль 27, 2011, 14:13:08 »
я наверно не там тему создал по привычке.Извините.




  Записан

Max98 [?]

  • Новичок
  • *
  • Репутация: 2
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 45
  • Версия AutoIt: 3.3.2.0
    • Награды
Re: Передача потокового видео
« Ответ #2, Отправлен: Март 03, 2011, 10:53:15 »
Необязательно так сложно. Можно же просто взять часть видео-файла и отправить по TCP клиенту, а клиент приняв часть файла запишет её в отдельный файл и воспроизведёт.  :IL_AutoIt_1:




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Видео уроки по AutoIt
Инструменты и помощь по AutoIt
CreatoR 41 12381 Последний ответ Февраль 18, 2012, 15:40:29
от Kill Phil
Запись видео с монитора
Примеры и рабочие проекты
Zaramot 5 1959 Последний ответ Сентябрь 17, 2010, 19:13:51
от CreatoR
Работа с видео
AutoIt для новичков
Vlasssov 1 3678 Последний ответ Сентябрь 18, 2011, 01:10:02
от Zaramot
[Математика] Методы сортировки [наглядное видео]
Общение
Redline 0 407 Последний ответ Сентябрь 23, 2011, 15:24:22
от Redline
Как правильно записать функцию _SoundGetMasterVolume() (прикрепил видео)?
AutoIt для новичков
agikon 20 971 Последний ответ Октябрь 08, 2011, 00:59:38
от Dm666
Распознование изображения дорожных знаков на видео
Стол заказов
Duero 3 476 Последний ответ Октябрь 16, 2011, 23:17:57
от hikki
Как записать видео с веб-камеры
AutoIt для новичков
Max98 4 888 Последний ответ Март 13, 2012, 16:11:32
от Max98
[Сеть, интернет] Запись потокового видео и аудио
AutoIt для новичков
tref777 27 1818 Последний ответ Январь 27, 2012, 23:05:17
от Medic84
Как определить битрейт видео
AutoIt для новичков
Max98 4 505 Последний ответ Январь 19, 2012, 22:10:37
от Max98
Несоответствие звука с видео
Общение
CreatoR 23 771 Последний ответ Май 10, 2012, 15:13:35
от CreatoR


Реклама

* Последние сообщения на форуме
post Re: [Мышь, клавиатура] Привязка клика по координатам к клавише
[Стол заказов] megatoxx Сегодня в 12:41:37
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:35:14
post Re: Защита исходного кода программы
[AutoIt для новичков] Ganibal95 Сегодня в 12:34:22
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:33:22
post Re: Защита исходного кода программы
[AutoIt для новичков] Ganibal95 Сегодня в 12:21:05
post Re: Проблема с циклами While
[AutoIt для новичков] Yashied Сегодня в 12:14:25
post Сглаживание рывков при передачи новых координат игрока по TCP/IP
[Общение] Ganibal95 Сегодня в 12:10:37
post Перенесено: Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] Yashied Сегодня в 12:09:28
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:09:05
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15

* Пользователи онлайн
  • Dot Гостей: 116
  • Dot Скрыт: 2
  • Dot Пользователей: 27
  • Dot Пользователи Online: