02.9.2018, 11:28
02.9.2018, 11:28
02.9.2018, 11:52
Kód:
#! /bin/bash
source=$*
tempplaylist=$(mktemp -u)".m3u8"
stream=$(grep -A 1 "${source}$" /storage/.kodi/userdata/addon_data/service.playlist.o2tv/o2tv.generic.m3u8 | head -n 2 | tail -n 1)
wget -qO ${tempplaylist} ${stream}
streamcount=$(cat ${tempplaylist} | grep -Eo "(http|https)://[\da-z./?A-Z0-9\D=_-]*" | wc -l)
streamcount=$((streamcount-1))
if [ "$streamcount" = "-1" ]; then streamcount=0; fi
ffmpeg -protocol_whitelist file,http,https,tcp,tls -fflags +genpts -loglevel fatal -i ${tempplaylist} -probesize 32 -reconnect_at_eof 1 -reconnect_streamed 1 -c copy -map p:${streamcount}? -f mpegts -bsf:v h264_mp4toannexb,dump_extra -mpegts_service_type digital_tv pipe:1
02.9.2018, 12:03
pavuucek: Díky za info o odebraní -re nyní i přepínaní je rychlejší....a stabilnější....
alibababa: Ahoj mám taky arm ale zkoušel jsem pavuucek script no. 2 a byly chyby... Mám dojem že ffmpeg je pro LE arm je očesaný....
Mohlo fungovat takto?
ffmpeg -fflags +genpts -i ${tempplaylist} -probesize 32 -c copy -f mpegts -map p:${streamcount}? -mpegts_service_type digital_tv pipe:1
alibababa: Ahoj mám taky arm ale zkoušel jsem pavuucek script no. 2 a byly chyby... Mám dojem že ffmpeg je pro LE arm je očesaný....
Mohlo fungovat takto?
ffmpeg -fflags +genpts -i ${tempplaylist} -probesize 32 -c copy -f mpegts -map p:${streamcount}? -mpegts_service_type digital_tv pipe:1
02.9.2018, 12:11
Playlist se stáhne do adresáře /tmp a jméno má náhodně vygenerovaný, ale dá se najít podle přípony m3u8.
Prosím odmaž ffmpegu parametr -loglevel fatal , snad z něj vypadne co že to vůbec dělá, nebo nedělá...
Prosím odmaž ffmpegu parametr -loglevel fatal , snad z něj vypadne co že to vůbec dělá, nebo nedělá...
02.9.2018, 12:12
pavuucek : na čem provozuješ TVH s ffmpeg?
02.9.2018, 12:13
02.9.2018, 12:15
02.9.2018, 12:18
02.9.2018, 12:23
alibababa: jen pro příklad mě pro jiný playlist to funguje takto pod LE arm:
ffmpeg -fflags +genpts -i $(grep -A 2 "$*$" /storage/.kodi/userdata/playilist.m3u | head -n 3 | tail -n 1) -probesize 32 -c copy -f mpegts -map 0:v -map 0:a -mpegts_service_type digital_tv pipe:1
ffmpeg -fflags +genpts -i $(grep -A 2 "$*$" /storage/.kodi/userdata/playilist.m3u | head -n 3 | tail -n 1) -probesize 32 -c copy -f mpegts -map 0:v -map 0:a -mpegts_service_type digital_tv pipe:1
02.9.2018, 12:37
(02.9.2018, 12:11)pavuucek Napsal(a): [ -> ]Playlist se stáhne do adresáře /tmp a jméno má náhodně vygenerovaný, ale dá se najít podle přípony m3u8.
Prosím odmaž ffmpegu parametr -loglevel fatal , snad z něj vypadne co že to vůbec dělá, nebo nedělá...
Tak uz tu je problem, protoze se playlist nikam do /tmp neulozi, prolezl sem vsechny slozky...
Odmazano, ale jak a kde zjistim, co z ffmpegu pada?
02.9.2018, 13:28
V logu tvheadendu, tj na úplně tom samým místě co vypadlo tohle :-)
(01.9.2018, 23:19)alibababa Napsal(a): [ -> ]2018-09-01 23:16:14.956 mpegts: o2tv.playlist.m3u8 - ČT sport HD in O2TV - tuning on IPTV
2018-09-01 23:16:14.960 spawn: Executing "/storage/.kodi/userdata/addon_data/service.playlist.o2tv/test.sh"
2018-09-01 23:16:14.961 subscription: 000B: "scan" subscribing to mux "o2tv.playlist.m3u8 - ČT sport HD", weight: 6, adapter: "IPTV", network: "O2TV", service: "Raw PID Subscription"
2018-09-01 23:16:14.965 iptv: stdin pipe unexpectedly closed: No data
2018-09-01 23:16:29.956 mpegts: o2tv.playlist.m3u8 - ČT sport HD in O2TV - scan no data, failed
2018-09-01 23:16:29.956 subscription: 000B: "scan" unsubscribing
02.9.2018, 13:37
Po smazani "-loglevel fatal" log nic jineho, nez jsem napsal drive, neukazuje. Hlavne asi vidim problem v tom, ze se nikam do /tmp playlist neuklada...
02.9.2018, 13:51
Pánové, jen poznámka. Pro podrobnější výpis je třeba ještě TVH log přepnout do debug mode, ale ani tak patrně nedostanete úplný výpis z ffmpeg (tedy to si jen myslím). Já si funkci skriptu raději zkouším jeho zavoláním (se správným parametrem) z konzole. Jen je vhodné z volání ffmpeg vyhodit pipe:1, jinak toho moc neuvidíte a u některých streamů vám dá zatracenou práci ten sypající se čaj vůbec zastavit.
A pokud nemůže najit ten uložený playlist, tak ať si dá místo $(mktemp -u)".m3u8" třeba "/storage/.kodi/userdata/addon_data/service.playlist.o2tv/playlist.m3u8"
A pokud
02.9.2018, 14:04
02.9.2018, 14:11
02.9.2018, 14:14
ffmpeg -protocol_whitelist file,http,https,tcp,tls -fflags +genpts -loglevel fatal -i ${tempplaylist} -probesize 32 -reconnect_at_eof 1 -reconnect_streamed 1 -c copy -map p:${streamcount}? -f mpegts -bsf:v h264_mp4toannexb,dump_extra -mpegts_service_type digital_tv pipe:1
02.9.2018, 14:32
02.9.2018, 14:46
Kód:
#! /bin/bash
source=$*
tempplaylist="/storage/.kodi/userdata/addon_data/service.playlist.o2tv/playlist.m3u8"
stream=$(grep -A 1 "${source}$" /storage/.kodi/userdata/addon_data/service.playlist.o2tv/o2tv.generic.m3u8 | head -n 2 | tail -n 1)
wget -qO ${tempplaylist} ${stream}
streamcount=$(cat ${tempplaylist} | grep -Eo "(http|https)://[\da-z./?A-Z0-9\D=_-]*" | wc -l)
streamcount=$((streamcount-1))
if [ "$streamcount" = "-1" ]; then streamcount=0; fi
ffmpeg -protocol_whitelist file,http,https,tcp,tls -fflags +genpts -i ${tempplaylist} -probesize 32 -reconnect_at_eof 1 -reconnect_streamed 1 -c copy -map p:${streamcount}? -f mpegts -bsf:v h264_mp4toannexb,dump_extra -mpegts_service_type digital_tv
Z o2tv.playlist.m3u8 napisu do putty
pipe:///storage/.kodi/userdata/addon_data/service.playlist.o2tv/test.sh Prima Cool HD
A vysledek je
CoreELEC:~ # pipe:///storage/.kodi/userdata/addon_data/service.playlist.o2tv/test.sh
Prima Cool HD
-sh: pipe:///storage/.kodi/userdata/addon_data/service.playlist.o2tv/test.sh: not found
02.9.2018, 15:13
02.9.2018, 15:26
-sh: /storage/.kodi/userdata/addon_data/service.playlist.o2tv/test.sh: not found
Jinak zadny playlist, se mi do /tmp neuklada, i jsem vsude mozne tento adresar vytvoril. Problem musi byt v tom tempplaylistu. Jinak uz fakt nevim...
Chodi pls nekomu ten skript treba na maline nebo android boxu?