The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Организация вещания потокового Flash-видео средствами ffserver и ffmpeg
ffserver идёт в комплекте с ffmpeg и выполняет роль медиа-сервера - получает
видеопоток от ffmpeg, который может быть запущен на другой машине, и раздаёт
его пользователям.

Каждый получаемый поток называется Feed-ом (далее будет просто фид). Таких
потоков может быть несколько, так же как и отдаваемых (выходных). FFmpeg у нас
будет захватывать видео с веб-камеры или читать из файла.

Сначала настроим ffserver, правим /etc/ffserver.conf:

   Port 8090
   BindAddress 0.0.0.0
   MaxClients 100
   MaxBandwidth 20000
   NoDaemon
  
   # Фид, надо запомнить feed.ffm, он нам потребуется при запуске ffmpeg
   <Feed feed.ffm>
      File /tmp/feed.ffm
      FileMaxSize 3M
   </Feed>
   <Stream test.flv>
      # Ранее объявленный фид
      Feed feed.ffm
      Format flv
      VideoCodec flv
      VideoFrameRate 30
      VideoBufferSize 80000
      VideoBitRate 200
      # Качество видео от 1 до 31, 1 == отлично 31 == фи!
      VideoQMin 1
      VideoQMax 5
      # Разрешение, везде должно быть одинаково!
      VideoSize 352x288
      PreRoll 1
      # Если у вас есть микрофон, или вы транслируете видео со звуком, закомментируйте эту строчку
      Noaudio
   </Stream>
   
   # Флешка test.swf для просмотра трансляции
   <Stream test.swf>
      Feed feed.ffm
      # Будет запускаться в Adobe Flash Player
      Format swf
      VideoCodec flv
      VideoFrameRate 30
      VideoBufferSize 50000
      VideoBitRate 100
      VideoQMin 1
      VideoQMax 5
      # Разрешение, везде должно быть одинаково!
      VideoSize 352x288
      PreRoll
      # Если у вас есть микрофон, или вы транслируете видео со звуком, закомментируйте эту строчку
      46. Noaudio
   </Stream>

Запускаем ffserver:

   $ ffserver

Запускаем ffmpeg:

   $ ffmpeg -s 352x288 -r 30 -f video4linux2 -i /dev/video0 http://localhost:8090/feed.ffm

-s разрешение, указанное в конфурации ffserver, 
-r количество кадров/секунду, 
-f формат, 
-i путь к камере (или к видео-файлу), 
http://localhost:PORT/FEED - это адрес, где ffserver будет ждать наш поток

PS: если выдаст ошибку, то можно попробовать формат v4l (-f video4linux)

Открываем в браузере http://localhost:8090/test.swf 


Для отправки видео поменяем параметр -i на путь к файлу, уберём -f (ffmpeg сам
определит формат файла):

   $ ffmpeg -s 352x288 -r 30 -i ~/big_buck_bunny.ogg http://localhost:8090/feed.ffm

Ну а что бы вставить нашу флешку в html-страницу используем следующий код:

   <embed src="http://localhost:8090/test.swf" width="550" height="400"></embed>
 
29.12.2009 , Автор: wizard , Источник: http://wiz.su/2009/12/20/potokovoe-...
Ключи: flv, video, flash, ffmpeg
Раздел:    Корень / Пользователю / Обработка изображений и видео

Обсуждение [ RSS ]
  • 1.1, shadow_alone (ok), 17:05, 31/12/2009 [ответить]  
  • +/
    Спасибо. Позновательно.
     
  • 1.2, demimurych (?), 13:40, 03/01/2010 [ответить]  
  • +/
    перепечатка манов на opennet ?

    не указано ни проблем которые возникнут ни их решений.

    не говоря уже о том что сам ffserver сам по себе крайне не стабилен. И в настоящий момент, если и пытаться решать подобного рода задачи, то использовать для этого vlc

     
     
  • 2.3, eth1 (?), 22:38, 04/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ну так и изложили бы вкратце, что имеете ввиду...
     
  • 2.4, luzers (?), 08:21, 06/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Уважаемый!
    оформите заметку про влц, как организовать сервер, как организовать поток, что нужно указать для того что бы на страничке показывалось.
     

  • 1.5, guest (??), 17:36, 06/01/2010 [ответить]  
  • +/
    я что-то не понял

    что это за файл http://localhost:8090/test.swf

    где его взять test.swf ?

     
     
  • 2.6, luzers (?), 18:07, 06/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ффсервер его организует
     

  • 1.7, анонимус (??), 18:19, 02/04/2010 [ответить]  
  • +/
    и своей веселой рожей сам себя и веселю.. к чему это я, ах да:
    откуда картинка браться будет, что является источником видео?
     
     
  • 2.8, Amir (??), 11:06, 03/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    web-camera
     

  • 1.9, Сергей (??), 13:33, 29/09/2010 [ответить]  
  • +/
    Это всё конечно славно, а у когонибудь получилось вместе с видео с веб-камеры ещё и звук с микрофона транслировать? Поделитесь решением )
     
     
  • 2.10, Максим (??), 18:00, 16/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Трансляция звука вместе с видео например так:
    ffmpeg -f alsa -i hw:1 -f video4linux2 -s 640x480 -qscale 1 -r 25 -i /dev/video0 -vcodec mjpeg
    где hw:1 берется из $ arecord -l
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру