Dziękuję za 3 podpowiedzi.

Trzecia nie zadziałała - df podaje wielkość wolumenu ale bez quot. Pierwsza też nie przejdzie, bo przez WWW  to jakaś ciężka Java startuje i nie wygrzebie tego z wielopoziomowego menu.... ale  może napiszę taką stronkę? tak, to chyba jest pomysł.

Drugi - czyli wywołać zdalną komendę też ciekawy. Muszę przebadać, choć już widzę, że admin nie ma prawa czytać cudzych quot (dziwne), a na roota przez SSH nie wejdę.

Oj, jakie ciężkie jest to życie.

Mam w domu TP-1043 co oprócz AP WiFi robi za magnetowid, a dokładnie zapisuje strumienie multicastowe telewizji za pomocą procesu udpxrec (świetny, rosyjski pakiet). Zapisuje na podmontowanym sambą serwerze plików - dokładnie to Synology (cudowna rzecz dla słabych w Linuxie).

No i pomimo 3TB macierzy pojawia się problem wolnego miejsca. Oczywiście, mogę na serwerze ustawić quote, ale jak ją na tym OpenWRT odczytać, aby poinformować rodzinkę, że najpierw to musi coś skasować (wiele rzeczy jest naprawdę zbędnych) a dopiero potem może sobie coś nagrać bo dysków większych niż 4TB to jeszcze nie robią.

Jeszcze raz:
- na OperWRT jest samba, podmontowany zasób serwera plików Synology
- na OperWRT nagrywa się procesem udpxrec do podmontowanego katalogu
- na OpenWRT jest przez WWW zrobiony system zlecania tego nagrywania (opisałem go tu kiedyś jak ktoś zainteresowany - polecam)
- i na tym OpenWRT muszę się dowiedzieć, ile miejsca jest na tym podmontowanym zasobie.

Koledzy - pomóżcie? Jak?

Już chciałem quite na tym OperWRT instalować, ale pewnie jest mądrzejszy sposób a i ten nie wiem czy mądry, bo czy quota odczyta mi stan innego serwera?

Jak?

Wojtek

3

(11 odpowiedzi, napisanych Oprogramowanie / Software)

TVHeadend? Nawet nie wiedziałem, że jest TVHeadend! Muszę poGoooglać.

W.

4

(11 odpowiedzi, napisanych Oprogramowanie / Software)

alossek napisał/a:
Wojciech Apel napisał/a:

Zabawa w VLANy na TP-1043 jakoś mi nie wychodziła, wieszało się, szalało więc na swiczu obok wydzieliłem port z IPTV i wprowadzilem do TP-linka odobno.

Też mam 1043, też mam IPTV, powalczyłem i da się to zrobić.
Śmiga aż miło, więcej tu:
http://eko.one.pl/forum/viewtopic.php?id=3400

Nie ukrywam, że to Twój artykuł stał się dla mnie inspiracją aby tego TP-linka kupić i OpenWRT zainstalować. Bez Ciebie nie wpadłbym na to, że takie udpxy istnieje, choć wiem, że mój kumpel odpowiednik tego napisał, u niego w domu i u nas w sieci działa, ale nie zrobił tego w sposób nadający się do publikacji.

W.

No tak. Czyli muszę poszukać innego narzędzia do zapisywania tym razem strumienia w formacie ASF. Najlepsze by było VLC ale nie ma a ja nie potrafię skompilować.

No niestety - wywołanie

streamripper  mms://stream.polskieradio.pl/program2  -l 60  -d /mk-125-video/radio/ -s -a PR2  --debug

nie działa i z tego powodu jest mi smutno. A przecież płacę abonament za radio!

W logu debagera pojawia się coś takiego:

