<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Добро пожаловать на форум 8 факультета МАИ! - Компьютерная графика и мультимедиа</title>
        <description>Вопросы по курсам цикла Компьютерная графика и мультимедиа</description>
        <link>https://faq8.ru/list.php?7</link>
        <lastBuildDate>Thu, 14 May 2026 10:08:45 +0300</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://faq8.ru/read.php?7,12538,12538#msg-12538</guid>
            <title>Сжатие изображения</title>
            <link>https://faq8.ru/read.php?7,12538,12538#msg-12538</link>
            <description><![CDATA[ [<a href="https://gif.d3.ru/szhatie-jpeg-izobrazheniia-1560353/?sorting=rating"  rel="nofollow">gif.d3.ru</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 01 May 2018 23:50:30 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,12514,12514#msg-12514</guid>
            <title>Новая ЛР по курсу &quot;Методы, средства и технологии малтимедиа&quot;</title>
            <link>https://faq8.ru/read.php?7,12514,12514#msg-12514</link>
            <description><![CDATA[ [<a href="http://lleo.me/dnevnik/2018/02/11.html?t=1&amp;cn=ZmxleGlibGVfcmVjc18y&amp;refsrc=email&amp;iid=e7c2c1fad6f94ebfa0a5d3744457162a&amp;uid=513382062&amp;nid=244+272699400"  rel="nofollow">lleo.me</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 20 Feb 2018 09:02:05 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,12184,12184#msg-12184</guid>
            <title>Создан читающий по губам компьютер</title>
            <link>https://faq8.ru/read.php?7,12184,12184#msg-12184</link>
            <description><![CDATA[ [<a href="https://lenta.ru/news/2016/11/10/comp/"  rel="nofollow">lenta.ru</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Sat, 12 Nov 2016 20:03:16 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,11908,11908#msg-11908</guid>
            <title>Microsoft лидирует!</title>
            <link>https://faq8.ru/read.php?7,11908,11908#msg-11908</link>
            <description><![CDATA[ [<a href="http://www.ixbt.com/news/2015/12/17/v-microsoft-sozdana-sistema-raspoznavanija-obrazov-po-tochnosti-prevoshodjashaja-cheloveka.html"  rel="nofollow">www.ixbt.com</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Thu, 17 Dec 2015 20:37:34 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,11723,11737#msg-11737</guid>
            <title>Re: Простой текстовый видео плеер</title>
            <link>https://faq8.ru/read.php?7,11723,11737#msg-11737</link>
            <description><![CDATA[ Пример простого видео-плеера на Go, с использованием <a href="https://github.com/3d0c/gmf"  rel="nofollow">Gmf</a>.<br />
<a href="https://gist.github.com/w495/1a40a09bfe50b8841602"  rel="nofollow">https://gist.github.com/w495/1a40a09bfe50b8841602</a><br />
<br />
Работа с видео на Go с библиотекой Gmf оказалась более гибкой. <br />
Местами пришлось погрузиться в детали реализации, что сделало задачу написания простого приложения сложнее.<br />
<br />
<pre class="bbcode">
//     Простой текстовый консольный видео-плеер.
//     Выводит кадры в символьном представлении на стандартный вывод.
//     Поддержки звука нет.
//
//     Как пользоваться:
//
//         $&gt; go run simple-console-video-player.go /путь/до/видео-файла.mp4
//

package main

/*
#cgo pkg-config: libavcodec libavutil

// Импортируем данные из заголовочных файлов Cи для ffmpeg и libgmf.
// Далее будем обращаться к ним, через объект «C».

#include &quot;libavcodec/avcodec.h&quot;

*/
import &quot;C&quot;

import (
    &quot;fmt&quot;
    &quot;os&quot;
    &quot;runtime/debug&quot;
    &quot;github.com/3d0c/gmf&quot;
)

// Опишем константы
const (
    // Формат видео. Оттенки серого цвета от 0 до 2¹⁶ (65536).
    FORMAT              int32  = C.AV_PIX_FMT_GRAY16
    GRAY16_SIZE         int    = 65536
    // Кодек. Никакого кодека мы тут использовать не будем.
    CODEC_ID            int    = C.AV_CODEC_ID_RAWVIDEO
    // Представление пикселей с помощью символов псевдографики.
    TEXT_PIXEL_LIST     string = &quot; .-+#&quot;
    // Масштаб видео (делим на эти число).
    SCALE_FACTOR        int    = 4
    DEFAULT_FILE_NAME   string = &quot;tests-sample.mp4&quot;
)

func main() {
    srcFileName := DEFAULT_FILE_NAME
    if len(os.Args) &gt; 1 {
        // Получаем имя видео-файла.
        // Если нам его не передали как аргумент командной строки,
        // то берем имя файла по-умолчанию.
        srcFileName = os.Args[1]
    }
    // Открываем его как видео-контейнер.
    inputContext, error := gmf.NewInputCtx(srcFileName)
    if error != nil {
        fatal(error)
    }
    // Говорим, что хотим закрыть контейнер,
    // когда закончим работу с ним
    defer inputContext.CloseInputAndRelease()
    // Выбираем видео-поток из контейнера.
    srcVideoStream, error := inputContext.GetBestStream(gmf.AVMEDIA_TYPE_VIDEO)
    if error != nil {
        fmt.Println(&quot;No video stream found in&quot;, srcFileName)
    }
    // Получим контекст (найтройки) кодека для потока исходного файла
    srcCodecContext := srcVideoStream.CodecCtx()
    // Получим размеры кадров для исходного файла.
    srcWidth  := srcCodecContext.Width()
    srcHeight := srcCodecContext.Height()
    // Вычислим размеры кадра, нужные нам.
    dstWidth  := srcWidth  / SCALE_FACTOR
    dstHeight := srcHeight / SCALE_FACTOR
    // Найдем нужный нам кодек (AV_CODEC_ID_RAWVIDEO).
    codec, error := gmf.FindEncoder(CODEC_ID)
    if error != nil {
        fatal(error)
    }
    // Создадим контекст кодека, и опишем его парпметры.
    dstCodecContext := gmf.NewCodecCtx(codec).
        SetPixFmt(FORMAT).
        SetWidth(dstWidth).
        SetHeight(dstHeight)
    // Говорим, что хотим освобидить память,
    // когда закончим работу с dstCodecContext.
    defer gmf.Release(dstCodecContext)
    // Иницализируем (откроем) контекст кодека.
    if error := dstCodecContext.Open(nil); error != nil {
        fatal(error)
    }
    // Создадим контекст масштаба.
    // Зададим исходный и результрующий контексты кодеков,
    // и то, как будем приводить один к другому (SWS_BICUBIC).
    scaleContext := gmf.NewSwsCtx(srcCodecContext,
                                  dstCodecContext,
                                  gmf.SWS_BICUBIC)
    // Говорим, что хотим освобидить память,
    // когда закончим работу с dstCodecContext.
    defer gmf.Release(scaleContext)
    // Создадим новый кадр и опишем его параметры:
    //  цветовую модель (FORMAT) и размеры.
    dstFrame := gmf.NewFrame().
        SetWidth(dstWidth).
        SetHeight(dstHeight).
        SetFormat(FORMAT)
    // Говорим, что хотим освобидить память,
    // когда закончим работу с dstFrame.
    defer gmf.Release(dstFrame)
    // Иницализируем кадр — выделяем для него память.
    if error := dstFrame.ImgAlloc(); error != nil {
        fatal(error)
    }
    // Извлекаем пакеты из видео-контейнера и проходим по кажому из них.
    for packet := range inputContext.GetNewPackets() {
        if packet.StreamIndex() != srcVideoStream.Index() {
            // Пропускаем не-видео кадры
            // (могут быть еще аудио-кадры или субтитры).
            continue
        }
        // Получаем поток пакета.
        packetStream, error := inputContext.GetStream(packet.StreamIndex())
        if error != nil {
            fatal(error)
        }
        // Получаем список кадров из пакета,
        // выполняем для каждого кадра из списка.
        for frame := range packet.Frames(packetStream.CodecCtx()) {
            // Масштабируем исходный кадр и результат кладем в dstFrame.
            scaleContext.Scale(frame, dstFrame)
            // Для полученного кадра пытаемя выделить последовательность байт,
            // и вывести их на консоль.
            if p, ready, _ := dstFrame.EncodeNewPacket(dstCodecContext); ready {
                // Выводим кадр в консоль.
                writeFrame(p.Data(), dstFrame.Width())
                defer gmf.Release(p)
            }
        }
        // Освобождаем память из под packet.
        gmf.Release(packet)
    }
}

// Выводит в консоль один кадр видео.
// Важный момент, что на вход функция принимает набор байтов,
// а не пикселей. При FORMAT = AV_PIX_FMT_GRAY16,
// один пиксель равен двум байтам.
func writeFrame(byteLinputStream []byte, width int) {
    pixel := 0
    for index, item := range byteLinputStream {
        // Формируем пиксель из текущего байта и предыдущего.
        pixel = 256 * pixel + int(item)
        if 1 == index % 2 {
            // Рисуем пиксель в консоль без перевода строки.
            fmt.Print(getGray16TextPixel(pixel))
            index = index / 2
            if 0 == (index + 1) % width {
                // Строка пикселей кончилась,
                // делаем перевод строки.
                fmt.Println()
            }
            pixel = 0
        }
    }
    // Конец кадра рисуем ограничитель (перевод строки)
    fmt.Println()
}

// Возвращает символ-пиксель, который соответствует,
// настоящему пикселю-числу формата «gray16».
func getGray16TextPixel(pixel int) string {
    // Получаем размер диапазона оттенков,
    // который будет представлен одним нашим текстовым «пикселем».
    // Эту переменную можно вынести из функции для повышения эффективности.
    step := int(GRAY16_SIZE) / len(TEXT_PIXEL_LIST)
    // Вычисляем номер нашего текстового пикселя.
    text_pixel_index := pixel / (step + 1)
    // Возвращаем символ из списка текстовых «пикселей»
    text_pixel := string(TEXT_PIXEL_LIST[text_pixel_index])
    return text_pixel
}

// Выводит подробный отчет об ошибке
func fatal(err error) {
    debug.PrintStack()
    fmt.Println(err)
}
</pre>]]></description>
            <dc:creator>w-495</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Mon, 01 Jun 2015 00:30:49 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,11723,11723#msg-11723</guid>
            <title>Простой текстовый видео плеер</title>
            <link>https://faq8.ru/read.php?7,11723,11723#msg-11723</link>
            <description><![CDATA[ Пример простого видео-плеера на Python, с использованием <a href="http://mikeboers.github.io/PyAV/"  rel="nofollow">PyAV</a> обертки для ffmpeg и libav.<br />
<a href="https://gist.github.com/w495/173534c1de5e969cbd7e"  rel="nofollow">https://gist.github.com/w495/173534c1de5e969cbd7e</a><br />
<br />
<a href="http://faq8.ru/file.php/7/335/simple-console-video-player.png"  rel="nofollow"><img src="http://faq8.ru/file.php/7/336/simple-console-video-player-800.png" class="bbcode" border="0" /></a><br />
<br />
<pre class="bbcode">
#!/usr/bin/env python
# -*- coding: utf-8 -*-

&#039;&#039;&#039;
    Простой текстовый консольный видео-плеер.
    Выводит кадры в символьном представлении на стандартный вывод.
    Поддержки звука нет.

    Как пользоваться:

        $&gt; simple-console-video-player.py /путь/до/видео-файла.mp4

&#039;&#039;&#039;

import sys

##
## Импортируем библиотеку PyAV (http://mikeboers.github.io/PyAV/).
## Библиотека была установлено командой
##      $&gt; conda install -c danielballan pyav.
##

import av
from av.video.frame import VideoFrame

##
## Масштаб видео.
##
SCALE_MEASURE  = 0.5

##
## Формат видео.
## В данном случае оттенки серого цвета от 0 до 2¹⁶ (65536).
##
FORMAT = &#039;gray16&#039;
FORMAT_GRAY16_SIZE = 65536

##
## Представление пикселей с помощью символов псевдографики.
##
TEXT_PIXEL_LIST = u&#039; .-+#&#039;

##
## Видео-файл по-умолчанию.
##
DEFAULT_FILE_NAME = &#039;video1.mp4&#039;

def main():
    ## Получаем имя видео-файла.
    video_file_name = sys.argv[1] if len(sys.argv) &gt; 1 else DEFAULT_FILE_NAME
    ## Открываем его как видео-контейнер.
    video_container = av.open(video_file_name)
    ## Извлекаем пакеты из видео-контейнера — получаем список.
    packet_list = video_container.demux()
    ## Выполняем для каждого пакета.
    for packet in packet_list:
        # Получаем список кадров из пакета.
        frame_list = packet.decode()
        ## Выполняем для каждого кадра из списка.
        for frame in frame_list:
            ## Если кадры — это видео
            ## (а могут быть еще аудио, например).
            if(type(frame) == VideoFrame):
                new_width  = int(SCALE_MEASURE * frame.width)
                new_height = int(SCALE_MEASURE * frame.height)
                ## Создаем временную кадр-структуру в нужном нам формате.
                tmp_frame = frame.reformat(
                    width  = new_width,
                    height = new_height,
                    format = FORMAT
                )

                ## Получаем из временного кадра двумерный массив пикселей.
                nd_array = tmp_frame.to_nd_array()
                ## Печатаем массив точек.
                for nd_array1 in nd_array:
                    for x in nd_array1:
                        ## Рисуем пиксель в консоль без перевода строки.
                        print get_gray16_text_pixel(x),
                    ## Строка пикселей кончилась,
                    ## делаем перевод строки.
                    print &#039;\n&#039;
                ## Конец кадра рисуем ограничитель
                print &#039;\n\n&#039;
                print &#039;==&#039; * (new_width)
                print &#039;\n\n&#039;

    print &#039;Fin!&#039;

def get_gray16_text_pixel(pixel):
    &#039;&#039;&#039;
        Возвращает символ-пиксель, который соответствует,
        настоящему пикселю-числу формата «gray16».
    &#039;&#039;&#039;
    ## Получаем размер диапазона оттенков,
    ## который будет представлен одним нашим текстовым «пикселем»
    step = FORMAT_GRAY16_SIZE / len(TEXT_PIXEL_LIST)
    ## Вычисляем номер нашего текстового пикселя.
    text_pixel_index = pixel / step
    ## Возвращаем символ из списка текстовых «пикселей»
    return TEXT_PIXEL_LIST[text_pixel_index]

if (__name__ == &#039;__main__&#039;):
    main()</pre>
<br />
Для сравнения аналогичный пример на С++, c интересным жонглированием указателями:<br />
<a href="https://www.ffmpeg.org/doxygen/2.2/filtering_video_8c-example.html"  rel="nofollow">https://www.ffmpeg.org/doxygen/2.2/filtering_video_8c-example.html</a><br />
<br />
Очередной раз показывает, в чем преимущество Python над C++.]]></description>
            <dc:creator>w-495</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Mon, 18 May 2015 01:32:12 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,10820,10820#msg-10820</guid>
            <title>3D принтеры наступают!</title>
            <link>https://faq8.ru/read.php?7,10820,10820#msg-10820</link>
            <description><![CDATA[ [<a href="http://www.ixbt.com/news/hard/index.shtml?16/86/59"  rel="nofollow">www.ixbt.com</a>] <br />
[<a href="http://lenta.ru/news/2013/05/06/3dgun/"  rel="nofollow">lenta.ru</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Sun, 26 May 2013 19:21:49 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,10408,10408#msg-10408</guid>
            <title>Терминалы V поколения</title>
            <link>https://faq8.ru/read.php?7,10408,10408#msg-10408</link>
            <description><![CDATA[ [<a href="http://www.ixbt.com/news/hard/index.shtml?15/77/83#comments_block"  rel="nofollow">www.ixbt.com</a>] <br />
<br />
1) электрические пишущие машинки: <br />
2) текстовые терминалы;<br />
3) X-терминалы;<br />
4) сетевые компьютеры Эллисона; <br />
5) облачные мониторы.]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Sat, 05 May 2012 19:43:05 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,9353,9353#msg-9353</guid>
            <title>Создание реалистичного камня, 3D-моделирование Blender</title>
            <link>https://faq8.ru/read.php?7,9353,9353#msg-9353</link>
            <description><![CDATA[ Тема подлежит удалению.]]></description>
            <dc:creator>brightstar</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Thu, 09 Sep 2010 12:55:53 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,9315,9320#msg-9320</guid>
            <title>Re: Писал мануал подруге, оцените</title>
            <link>https://faq8.ru/read.php?7,9315,9320#msg-9320</link>
            <description><![CDATA[ <b>brightstar</b>, вы молодец:) интересно.<br />
<br />
P.S. а за использование коммерческих шрифтов не ругали?)]]></description>
            <dc:creator>Scorpio</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 07 Sep 2010 19:03:13 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,9315,9315#msg-9315</guid>
            <title>Писал мануал подруге, оцените</title>
            <link>https://faq8.ru/read.php?7,9315,9315#msg-9315</link>
            <description><![CDATA[ Принадлежит к удалению.]]></description>
            <dc:creator>brightstar</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 07 Sep 2010 15:23:28 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,8849,8849#msg-8849</guid>
            <title>Уравнение рендеринга</title>
            <link>https://faq8.ru/read.php?7,8849,8849#msg-8849</link>
            <description><![CDATA[ Здравствуйте, а есть ли в МАИ родные книги ( издваемые профессорами/преподавателями МАИ ) , посвященные уравнению рендеринга?<br />
<br />
Заранее спасибо,<br />
Олег]]></description>
            <dc:creator>brightstar</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 04 May 2010 00:15:55 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4584,8801#msg-8801</guid>
            <title>Re: Знаменитый MS Surface будет доступен</title>
            <link>https://faq8.ru/read.php?7,4584,8801#msg-8801</link>
            <description><![CDATA[ Какие-то умельцы из провинции выставили на Imagine Cup 2010 неплохой суррогат!]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 30 Mar 2010 19:03:54 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4584,8800#msg-8800</guid>
            <title>Re: Знаменитый MS Surface будет доступен</title>
            <link>https://faq8.ru/read.php?7,4584,8800#msg-8800</link>
            <description><![CDATA[ [<a href="http://www.youtube.com/watch?v=IQbA7CKdsfM&amp;feature=player_embedded"  rel="nofollow">www.youtube.com</a>]<br />
А вообще если судить по сегодняшним обзорам, пока что это не очень полезная вещь, поражает разве что новизна,хотя и про интернет когда-то так говорили.]]></description>
            <dc:creator>Utah_jazz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 30 Mar 2010 18:04:32 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4584,4584#msg-4584</guid>
            <title>Знаменитый MS Surface будет доступен</title>
            <link>https://faq8.ru/read.php?7,4584,4584#msg-4584</link>
            <description><![CDATA[ [<a href="http://www.ixbt.com/news/hard/index.shtml?10/26/41"  rel="nofollow">www.ixbt.com</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Fri, 28 Mar 2008 21:41:38 +0300</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4583,4583#msg-4583</guid>
            <title>Second Life</title>
            <link>https://faq8.ru/read.php?7,4583,4583#msg-4583</link>
            <description><![CDATA[ [<a href="http://www.poisknews.ru/2007/07/18/prikhodi_na_menja_posmotret.html"  rel="nofollow">www.poisknews.ru</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Sat, 28 Jul 2007 19:14:03 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4566,4566#msg-4566</guid>
            <title>Гитара USB</title>
            <link>https://faq8.ru/read.php?7,4566,4566#msg-4566</link>
            <description><![CDATA[ [<a href="http://www.ixbt.com/news/hard/index.shtml?04/94/98"  rel="nofollow">www.ixbt.com</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Sat, 29 Oct 2005 15:41:26 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4565,4565#msg-4565</guid>
            <title>Математическая скульптура</title>
            <link>https://faq8.ru/read.php?7,4565,4565#msg-4565</link>
            <description><![CDATA[ [<a href="http://www.mmonline.ru/news.php?mid=5331&amp;topic=131"  rel="nofollow">www.mmonline.ru</a>]]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Sat, 29 Oct 2005 15:14:14 +0400</pubDate>
        </item>
        <item>
            <guid>https://faq8.ru/read.php?7,4564,4564#msg-4564</guid>
            <title>Форум по КГ и ММ на ВМиК</title>
            <link>https://faq8.ru/read.php?7,4564,4564#msg-4564</link>
            <description><![CDATA[ По адресу [<a href="http://forum.graphicon.ru"  rel="nofollow">forum.graphicon.ru</a>] открылись форумы лаборатории компьтерной графики и мультимедиа при ВМиК! В них можно обсудить новости графических технологий, обсудить алгоритмы, задать вопросы (и получить ответы сотрудников лаборатории). Там же можно будет получить информацию по курсам компьютерной графики (http://graphics.cs.msu.su/courses), обсудить статьи в электронном журнале (http://cgm.graphicon.ru) и пополнения нашей библиотеки (http://library.graphicon.ru/catalog/). Все приглашаются!]]></description>
            <dc:creator>zzz</dc:creator>
            <category>Компьютерная графика и мультимедиа</category>
            <pubDate>Tue, 05 Oct 2004 19:23:17 +0400</pubDate>
        </item>
    </channel>
</rss>
