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 и начать смотреть фильм...

Пример кода есть вот здесь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.