RECV req     1 bytes, got     1 bytes
RECV req     1 bytes, got     1 bytes
RECV req     1 bytes, got     1 bytes
RECV req     1 bytes, got     1 bytes
http header:
HTTP/1.0 200 OKM
Content-Type: video/x-ms-asfM
Cache-Control: max-age=0, no-cacheM
Server: Cougar/9.6.7600.16564M
Content-Length: 124M
Date: Sun, 02 Dec 2012 19:54:09 GMTM
Pragma: no-cache, xResetStrm=1M
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache, com.microsoft.wm.startupprofileM
M
Deduced content type: 1
FILELIB_INIT: output_directory=/mk-125-video/radio/
FILELIB_INIT: output_pattern=
FILELIB_INIT: showfile_pattern=
Converted output directory: len=20
devicesplit: 20 -> 0 20
Got odir_path absolute path
Composed pattern head (20) <- (0,0,20)
Trying to make output_directory: /mk-125-video/radio/
Trying to make incomplete_directory: /mk-125-video/radio/incomplete/
RIPSTREAM_DESTROY
RIPSTREAM_RIP: top of loop
RECV req  1024 bytes, got   124 bytes
RECV req   900 bytes, got     0 bytes
recv received zero bytes!
rip_manager_recv: expected 1024, got 124
get_stream_data bad return code: -7
relaylib_shutdown:start
***relaylib_shutdown:return
RIPSTREAM_DESTROY
start_ripping: checkpoint 1
start_ripping: checkpoint 2
***** URL = mmsh://stream.polskieradio.pl/program2 *****
inet_sc_connect(): calling httplib_parse_url
inet_sc_connect(): calling sockinit
inet_sc_connect(): calling sock_open: host=stream.polskieradio.pl, port=80
inet_sc_connect(): calling httplib_construct_sc_request
inet_sc_connect(): calling socklib_sendall
inet_sc_connect(): calling get_sc_header
RECV req     1 bytes, got     1 bytes
RECV req     1 bytes, got     1 bytes
RECV req     1 bytes, got     1 bytes

ale nie wiem czy to źle coś na moim TP-Linku z OperWRT czy też KRRiT coś mi zakazała.

7

(11 odpowiedzi, napisanych Oprogramowanie / Software)

#1. Mam przyjemność brać internet od operatora, który ma też usługę telewizji IPTV. Wysyła mi więc do domu, na innym VLANie piękne strumienie 200 kanałów, przy czym to co w powietrzu jest FTA i co nie jest zbyt płatne i premium szyfrowane nie jest. Czasem nawet premium leci otwartym tekstem, bo taki CANAL+ w ramach promocji daje wszystkim. Nagrywanie na STB jest kłopotliwe, bo tam dysk mały, tylko na STB otworzyć się da.... zrobiłem więc sobie z OperWRT taki mały magnetowid.

#2. Korzystam z ruskiego udpxrec - śliczny program z pakietu udpxy zamieniającego multicasty na strumien http (togo znowu używam do oglądania niezakodowanych (TVP1, TVP-Kultura, TV Trwam) kanałów w kuchni, na iPadzie).

To udpxyrec jest śliczne, ale wywoływanie z konsoli było kłopotliwe dla mnie i domowników. Logować się na jakiegoś Linuxa? Oj, nie..... Zrobiłem więc nakładkę, aby z WWW dało się to wywołać i jeżeli ma to być inspiracją dla kogoś, kto też ma IPTV to polecam.

#3. Wyjaśnienia do kodu:
- multicasty mam dostępne na innym fizycznym porcie. Zabawa w VLANy na TP-1043 jakoś mi nie wychodziła, wieszało się, szalało więc na swiczu obok wydzieliłem port z IPTV i wprowadzilem do TP-linka odobno.
- nagrywanie dokonuje się na domowy serwer (zwie się mk-125). W tej chwili jest to Synology - i dlatego takie cuda z montowanie katalogów. Do TP-linka nie chciałem podłączać dysków skoro obok leży porządny serwer.
- fajnie się tego używa. Rodzinka zadowolona, a jak jeszcze u operatora przez chwile zepsuł się system szyfrowania... ale już naprawili.
- wgrywa się to w katalog /www/cgi-bin - jak widać, zapisałem to w shell'u bo w tym pisać kiedyś umiałem
- to co się nagrywa określa się poprzez adres grupy multicastowej. Dla rodzinki dorobiłem też wybór z menu i pierwszy raz w życiu użyłem AWK'a :-)
- aby działał wybór z menu to w tym samym katalogu powinien też być plik lista-kanalow-nagrywanych o strukturze
  nazwa kanalu ; grupa multicastowa ;


