Здравствуйте, 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 и начать смотреть фильм...
Пример кода есть вот
здесь