90 likes | 310 Views
Модификация Virtual DUB к ластерной обработки видео. для. Исполнитель проекта: Дмитрий Болдырев. Компиляция VirtualDub . Release build -- 1.7.2 (experimental) Установить DirectX SDK 2. Добавить header-файлы DirectX 3. Установить Microsoft Platform SDK 4. Добавить header-файлы PSDK
E N D
МодификацияVirtualDUB кластерной обработки видео для Исполнитель проекта: Дмитрий Болдырев
Компиляция VirtualDub • Release build -- 1.7.2 (experimental) • Установить DirectX SDK • 2. Добавить header-файлы DirectX • 3. Установить Microsoft Platform SDK • 4. Добавить header-файлы PSDK • 5. Открытьпроект VirtualDub.sln
Конфигурационные файлы VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(1); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompressionWithHint(85,8000,2,0,2500,1,12,"A…F","MPEG Layer-3 Codec "); VirtualDub.audio.EnableFilterGraph(0); VirtualDub.video.SetInputFormat(0); VirtualDub.video.SetOutputFormat(7); VirtualDub.video.SetMode(3); VirtualDub.video.SetSmartRendering(0); VirtualDub.video.SetPreserveEmptyFrames(0); VirtualDub.video.SetFrameRate(0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetCompression(0x78766964,0,10000,0); VirtualDub.video.SetCompData(95,"LWJ2MSA3ODA…………..XByb2ZpbGU9MwA="); VirtualDub.video.filters.Clear(); VirtualDub.audio.filters.Clear();
Скриптовый язык Sylia • Синтаксис напоминает С. • Поддерживает int, double, string. • Код – набор объявлений, присваиваний и обращений • к функциям классов. • Структура скрипта: • // $script • <Тело скрипта> • // $endjob
Скриптовый язык Sylia declare len, frr, cnum, dur, pdur; VirtualDub.Open("c:\\Videos\\CamVids\\trips.avi"); VirtualDub.video.SetMode(0); VirtualDub.audio.SetMode(0); len = VirtualDub.video.length; frr = VirtualDub.video.framerate; cnum = 3; dur = 1000 * len / frr; pdur = dur / cnum; VirtualDub.video.SetRange(0, dur-pdur); VirtualDub.SaveAVI("c:\\Videos\\CamVids\\trips1.avi"); VirtualDub.video.SetRange(pdur, dur-2*pdur); VirtualDub.SaveAVI("c:\\Videos\\CamVids\\trips2.avi"); VirtualDub.video.SetRange(2*pdur, 0); VirtualDub.SaveAVI("c:\\Videos\\CamVids\\trips3.avi");
Сетевой доступ Библиотеки - ACE (The ADAPTIVE Communication Environment) • C++ Sockets • Asio … - Winsock 2 (Windows Sockets API)
Сетевой доступ Пример (сервер): #include <winsock2.h> int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData); SOCKET socket (int af, int type, int protocol); int bind (SOCKET s, const struct sockaddr FAR* name, int namelen); int listen (SOCKET s, int backlog ); SOCKET accept (SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen); int send (SOCKET s, const char FAR * buf, int len,int flags); int recv (SOCKET s, char FAR* buf, int len, int flags); int closesocket (SOCKET s);
Возможные оптимизации • Система разделения файлов • Система оценки производительности • Система тестирования и статистики • Экономия дискового пространства