Запись потокового видео - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5