#4. Miłego nagrywania fajnych filmów z TVP-Kultura i nie tylko.

W.


#!/bin/sh

#
# Obs3uga przez www i cgi-bin procesu nagrywania multicastów programem udpxrec
#
# wersje:
# 1.0    - 29 lipca 2012     - pierwsza stabilna wersja
# 1.1    - 12 sierpnia         - wszystko w jednym, wykonywalnym pliku
# 1.2    - 3 pa_dziernika     - dok3adam wypisywanie do loga komend i parametrow bo co¶ _le nagrywa - inny kana3 i inn± godzinê
# 1.3    - 8 pa_dziernika     - dorabiak drugi formularz, z wyborem kanalu z menu
#                 - jakies tyle formatuj±ce dla zabawy
# 1.4    - 13 pa_dziernika    - dok3adam automatyczne montowanie serwera jezeli nie jest podmontowany
#
#

version="1.4"

echo "Content-type: text/html"
echo ""

cat <<EOT
<?xml version="1.0" encoding="ISO-8859-2"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head><title>Magnetowid $version</title>

<style>

body {
    font-family: Verdana, sans-serif, Arial; 
    background-color: #FFFFF4;
}

div {
    margin: 0.4em;
    padding: 0.3em 1em;
}

h1, h2, h3 {
    margin: 0;
    padding: 0.2em 0;
}

</style>

</head>
<body>
EOT

data=`date "+%Y-%m-%d %H:%M:%S"`
cmd=`echo "$QUERY_STRING" | grep -oE "(^|[?&])cmd=[^&]+" | sed "s/%3A/:/g" | sed "s/%2B/+/g" | cut -f 2 -d "=" | head -n1`

# w celach debugingowych wsadam w log informacje o wywo3aniu i parametrach
cat <<EOT >> /var/log/udpxrec.log

*********************************

$data Uruchomienie /cgi-bin/magnetowid 
--- command: $cmd
--- query_string: $QUERY_STRING
EOT

if [ $DEBUG ] ; then
    echo "$QUERY_STRING"
    echo "Komenda: $cmd"
    echo "<hr>"
fi

case $cmd in
ps)
    echo "<h1>Lista procesow udpxy i udpxrec</h1>"
    echo "<pre>"
    ps | grep "udpx" | grep -v "grep"
    echo "</pre>"
    ;;

killur)
    echo "<h1>Lista procesow udpxrec</h1>"
    echo "<pre>"
    echo "Przed skasowaniem"
    ps | grep "udpxrec" | grep -v "grep"
    killall udpxrec
    sleep 1 # kilowanie troszkê trwa
    echo "Po  skasowaniu"
    ps | grep "udpxrec" | grep -v "grep"
    echo "</pre>"
    
    ;;

log)
    echo "<h1>Plik z logiem  udpxyrec</h1>"
    echo "<pre>"
    cat /var/log/udpxrec.log
    echo "</pre>"
    ;;

ls)
    echo "<h1>Katalogi zamontowane - sprawdz czy je widac</h1>"
    echo "<pre>"
    echo "<h3>Katalog: //mk-125/video - wszystkie materialy wideo na serwerze</h3>"
    ls -l /mk-125-video
    echo "<h3>Katalog: //mk-125/video/magnetowid - uzywany do nagrywania</h3>"
    ls -l /mk-125-video/magnetowid
    echo "</pre>"
    ;;

umount)
    umount /mk-125-video
    echo "<pre>"
    echo "<H3>Efekt dzialania komendy mount</H3>"
    mount
    echo "</pre>"
    ;;

