Запись потокового видео - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите с чего начать. Есть поток mms://live.rfn.ru/rtr-planeta_64 , посредством чего мне его воспроизводить, а потом еще и записать локально в avi формат.
С воспроизведением разобрался. Пробовал через mediaelement, делал все правильно, но не работало. Потом прогуглив, оказалось, что из-за WMP 9 версии mediaelement не работает. Обновил до 10- все гуд. Теперь вопрос записи из mediaelement. Как это сделать?

Решение задачи: «Запись потокового видео»

textual
Листинг программы
  1.  public class Listener
  2.  
  3.  {
  4.  
  5.   private TcpListener _listener;
  6.  
  7.   public Listener()
  8.  
  9.   {
  10.  
  11.     _listener = new TcpListener(IPAddress.Parse("127.0.0.1"), xxxx);
  12.  
  13.     //catch the MediaPlayer requests here
  14.  
  15.         ListenForClients();
  16.  
  17.     }
  18.  
  19.     ....
  20.  
  21.     //do streaming and caching here
  22.  
  23.     private int StreamAndSave(Stream outputNetStream, Stream responceStream, Stream fileStream, long fileSize)
  24.  
  25.   {
  26.  
  27.    int bytesRead = 0;
  28.  
  29.    byte[] buffer = new byte[4096];
  30.  
  31.    while (fileSize > 0)
  32.  
  33.    {
  34.  
  35.     int readBytes = responceStream.Read(buffer, 0, buffer.Length);
  36.  
  37.     if (readBytes > 0)
  38.  
  39.     {
  40.  
  41.      try
  42.  
  43.      {
  44.  
  45.       //write bytes to response and send it to MediaPlayer
  46.  
  47.       outputNetStream.Write(buffer, 0, readBytes);
  48.  
  49.       //save to the file system
  50.  
  51.       fileStream.Write(buffer, 0, readBytes);
  52.  
  53.       bytesRead += readBytes;
  54.  
  55.      }
  56.  
  57.      catch (Exception e)
  58.  
  59.      {
  60.  
  61.       break;
  62.  
  63.      }
  64.  
  65.     }
  66.  
  67.     else break;
  68.  
  69.     fileSize -= readBytes;
  70.  
  71.    }
  72.  
  73.    return bytesRead;
  74.  
  75.   }
  76.  
  77. }
  78.  
  79. //Set appropriate source to the MediaElement:
  80.  
  81. <MediaElement Source="http://localhost/xxxx" />
  82. //It works for me.
  83.  
  84. //Thanks,
  85.  
  86. //Sam

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут