Запись потокового видео - C#
Формулировка задачи:
Подскажите с чего начать. Есть поток mms://live.rfn.ru/rtr-planeta_64 , посредством чего мне его воспроизводить, а потом еще и записать локально в avi формат.
С воспроизведением разобрался. Пробовал через mediaelement, делал все правильно, но не работало. Потом прогуглив, оказалось, что из-за WMP 9 версии mediaelement не работает. Обновил до 10- все гуд.
Теперь вопрос записи из mediaelement. Как это сделать?
Решение задачи: «Запись потокового видео»
textual
Листинг программы
public class Listener
{
private TcpListener _listener;
public Listener()
{
_listener = new TcpListener(IPAddress.Parse("127.0.0.1"), xxxx);
//catch the MediaPlayer requests here
ListenForClients();
}
....
//do streaming and caching here
private int StreamAndSave(Stream outputNetStream, Stream responceStream, Stream fileStream, long fileSize)
{
int bytesRead = 0;
byte[] buffer = new byte[4096];
while (fileSize > 0)
{
int readBytes = responceStream.Read(buffer, 0, buffer.Length);
if (readBytes > 0)
{
try
{
//write bytes to response and send it to MediaPlayer
outputNetStream.Write(buffer, 0, readBytes);
//save to the file system
fileStream.Write(buffer, 0, readBytes);
bytesRead += readBytes;
}
catch (Exception e)
{
break;
}
}
else break;
fileSize -= readBytes;
}
return bytesRead;
}
}
//Set appropriate source to the MediaElement:
<MediaElement Source="http://localhost/xxxx" />
//It works for me.
//Thanks,
//Sam