mount)
    mount -t cifs //192.168.1.12/video /mk-125-video -o user=magnetowid,password=magda1towid
    echo "<pre>"
    echo "<H3>Efekt dzialania komendy mount</H3>"
    mount
    echo "<H3>Jezeli poniezej widac pliki z mk-125 to dobrze, jak nie to masz problem</H3>"
    echo
    ls -l /mk-125-video
    echo
    ls -l /mk-125-video/magnetowid
    echo "</pre>"
    ;;

kanaly)
    echo "<pre>"
    cat /www/cgi-bin/lista-kanalow-nagrywanych
    echo "</pre>"
    ;;

rec)
    echo "<h1>Uruchamiam udpxyrec</h1>"
    data=`date +%Y-%m-%d-%H-%M`

    path="/mk-125-video/magnetowid/"
    file="$data-magnetowid.ts"

    start=`echo "$QUERY_STRING" | grep -oE "(^|[?&])g_start=[^&]+" | sed "s/%3A/:/g" | sed "s/%2B/+/g" | cut -f 2 -d "=" | head -n1`
    stop=`echo "$QUERY_STRING" | grep -oE "(^|[?&])g_stop=[^&]+"  | sed "s/%3A/:/g" | sed "s/%2B/+/g" | cut -f 2 -d "=" | head -n1`
    kanal=`echo "$QUERY_STRING" | grep -oE "(^|[?&])kanal=[^&]+"   | sed "s/%3A/:/g" | cut -f 2 -d "=" | head -n1`

    cat <<EOT >>/var/log/udpxrec.log
--- start: $start
--- stop: $stop
--- kanal: $kanal
--- plik: $file
EOT

    # parametry:
    # -v - wypisuje na konsoli loga opisujacego to co czyni a czyni wiele (gdy pracuje jako demon to w pliku loga -l)
    # -l - plik z logiem - przydatne gdy pracuje jako demon
    # -T - to, ze ma byc nie-demonem czyli czekac az skonczy (jezeli demon to wtedy jest -v to musi byc -l)
    # -m - wstakuje interfejs z ktorego ma brac multicasty (bez tego tez dziala, bo ustawilem routing)
    # -B - ustawia wielkosc jakiego bufora domyslnego na 2K wiec powiekszam na 64K ale nie wiem po co
    # -M - maksymalna wielkosc pliku

    udpxrec -M 10Gb -B 64K -m eth0.100 -p /var/run/udpxrec.pid -l /var/log/udpxrec.log -v -b $start -e $stop -c $kanal $path$file

    sleep 2 # bo udpxrex potrzebuje czasu zanim wszystko napisze w logu
    echo "<pre>"
    echo "<h3>Sprawdzenie uruchomionych procesow udpxrec poleceniem ps</h3>"
    ps | grep "udpxrec" | grep -v "grep"

    echo "<h3>Plik loga - ostatnie 44 linijki</h3>"
    tail -n 44 /var/log/udpxrec.log
    echo "</pre>"
    ;;

*)
    # je¿eli niew3a¶ciwa komenda albo pusta komenta to wysletla formatkê











godzina=`date +%H:%M`

ListaKanalow=`awk 'BEGIN { FS=";" } ; { print "<OPTION value=",$2,">",$1,"</OPTION>" }' /www/cgi-bin/lista-kanalow-nagrywanych`




cat <<EOT
<H1>Magnetowid $version</h1>

<div style="border: 1px solid green;">
<H3>Sprawdzenie serwera</H3>
<UL>
EOT


if [ -d /mk-125-video/magnetowid ]
then
    echo "<LI>Server MK-125 podmontowany"
else     {
    echo "<LI>Próbuje zamontowaæ serwer MK-125"
    mount -t cifs //192.168.1.12/video /mk-125-video -o user=magnetowid,password=magda1towid
    if [ -d /mk-125-video/magnetowid ]
    then
        echo "<LI>Sukces! Serwer MK-125 zamontowany w katalogu /mk-125-video/magnetowid"
    else
        echo '<LI style='color: red;'>Problem z podmontowaniem serwera MK-125!'
    fi
    }
