Zanonimizowana wersja forum tylko do odczytu

Restreaming za pomocą ffmpeg

Pobieranie, nagrywanie, kopiowanie, transkodowanie strumienia audio/wideo.
Post Reply
anonim
Początkujący
Posts: 12
Joined: 2013-12-22, 18:09
Contact:

Restreaming za pomocą ffmpeg

Post by anonim »

Witam.
W ostatnim czasie zainteresowałem się streamingiem i restreamingiem. Chciałbym się dowiedzieć czy istnieje możliwość restreamingu za pomocą ffmpeg kanałów z weeb.tv.
Mam vps z zainstalowanym ffmpeg lecz nie wiem jak dokonać restreamingu jeżeli mógłby ktoś mi pomóc lub nakierować byłbym wdzięczny.

anonim
Weteran
Posts: 826
Joined: 2013-05-04, 15:44

Post by anonim »

Jest to jak najbardziej możliwe, jednak wymaga dodatkowo rtmpdump'a z patchem do weebtv - oczywiście mówimy tu o VPS z zainstalowanym systemem linux.

Instalacja rtmpdump tutaj
viewtopic.php?t=122

Potem zapoznaj się z tym tematem
viewtopic.php?t=121

Aktualne wersje WeebTV.php i Weeb.TV.xml tutaj
https://github.com/K-S-V/Scripts/blob/master/WeebTV.php
https://github.com/K-S-V/Scripts/blob/master/WeebTV.xml

jeżeli chcesz bezpośrednio przez ffmpeg bez wykorzystania vlc
linijkę

Code: Select all

$command = $basecmd . " | \"$vlc\" --meta-title \"$filename\" -";

zamien na

Code: Select all

$command = $basecmd . " | "ffmpeg -i - -acodec copy -vcodec copy -f flv rtmp://wychodzące-z-jakies-strony";


Temat poruszany kilkakrotnie na forum, nawet była gotowa paczka jeżeli chodzi o Windows.

anonim
Początkujący
Posts: 12
Joined: 2013-12-22, 18:09
Contact:

Post by anonim »

Dzięki wielkie.
Zrobiłem wszystko tak jak opisane jest w tutorialach czyli zpachowałem rtmpdump i pobrałem pliki od K-S-V oraz edytował plik WeebTV.php tak aby można było restreamować kanały za pomocą ffmpeg lecz wywala mi błąd. Niby wszystko poprawnie idzie bo pobiera token i autoryzacja przebiega pomyślnie lecz na koniec i tak Wyskakuje ERROR. Gdyby ktoś mógł pomóc lub nakierować o co robię nie tak będę wdzięczny.

Code: Select all

Retrieving info....
RTMP Url: rtmp://37.48.65.12/channel/60
Playpath: liveHI
Token   : 85720248
Premium : Yes
Command : rtmpdump -r "rtmp://37.48.65.12/channel/60/liveHI" -W "http://static.weeb.tv/player.swf" --weeb "DANE KONTA TUTAJ" --live | ffmpeg -i -acodec copy -vcodec copy -f flv rtmp://rtmp.goodcast.pw:1935/liverepeater/134621
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: You haven't specified an output file (-o filename), using stdout
Connecting ...
ffmpeg version 0.7.15, Copyright (c) 2000-2013 the FFmpeg developers
  built on Jan  5 2014 00:40:37 with gcc 4.4.5
  configuration: --enable-gpl --enable-nonfree --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.123. 0 / 52.123. 0
  libavformat  52.111. 0 / 52.111. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
-acodec: No such file or directory
INFO: Connected...
INFO: Token.authorization
INFO: User.hasAccess
INFO: Weeb.tv authentication successful
Starting Live Stream
INFO: Metadata:
INFO:   presetname            Custom
INFO:   creationdate          Fri Dec 13 20:11:15 2013
INFO:   videodevice           Decklink Video Capture
INFO:   framerate             25.00
INFO:   width                 1280.00
INFO:   height                720.00
INFO:   videocodecid          avc1
INFO:   videodatarate         1800.00
INFO:   avclevel              51.00
INFO:   avcprofile            77.00
INFO:   videokeyframe_frequency5.00
INFO:   audiodevice           Decklink Audio Capture
INFO:   audiosamplerate       48000.00
INFO:   audiochannels         2.00
INFO:   audioinputvolume      75.00
INFO:   audiocodecid          mp4a
INFO:   audiodatarate         96.00
0.621 kB / 0.00 sec
Caught signal: 13, cleaning up, just a second...
ERROR: Download: Failed writing, exiting!

anonim
Weteran
Posts: 826
Joined: 2013-05-04, 15:44

Post by anonim »

Dostajesz błąd

Code: Select all

-acodec: No such file or directory


