• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Ako na tu pipe? strem s koncoukou atk -vyriešene
#1
Ahojte viem ze sa tu vela riesila tapipe ale mne sa nedari spojazdnit a celkovo sa tocim v kruhu.
Preto by som bol velmi vdacny ak by mi niekto poradil co mam robit 
takze 
mam link
http://link.com/stream/play.m3u8?c=nazov_atk ten sa snazim prejst cez trubku ale furt mi vypisuje no input alebo bad instance. skusal som rozne a bez uspechu vobec neviem o com to je a dako sa mi to nedari ani pochopit

Riešenie: netreba pipe ale staci pridat do:
Custom HTTP Headers :  User-Agent: VLC/3.0.11 LibVLC/3.0.11\r\n
+ odfajknut -  Accept zero value for TSID:
 
Citovat
#2
@sonics007 Popsáno je to např. v Tvheadend a IPTV a já teď fakt nevím, co na tom ještě vysvětlovat. Ale nějak to zkusím.

Základní princip je ten, že místo adresy streamu, ze které do Tvheadend přichází data streamu, si Tvheadend spustí aplikaci a očekává, že data streamu dostane na jejím stdout. Tento mechanismus Tvheadend používá jak pro streamy, tak například pro data epg (xmltv) v případ tzv. interních grabberů.

Obecně je tedy formát pro data streamů následující:
Kód:
pipe://<app>

kde <app> je příslušná aplikace a její parametry. Většinou se jako <app> používám ffmpeg, ale může to samozřejmě být i jiná aplikace, pokud umí na stdout poslat data streamu. Může to tedy například být i nějaký script, ve kterém se teprve zavolá ffmpeg nebo jiná aplikace.

Takže, pokud máš adresu streamu http://link.com/stream/play.m3u8?c=nazov_atk, tak pak by to mohlo pro přímé volání ffmpeg vypadat například takto:
Kód:
pipe://ffmpeg -fflags +genpts -i http://link.com/stream/play.m3u8?c=nazov_atk -vcodec copy -acodec copy -f mpegts -mpegts_service_type digital_tv pipe:1
kde:
pipe://ffmpeg - říklá tvhedend, že má spustit aplikaci ffmpeg. Vše co následuje jsou pak už parametry ffmpeg. Tady si musíš dát pozor, jak máš ffmpeg v systému instalované a taky to, že to ffmepg je spouštěné userem pod kterým běží tvheadend. Tzn. že ne vždy stačí uvést jen ffmpeg, ale někdy je třeba například zadat celou cestu k aplikaci ffmpeg. Pokud si nejsi jistý, stačí místo ffmpeg napsat celou cestu, kde je ffmpeg uložené, rovnou. Tím rozhodně nic nezkazíš. To je třeba takto řešit například v některých *ELEC instalacích, kde není ffmpeg standardně instalováno, ale je do systému kopírováno pomocí mechanismu addon Kodi.
-i http://link.com/stream/play.m3u8?c=nazov_atk - říká, že ffmpeg bude data číst z adresy streamu http://link.com/stream/play.m3u8?c=nazov_atk
pipe:1 - říká, že výstupní stream z výše uvedené adresy bude ffmpeg posílat na stdout

Ten příklad ale smysl moc nedává vyjma případů, kdy je potřeba jen přebalit obsah původního kontejneru do TS, kterému jedinému Tvheadend rozumí.

Častější použití je takové, že se v pipe volá nějaký script s parametrem:
Kód:
pipe:///abc/script.sh Channel1
a ve volaném scriptu se s pomocí parametru získá (například dotazem na serveru OTT služby) adresa streamu. Pak musí být někde v těle scriptu (na jeho konci) podobné volání ffmpeg, teď už pochopitelně bez pipe://:
Kód:
ffmpeg -fflags +genpts -i http://link.com/stream/play.m3u8?c=nazov_atk -vcodec copy -acodec copy -f mpegts -mpegts_service_type digital_tv pipe:1

To, že ti Tvheadend data nenačte může být způsobeno několika důvody:
  • buď je adresa streamu špatná nebo je například špatná autentizace nebo skončila platnost streamu - některé OTT služby to tak mají, že součástí adresy streamu je tzv. token, pomocí kterého se určuje/kontroluje platnost vygenerované adresy
  • nespustí se ffmpeg - není zadaná správně cesta k aplikaci. Tady je důležité si uvědomit, pod kterým userem se Tvheadend spouští. Ono nestačí, že když zadáš v systému příkaz ffmpeg a on se ti spustí. Tvheadend může běžet pod jiným userem a pro něj ta cesta není v jeho parametru PATH definovaná a je tedy třeba ji do volání pipe:// zadat explicitně
  • ffmpeg se spustí, ale data, která dostává, nejsou platnými daty streamu - respektive ffmpeg tato data neumí dekódovat - to se stává v případě, když je pro stream použit kontejner/portokol, který použitá verze ffmpeg neumí (není sestavena s příslušnými knihovnami)
 
Citovat
#3
@JiRo:
Dik JiRo, prispevky od teba su vzdy obsiahle a k veci. Ak budem doma tak to vyskusam a dam report . Otazka na zaver ma zadanie USER-AGENT vplyv na pipe?
 
Citovat
#4
@sonics007 User agent (UA) může mít vliv na odpověď serveru OTT služby.

Buď tak že se podle něj mění obsah/struktura odpovědi tak, aby lépe odpovídala danému klientovi nebo systému na kterém běží.

Nebo tak, že pro nějaký specifický obsah UA server vrátí adresu streamu se specifickými parametry (například nižší kvalita streamu), případně adresu streamu nevrátí vůbec. To jsou ty případy, kdy se provider naštve, protože je jeho služba využívána způsobem, který se mu nelíbí.
 
Citovat
#5
@JiRo
url podla teba 
Kód:
pipe://ffmpeg -fflags +genpts -i http://link.com/stream/play.m3u8?c=nazov_atk -vcodec copy -acodec copy -f mpegts -mpegts_service_type digital_tv pipe:1
 
Vysledok
Kód:
 
2021-01-04 15:48:42.427 spawn: Executing "/usr/bin/ffmpeg"
2021-01-04 15:48:42.427 subscription: 02F4: "HTTP" subscribing to mux "free.m3u - názov", weight: 10, adapter: "IPTV #2", network: "free TV", service: "Raw PID Subscription", hostname="123.123.123.123", client="VLC/3.0.11 LibVLC/3.0.11"
2021-01-04 15:48:42.470 spawn: ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
2021-01-04 15:48:42.470 spawn:   built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
2021-01-04 15:48:42.470 spawn:   configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enabl
2021-01-04 15:48:42.470 spawn:   libavutil      55. 78.100 / 55. 78.100
2021-01-04 15:48:42.470 spawn:   libavcodec     57.107.100 / 57.107.100
2021-01-04 15:48:42.470 spawn:   libavformat    57. 83.100 / 57. 83.100
2021-01-04 15:48:42.470 spawn:   libavdevice    57. 10.100 / 57. 10.100
2021-01-04 15:48:42.470 spawn:   libavfilter     6.107.100 /  6.107.100
2021-01-04 15:48:42.470 spawn:   libavresample   3.  7.  0 /  3.  7.  0
2021-01-04 15:48:42.470 spawn:   libswscale      4.  8.100 /  4.  8.100
2021-01-04 15:48:42.470 spawn:   libswresample   2.  9.100 /  2.  9.100
2021-01-04 15:48:42.470 spawn:   libpostproc    54.  7.100 / 54.  7.100
2021-01-04 15:48:42.567 spawn: [hls,applehttp @ 0x5627abbf9ee0] Opening 'http://link.com/stream/key.php?c=nazov_atk' for reading
2021-01-04 15:48:42.683 spawn: [hls,applehttp @ 0x5627abbf9ee0] Opening 'crypto+http://ip/live/nazov_atk/20210104_154810.ts' for reading
2021-01-04 15:48:58.420 subscription: 02F4: service instance is bad, reason: No input detected
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - close PID fullmux subscription [0003/0x7f979892d580]
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - stopping mux
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - close PID 0000 (0) [20/0x7f97981c2d40]
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - close PID 0001 (1) [16/0x7f9798212390]
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - close PID 0010 (16) [20/0x7f9798dfb920]
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - close PID 0011 (17) [16/0x7f9798059ec0]
2021-01-04 15:48:58.420 mpegts: free.m3u - názov in free TV - close PID 0011 (17) [20/0x7f9798153e50]
2021-01-04 15:49:00.420 subscription: 02F4: No input source available for subscription "HTTP" to mux "free.m3u - názov in free TV"
2021-01-04 15:49:00.420 webui: Couldn't start streaming /stream/mux/3506052854beb04752b09f2320d9d527?ticket=23a5857af3964813ca269c78bc67e3b0138427d5, No input detected
2021-01-04 15:49:00.420 subscription: 02F4: "HTTP" unsubscribing, hostname="123.123.123.123", client="VLC/3.0.11 LibVLC/3.0.11"
2021-01-04 15:49:00.479 http: 123.123.123.123: using ticket 23a5857af3964813ca269c78bc67e3b0138427d5 for /stream/mux/3506052854beb04752b09f2320d9d527
2021-01-04 15:49:00.479 mpegts: free.m3u - názov in free TV - add raw service
2021-01-04 15:49:00.479 mpegts: free.m3u - názov in free TV - tuning on IPTV #2
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - open PID 0000 (0) [20/0x7f97981c2d40]
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - open PID 0001 (1) [16/0x7f9798212390]
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - open PID 0010 (16) [20/0x7f9798dfb920]
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - open PID 0011 (17) [20/0x7f9798153e50]
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - open PID 0011 (17) [16/0x7f9798059ec0]
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - started
2021-01-04 15:49:00.486 mpegts: free.m3u - názov in free TV - open PID fullmux subscription [0003/0x7f9794012d80]
2021-01-04 15:49:00.486 subscription: 02F5: "HTTP" subscribing to mux "free.m3u - názov", weight: 10, adapter: "IPTV #2", network: "free TV", service: "Raw PID Subscription", hostname="123.123.123.123", client="VLC/3.0.11 LibVLC/3.0.11"

ffmpeg mam nainstalovany poslednu verziu
tvh ma user sonics007
linux ma iba root usera
 
Citovat
#6
riesenie: netreba pipe ale staci pridat do:
Custom HTTP Headers :  User-Agent: VLC/3.0.11 LibVLC/3.0.11\r\n
+ odfajknut Accept zero value for TSID:
jedine co je problem pri foce scan mi to z nastaveni kanalov zmizne je zapotreby opatovne zadat user-agent

hladam riesenie
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)