fi

echo "<LI style='color: blue;'>Gdy prze3adowano strone by3a godzina: $godzina"


cat <<EOT

</UL>
</div>

<div  style="border: 1px solid red;">

<h3>Zlecanie nagrania</h3>

<P>Format godziny:<br>
[+]dd:hh:mm.ss  a dokladnie [[+]dd:]hh:mm[.ss]<br>
+ - oznacza, ze za tyle czasu, bez + oznacza czas bezwzgledny<br>
dd - liczba dni, ale gdy nie ma to tego samego dnia, moze nie byc wtedy bez :<br>
hh - godzina w formacie 24-godzinnym<br>
mm - minuty<br>
ss - sekrundy - moze nie byc wtedy bez kropki<br>


<table><tr><td style="margin: 0; padding: 1em; border: 1px solid gray;">
<B>Klasyczne programowanie</B>
<form method="GET">
Start: <input class="input" type="text" maxlength="8" name="g_start"><BR>
Stop: <input class="input" type="text" maxlength="8" name="g_stop"><BR>
Kanal: <input class="input" type="text" maxlength="25" name="kanal"><BR>
<input type="submit" value="Zlec nagrywanie"><br>
<input type="hidden" name="cmd" value="rec">
</form>
</td>


<td style="margin: 0; padding: 1em; border: 1px solid red;">
<B>Wybór z menu wszystkich kana3ów</B>
<form method="GET">
Start: <input class="input" type="text" maxlength="8" name="g_start"><BR>
Stop: <input class="input" type="text" maxlength="8" name="g_stop"><BR>
Kanal: <SELECT name="kanal">$ListaKanalow</SELECT><br>
<input type="submit" value="Zlec nagrywanie"><br>
<input type="hidden" name="cmd" value="rec">
</form>
</td></tr></table>

</div>


<div style="border: 1px solid brown;">
<H3>Pozostale komendy</H3>
<UL>
<LI><A href="/cgi-bin/magnetowid?cmd=kanaly">Lista kanalow</A>
<LI><A href="/cgi-bin/magnetowid?cmd=ps">Stan procesow magnetowidu (udpxyrec)</A>
<LI><A href="/cgi-bin/magnetowid?cmd=killur">Zakoñczenie (brutalne - killall) procesów nagrywania udpxyrec</A>
<LI><A href="/cgi-bin/magnetowid?cmd=log">Plik logu magnetowidu</A>
<LI><A href="/cgi-bin/magnetowid?cmd=ls">Zobacz pliki w katalogu //mk-125/video/magnetowid </a>
<LI><A href="/cgi-bin/magnetowid?cmd=mount">Podlacz (zamontuj) do magnetowidu katalog serwera MK-125</A>
<LI><A href="/cgi-bin/magnetowid?cmd=umount">Odlacz (odmontuj) katalog serwera</A>
</UL>
</div>

EOT
    ;;


esac

echo "</body></html>"

Wkurza mnie Polskie Radio, bo płacę abonament a oni za te pieniądze wyczyniają jakieś cuda ze streamingiem, ze normalnymi narzędziami tego nie łykniesz.

A może ktoś mi pomoże wykumać jak uruchomięc streamripper'a dla Polskiego Radia - Programu Drugiego? Tam puszczają tyle ciekawej muzy, co to jej ani ściągnąć, ani płyty kupić. Chciałem sobie na moim OperWRT odpalić proces, co nagrywa codziennie, wszystko, w paczkach po 6 godzin, i zawsze jak coś usłyszę w radio to będę sobie mógł w domu wyciąć z pliku i mieć ten utworek.

Problem brzmi: jak odpalić streamrippera dla Dwójki PR.

Dodam jeszcze, że na instalacji VLC poległem. Sam nie skompiluje, a instalki nie widzę.

W.