Видео вещание в сеть
От: H.P. Baxxter  
Дата: 16.12.05 10:58
Оценка:
Хочу написать небольшую программку, с небольшим функционалом. Всё, что она должна уметь — это открыть видео-файл и начать вещать его в сеть, так, чтобы любой пользователь сети, к которой я подключён, мог свободно просматривать это через, ну например, Windows Media Player. Как можно организовать такое вот вещание?
Re: Видео вещание в сеть
От: VyacheslavZhitomirskiy  
Дата: 16.12.05 12:23
Оценка: 15 (4)
Здравствуйте, H.P. Baxxter, Вы писали:

HPB>Хочу написать небольшую программку, с небольшим функционалом. Всё, что она должна уметь — это открыть видео-файл и начать вещать его в сеть, так, чтобы любой пользователь сети, к которой я подключён, мог свободно просматривать это через, ну например, Windows Media Player. Как можно организовать такое вот вещание?


Надо скачать Windows Media Encoder здесь и SDK к нему (там примеры и описание). Установить. Создать новый проект, добавить reference на Windows Media Encoder (на закладке COM).
Создание энкодера выглядит примерно так:


using WMEncoderLib;

////////////////
////////////////
        private void button1_Click(object sender, EventArgs e)
        {
            // Create WMEncoderApp and WMEncoder objects.
            WMEncoderApp EncoderApp = new WMEncoderApp();
            IWMEncoder Encoder = EncoderApp.Encoder;

            // Specify the source for the input stream.
            IWMEncSourceGroupCollection SrcGrpColl = Encoder.SourceGroupCollection;
            IWMEncSourceGroup SrcGrp = SrcGrpColl.Add("SG_1");

            IWMEncVideoSource2 SrcVid = (IWMEncVideoSource2) SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
            SrcVid.SetInput("D:\\Media\\Video\\dmb.avi", "", "");

            // Specify a profile.
            IWMEncProfile Pro;
            IWMEncProfileCollection ProColl = Encoder.ProfileCollection;

            for (int i = 0; i < ProColl.Count; i++)
            {
                Pro = ProColl.Item(i);
                if (Pro.Name == "Windows Media Video 8 for Local Area Network (384 Kbps)")
                {
                    SrcGrp.set_Profile(Pro);
                    //SrcGrp.Profile = Pro;
                    break;
                }
            }

            // Retrieve an IWMEncBroadcast object.
            IWMEncBroadcast BrdCst = Encoder.Broadcast;

            // Set the port number.
            BrdCst.set_PortNumber(WMENC_BROADCAST_PROTOCOL.WMENC_PROTOCOL_HTTP, 8080);

            // Start the encoding process.
            Encoder.PrepareToEncode(true);
            Encoder.Start();


        }



Запустить. На другом компе в сети открыть MediaPlayer и из него при помощи команды "Open URL" открыть URL http://_broadcaster_:8080 и начать смотреть фильм...

Пример кода есть вот здесь
Re[2]: Видео вещание в сеть
От: H.P. Baxxter  
Дата: 16.12.05 21:24
Оценка:
Отлично! Большое спасибо. Скачал encoder, устроил небольшой бродкаст — супер. Но похоже мне этот энкодер придётся за своей прогой тоскать? Или нет?
Re[3]: Видео вещание в сеть
От: Аноним  
Дата: 17.12.05 05:57
Оценка:
Здравствуйте, H.P. Baxxter, Вы писали:

HPB>Но похоже мне этот энкодер придётся за своей прогой тоскать? Или нет?


Естественно придётся.
Re[4]: Видео вещание в сеть
От: dammer Россия  
Дата: 17.12.05 15:54
Оценка:
Здравствуйте, Аноним, Вы писали:

HPB>>Но похоже мне этот энкодер придётся за своей прогой тоскать? Или нет?


А>Естественно придётся.


Это не обязательно. Если не добавлять референс а написать свой wrapper для нужных
стуктур и интерфейсов. Затем при помощи PInvoke (wmvcore.dll) получить нужный интерфейс например IWMEncoder через вызов WMCreateEncoder.

В комплекте с SDK есть пример (SDK_DIR)\samples\managed

Если лень писать wrapper руками может помочь Augma com2net.
Re[5]: Видео вещание в сеть
От: Аноним  
Дата: 17.12.05 16:01
Оценка:
Здравствуйте, dammer, Вы писали:

D>Это не обязательно. Если не добавлять референс а написать свой wrapper для нужных

D>стуктур и интерфейсов. Затем при помощи PInvoke (wmvcore.dll) получить нужный интерфейс например IWMEncoder через вызов WMCreateEncoder.
Речь идёт о программе, называемой Windows Media Encoder.
Re[6]: Видео вещание в сеть
От: H.P. Baxxter  
Дата: 17.12.05 19:58
Оценка:
Encoder можно без проверки скачать, а вот SDK к нему — нет . Если есть у кого, киньте на мыло freddie-mercury'"'АБBГД'"'mail.ru, плз.
Re[7]: Видео вещание в сеть
От: H.P. Baxxter  
Дата: 22.12.05 09:41
Оценка:
Здравствуйте, H.P. Baxxter, Вы писали:

HPB>Encoder можно без проверки скачать, а вот SDK к нему — нет . Если есть у кого, киньте на мыло freddie-mercury'"'АБBГД'"'mail.ru, плз.


Кое-как слил SDK. Для скольких максимум пользователей можно организовать вещание? здесь
Автор: Adopt
Дата: 06.05.05
написано 1-3. Это правда?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.