Na pierwszy rzut oka juz widac że, źle skopiowaleś, powinno być:

Code: Select all

ffmpeg -i - -acodec copy -vcodec copy -f flv rtmp://..

anonim
Początkujący
Posts: 12
Joined: 2013-12-22, 18:09
Contact:

Post by anonim »

Dzięki wielkie jarek małe niedopatrzenie z mojej strony restreaming działa lecz na niektórych kanał w większości na kanała HD niby ffmpeg wysyła do serwera lecz kanały się nie odtwarzają w playerze, a na wszystkich kanałach SD działa ładnie w czym może być problem?

anonim
Weteran
Posts: 826
Joined: 2013-05-04, 15:44

Post by anonim »

Może to jakieś ograniczenie na serwerze na którym emitujesz kanały.

Miło mi że mogłem pomóc ;-)

anonim
Początkujący
Posts: 12
Joined: 2013-12-22, 18:09
Contact:

Post by anonim »

W sumie mam jeszcze jedno zasadnicze pytanie dotyczące pliku WeebTV.php. Próbowałem go edytować w taki sposób aby podczas uruchomienia wyświetlił mi listę z jednym kanałem np TVN pod numerem jeden lecz moje próby nie przyniosły żadnych rezultatów z powodu wyskakującego błędu preg_match_all po zmianie ciągu odpowiadającego za pobieranie listy kanałów. Czy mógłby ktoś mi pomóc? Jak się chyba nie mylę to jest ciąg kodu odpowiadający za pobieranie listy, Jak go zmodyfikować aby pobrał tylko jeden kanał o danej nazwie np TVN jak już wcześniej mówiłem.

Code: Select all

  $html = GetHtmlResponse($cc, "http://weeb.tv/channels/live");
      preg_match('/<ul class="channels">(.*?)<\/ul>/is', $html, $html);
      $html = $html[1];
      preg_match_all('/<fieldset[^>]+>(.*?)<\/fieldset>/is', $html, $fieldSets);
      foreach ($fieldSets[1] as $fieldSet)
        {
          preg_match('/12px.*?<a href="([^"]+)"[^>]+>(.*?)<\/a>/i', $fieldSet, $channelVars);
          $ChannelList[$channelVars[2]] = $channelVars[1];
        }
      uksort($ChannelList, 'strnatcasecmp');

      $FirstRun    = true;
      $KeepRunning = true;
      while ($KeepRunning)
        {
          if ($FirstRun)
              $FirstRun = false;
          else
              ShowHeader();
          Display($ChannelList, $ChannelFormat, 3);
          printf("Enter Channel Number : ");
          $channel = trim(fgets(STDIN));
          if (is_numeric($channel) && ($channel >= 1) && ($channel <= count($ChannelList)))
            {
              $url      = $ChannelList[KeyName($ChannelList, $channel - 1)];
              $filename = KeyName($ChannelList, $channel - 1);
              ShowChannel($url, $filename);
            }
          else
              $KeepRunning = false;
        }

administrator
Administrator
Posts: 27
Joined: 2013-05-04, 14:26

Post by administrator »

Code: Select all

..
$url      = "http://weeb.tv/online/tvp-1";
..


tzn jeżeli ustawisz jak wyżej zawsze mimo wyboru któregokolwiek kanału będzie to TVP1.

anonim
Początkujący
Posts: 12
Joined: 2013-12-22, 18:09
Contact:

Post by anonim »

Dzięki widać można to w prosty sposób rozwiązać :D
A w sumie to mam jeszcze jedno pytanko. Załóżmy że skonfigurowałem plik WeebTV.php w taki sposób aby obraz wysyłał za pomocą ffmpeg na serwer za pomocą rtmp. Odpalam plik WeebTV.php wybieram kanał i on zostaje wysłany na serwer, lecz po jakimś czasie transmisja stopuje się i trzeba ją na nowo wznowić. Czy da się w linuxie zrobić skrypt który sam odpali WeebTV.php wtedy gdy zauważy że została przerwana transmisja.

anonim
Posts: 2
Joined: 2016-01-23, 18:22

Re: Restreaming za pomocą ffmpeg

Post by anonim »

jestem nowa czy którys z gentlemanów pomogł by mi bo nie potrafie blondynka nie jestem ,ale niepotrafie
jak wystrumieniowac sygnał z tunera na strone www w html .
no chociaz kamerke z chaty .
Mam serwerek vps debian nie kumam jakie tam musza byc narzedzia .
Strone sobie postawiłem jak kazda Brunetka by to zrobiła ale nie potrafie streamingowac sygnału na serwer w jakims playerze by wszyscy ogladali JAK SIE TO ROBI ??
Z GÓRY DZIEKI ZAPOMOC PANOM FACHOWCOM MOJ GG:55322805

Post Reply