Skocz do zawartości
l0co

Weeb.tv przez DLNA [linux, rtmpdump, mediatomb]

Rekomendowane odpowiedzi

witam, super pomysł z tymi skryptami. Pozwoliłem sobie wprowadzi własne modyfikacje, które moim zdaniem umilają używanie skryptów l0co z Samsung TV.

1. zmodyfikowałem config.xml dla mediatomb tak by używał bazy mysql zamiast sqlite

2. przeniosłem (i zmieniłem w skrypcie) katalog z jaki jest mapowany przez mediatomb (z /tmp/weebtv/ na /opt/weebtv/tv/) ponieważ katalog /tmp/ jest czyszczony podczas startu systemu i mediatomb kasował mi opisy programów

3. dodałem skrypt updateNames, który wczytuje poprawne nazwy programów i wyświetla je na listingach w TV

Generalnie mała rzecz, ale fajnie jest odpalać "Investigation Discovery" zamiast id.mpg :D

Edytowane przez barcis

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

witam, super pomysł z tymi skryptami. Pozwoliłem sobie wprowadzi własne modyfikacje, które moim zdaniem umilają używanie skryptów l0co z Samsung TV.

1. zmodyfikowałem config.xml dla mediatomb tak by używał bazy mysql zamiast sqlite

2. przeniosłem (i zmieniłem w skrypcie) katalog z jaki jest mapowany przez mediatomb (z /tmp/weebtv/ na /opt/weebtv/tv/) ponieważ katalog /tmp/ jest czyszczony podczas startu systemu i mediatomb kasował mi opisy programów

3. dodałem skrypt updateNames, który wczytuje poprawne nazwy programów i wyświetla je na listingach w TV

Generalnie mała rzecz, ale fajnie jest odpalać "Investigation Discovery" zamiast id.mpg :D

1. Ale to wymaga posiadania zainstalowanego mysql, a nie każdy ma. Lepiej zostać przy płaskich plikach sqlite

2. Specjalnie jest 'tmp' domyślnie ponieważ lista ta się ciągle zmienia, więc jak wrzucasz to do rc.local to aktualizuje zawsze przy starcie

3. Ten pomysł jest dobry, da się przerobić na sqlite? A on wtedy wyświetla pełną nazwę w TV a do skryptu przesyła skróconą? Tak myślę sobie może niepotrzebne jest w ogóle zakładanie katalogu tymczasowego i plików, tylko bezpośrednie operacje na bazie danych mediatomb w skrypcie weebtv - tam, gdzie zakłada te katalogi.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. Ale to wymaga posiadania zainstalowanego mysql, a nie każdy ma. Lepiej zostać przy płaskich plikach sqlite

2. Specjalnie jest 'tmp' domyślnie ponieważ lista ta się ciągle zmienia, więc jak wrzucasz to do rc.local to aktualizuje zawsze przy starcie

3. Ten pomysł jest dobry, da się przerobić na sqlite? A on wtedy wyświetla pełną nazwę w TV a do skryptu przesyła skróconą? Tak myślę sobie może niepotrzebne jest w ogóle zakładanie katalogu tymczasowego i plików, tylko bezpośrednie operacje na bazie danych mediatomb w skrypcie weebtv - tam, gdzie zakłada te katalogi.

1. niestety tak :(

2. mam ustawioną aktualizację w cron co 1h

3. można to zrobić na sqlite, ale tenjest jednodostępowy, więc gdy używa do mediatomb to skrypt się nie będzie mógł podłączyć.// tak telewizor wyświetla pełną nazwę (Investigation Discovery) a do skryptów idą oryginalne nazwy plików (id.mpg)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na nowej z ffmpeg.

No kurcze u mnie też nie jest idealnie, w niektóre kanały z wielkim problemem się podłącza a jak już odtwarza to widać co chwila jakieś pixele. Myślę, że trzeba pokombinować z ustawienia ffmpeg jeszcze - w poprzedniej wersji z mencoderem taki strumień odtwarzał w porządku:

mencoder -of mpeg -mpegopts format=mpeg2:muxrate=500000:vbuf_size=1194:abuf_size=64 -srate 48000 -ofps 30000/1001 -ovc lavc -oac lavc -lavcopts autoaspect=1:vcodec=mpeg2video:acodec=ac3:abitrate=640:threads=4:keyint=5:vqscale=1:vqmin=2:vrc_maxrate=60000:vrc_buf_size=7000 -cache 8920 -quiet -aspect 16:9 -vf scale=1280:720

Trzeba pewnie ten setup przepisać na opcje ffmpeg.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

można to zrobić na sqlite, ale tenjest jednodostępowy, więc gdy używa do mediatomb to skrypt się nie będzie mógł podłączyć.// tak telewizor wyświetla pełną nazwę (Investigation Discovery) a do skryptów idą oryginalne nazwy plików (id.mpg)

Pokombinuję z tym bo w sumie w domyślnym setupie tylko raz się łączy do tej bazy, tj. przed startem mediatomb. Sqlite powinien poprawnie zarządzać dostępem konkurentnym na update samodzielnie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Niestety mimo wielu prób nie udało mi się usunąć artefaktów z samsunga. Co rusz pojawiają się jakby takie "duże pixele" - bloki jednokolorowe. Z mencodera tego nie ma, ktoś ma może jakiś pomysł? Czy jest możliwe że mencoder ma jakiś deblocking pomiędzy x264 a mpeg2 skoro służy do wyświetlania dla mplayera - natomiast ffmpeg jakoś bardziej "surowo" koduje tego mpeg-a?

@sawcioo - plik mpeg2 który idzie to TV jest bardzo duży, trochę go ograniczyłem na bitrate, jest teraz podobny do tego z mencodera, spróbuj to:

ffmpeg -i pipe: -vcodec mpeg2video -sameq -s hd720 -acodec libmp3lame -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts -r 29.970 -minrate 10000k -maxrate 60000k -b 12000k -bufsize 36408333 pipe:

I daj znać, jeśli się odpaliło to przede wszystkim czy masz też te artefakty na video czy nie?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zdecydowanie się poprawiło, ale nadal nie nadaje się to do oglądania;/ Tak, co chwila mam coś w rodzaju artefaktów.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zdecydowanie się poprawiło, ale nadal nie nadaje się to do oglądania;/ Tak, co chwila mam coś w rodzaju artefaktów.

No to lipa czekamy na pomoc fachmanów od ffmpeg bo ja się wczoraj wypstrykałem z pomysłów.

EDIT: Właściwie mam jeszcze jeden ale by trzeba potestować. "Podobno" do samsunga powinien zadziałać x264 w kontenerze MKV, ale do tego pliki muszą mieć odpowiednie rozszerzenie oraz i trzeba pokombinować z poleceniem transkodującym oraz mime type z mediatomba, który łyknie TV. Ja mam niestety TV zblokowany wieczorem bo rodzina ogląda a poza tym muszę latać z góry na dół ciągle, może masz lepsze warunki i chcesz potestować to napiszę co by trzeba zrobić

Edytowane przez l0co

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ffmpeg -i pipe: -vcodec mpeg2video -sameq -s hd720 -acodec libmp3lame -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts -r 29.970 -minrate 10000k -maxrate 60000k -b 12000k -bufsize 36408333 pipe:

I daj znać, jeśli się odpaliło to przede wszystkim czy masz też te artefakty na video czy nie?

Jak to sie dokladnie objawia? Pogorszenie jakosci obrazu czy "zrywanie"/gubienie klatek?

Jesli pogorszenie to moze za maly bitrate? Teoretycznie 720p w MPEG2 moze potrzebowac do 19Mbps:

http://www.hdv-info.org/HDVSpecifications.pdf

Zobacz tez CBR zamiast VBR (czyli ustaw wszystkie *rate na 19000k -minrate 19000k -maxrate 19000k -b 19000k i jeszcze chyba -muxrate 19000k)

Bufsize tez wydaje sie byc dziwny 36408333 to jest 36408k, czyli niecale 2s przy 19Mbps, a w przypadku twoich ustawien (maxrate 60000k) mniejszy niz sekunda.

Edytowane przez jezierK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak to sie dokladnie objawia? Pogorszenie jakosci obrazu czy "zrywanie"/gubienie klatek?

Jesli pogorszenie to moze za maly bitrate? Teoretycznie 720p w MPEG2 moze potrzebowac do 19Mbps:

http://www.hdv-info.org/HDVSpecifications.pdf

Zobacz tez CBR zamiast VBR (czyli ustaw wszystkie *rate na 19000k -minrate 19000k -maxrate 19000k -b 19000k)

Bufsize tez wydaje sie byc dziwny 36408333 to jest 36408k, czyli niecale 2s przy 19Mbps, a w przypadku twoich ustawien (maxrate 60000k) mniejszy niz sekunda.

Jak dziś skończę robotę, a zapowiada się że to będzie dość późno to spróbuję jeszcze pokombinować. Może być problem z dużym bitrate bo przy poprzednim - dość wysokim (w ogóle nie było ustawień bitrate więc chyba brał oryginalne ze źródła) może być w ogóle problem żeby TV odebrał stream.

U mnie objawia się to tak, że min. raz na 3 sekundy podczas ruchu ekranu pojawiają się takie "wielkie pixele", czy raczej bloki podobnej barwy w różnych miejscach, zazwyczaj w grupach, często w grupie kilkunastu/kilkudziesiętu ułożonych w jednej linii poziomej u mnie. Trwa to ułamek sekundy i znikają - pojawiają się zatem raczej takie mignięcia tychże bloków podczas oglądania, jeśli jest ruch. Coś takiego jak tutaj ale znacznie mniej, co parę sekund i często w grupach.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No to lipa czekamy na pomoc fachmanów od ffmpeg bo ja się wczoraj wypstrykałem z pomysłów.

EDIT: Właściwie mam jeszcze jeden ale by trzeba potestować. "Podobno" do samsunga powinien zadziałać x264 w kontenerze MKV, ale do tego pliki muszą mieć odpowiednie rozszerzenie oraz i trzeba pokombinować z poleceniem transkodującym oraz mime type z mediatomba, który łyknie TV. Ja mam niestety TV zblokowany wieczorem bo rodzina ogląda a poza tym muszę latać z góry na dół ciągle, może masz lepsze warunki i chcesz potestować to napiszę co by trzeba zrobić

MKV w DLNA w Samsungu? ... watpie. Szczegolnie, ze mkv specjalnie sie nie nadaje do streamowania.

Teoretycznie oficjalnie Samsung po DLNA obsluguje:

http://i397.photobucket.com/albums/pp60/samsung_hd_tech/Page82.jpg

wedlug tego co pisze ktos z Samsunga:

http://forums.cnet.com/7723-13973_102-322838/dlna-formats-supported/

ale to chyba nie ma nic wspolnego z rzeczywistoscia (Tobie inne rozdzielczosci niz te wymienione przeciez gra?)

Ale gdybys chcial jednak sprawdzic to transkodowac nie trzeba bo stream z weeb.tv jest juz w h264.. tylko container bys musial zmienic.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak dziś skończę robotę, a zapowiada się że to będzie dość późno to spróbuję jeszcze pokombinować. Może być problem z dużym bitrate bo przy poprzednim - dość wysokim (w ogóle nie było ustawień bitrate więc chyba brał oryginalne ze źródła) może być w ogóle problem żeby TV odebrał stream.

U mnie objawia się to tak, że min. raz na 3 sekundy podczas ruchu ekranu pojawiają się takie "wielkie pixele", czy raczej bloki podobnej barwy w różnych miejscach, zazwyczaj w grupach, często w grupie kilkunastu/kilkudziesiętu ułożonych w jednej linii poziomej u mnie. Trwa to ułamek sekundy i znikają - pojawiają się zatem raczej takie mignięcia tychże bloków podczas oglądania, jeśli jest ruch. Coś takiego jak tutaj ale znacznie mniej, co parę sekund i często w grupach.

To mozliwe ze to wina VBR. Sprawdz to CBR tak jak pisalem lub ewentualnie z mniejszym bitrate.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

MKV w DLNA w Samsungu? ... watpie. Szczegolnie, ze mkv specjalnie sie nie nadaje do streamowania.

Leci MKV serwowany z mediatomba bez żadnego trancodingu przygotowany wcześniej z weeb.tv. Tylko nie udało mi się wczoraj niestety odpalić bezpośrednio ze streamu, a kombinowałem trochę z tym. Myślę, że ta lista jest nieco szersza - ja korzystałem z tej i chyba ta jest poprawna bo np. ASF czytał, ale też nie stream (BTW: pod linkiem typowa odpowiedź samsunga, bo część o "data rate and resolutions" olali w ich własnym FAQ). Hehe ja wczoraj walczyłem na różne sposoby z tym do drugiej w nocy, działa tylko dla streama mpegts container + mpeg2video, nawet container mpegps nie działa.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To mozliwe ze to wina VBR. Sprawdz to CBR tak jak pisalem lub ewentualnie z mniejszym bitrate.

Sprawdziłem i niestety to nie to (CBR=19000k, buffer=76000k). Uświadomiłem sobie że również wcześniej kombinowałem z CBR (6000k, 12000k) i było to samo. W ogóle parametr z bitratem nie wpływa na to. Gdzieś tam czytałem że H264 używa jakiejś blokowej kompresji i podejrzewam że to jest jakoś z tym związane (H264 -> MPEG2). Co gorsza sprawdziłem naprawdę mnóstwo ustawień ffmpeg i wydaje się, że dosłownie nic nie wpływa na to. Chyba trzeba dorzucić jakiś filtr przed ffmpeg albo zrobić kompresję 2 pass, tylko nie wiem jeszcze jak skoro to stream.

Możesz za to looknąć jak wygląda problem - nagrałem kawałek telewizji tutaj (to nie jest HD tylko zwykłe SD ale resize do hd720).

EDIT: Jeszcze jedna wskazówka, dla kodeka mpeg1video jest to samo tylko znacznie gorzej (więcej, częściej...)

Edytowane przez l0co

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Już mniej więcej orientuję się o co biega :)

Otóż problemy nasze z ubijaniem mencodera biorą się stąd, że mamy na każde wywołanie transkodingu dwa procesy mencodera. Odpowiedzialny za to jest parametr "-cache XXX" - jeden proces ca[beeep]e content, a drugi dopiero z cache transkoduje. Podejrzewam że do tego pierwszy robi first pass, a drugi second pass kompresji (?). Udało mi się przed chwilą odpalić bez cachowania mencodera (-nocache), i przerobiłem skrypt jezierK-a żeby ubijał brutalnie tego mencodera przez kill -9 (a nie -13). W ten sposób działa i... te same problemy co z ffmpeg.

Zatem myślę, że trzeba opracować metodę na 2 pass encoding ffmpegiem i będziemy w domu. Jeszcze nie bardzo kumam jak to zrobić na tę chwilę, mam nadzieję że się da w ogóle...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sprawdziłem i niestety to nie to (CBR=19000k, buffer=76000k). Uświadomiłem sobie że również wcześniej kombinowałem z CBR (6000k, 12000k) i było to samo.

Z takmi parametrami nie ostrzega Cie, ze sa zle i ze przelacza tak czy inaczej w VBR? Taki komunikat jak ponizej?

[mpeg2video @ 0x871adc0] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate!

Zobacz taka kombinacje

-acodec copy -vbsf h264_mp4toannexb -f mpegts -copyts -b 8000k -minrate 8000k -maxrate 8000k -muxrate 8000k -bufsize 3835k

Sprawdz rowniez czy przypadkiem ten pv nie psuje ci plynnosci strumienia (jesli mozesz to na chwile go wywal).

Zatem myślę, że trzeba opracować metodę na 2 pass encoding ffmpegiem i będziemy w domu. Jeszcze nie bardzo kumam jak to zrobić na tę chwilę, mam nadzieję że się da w ogóle...

2 pass encoding sluzy o ile wiem tylko poprawie "wydajnosci" kompresji i jakosci obrazu. Na pewno 1pass nie ma takiego efektu jak na tym filmiku. Poza tym mencoder chyba nie robi 2passa o ile mu tego nie powiesz. Sam wyjsciowy stream nie jest taki zly (zobacz sobie go chociazby w VLC czy innym linuksowym playerze). Problem jest bardziej z plynnoscia strumienia. Ten nagrany filmik przypomina sytuacje jak np masz slaby sygnal z satelity (jak masz to na chwile zakryj talerz i sprawdz ;P) i caly strumien sie nie miesci lub chwilowe ma czkawki.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Z takmi parametrami nie ostrzega Cie, ze sa zle i ze przelacza tak czy inaczej w VBR? Taki komunikat jak ponizej?

[mpeg2video @ 0x871adc0] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate!

Tak, ostrzegał. Nie zwróciłem na to uwagi wcześniej.

Zobacz taka kombinacje

-acodec copy -vbsf h264_mp4toannexb -f mpegts -copyts -b 8000k -minrate 8000k -maxrate 8000k -muxrate 8000k -bufsize 3835k

Sprawdziłem i niestety... to samo. Nawet nieco gorzej bo teraz jeszcze video czasem przycina ostro.

Sprawdz rowniez czy przypadkiem ten pv nie psuje ci plynnosci strumienia (jesli mozesz to na chwile go wywal).

Bez znaczenia.

2 pass encoding sluzy o ile wiem tylko poprawie "wydajnosci" kompresji i jakosci obrazu. Na pewno 1pass nie ma takiego efektu jak na tym filmiku. Poza tym mencoder chyba nie robi 2passa o ile mu tego nie powiesz. Sam wyjsciowy stream nie jest taki zly (zobacz sobie go chociazby w VLC czy innym linuksowym playerze). Problem jest bardziej z plynnoscia strumienia. Ten nagrany filmik przypomina sytuacje jak np masz slaby sygnal z satelity (jak masz to na chwile zakryj talerz i sprawdz ;P) i caly strumien sie nie miesci lub chwilowe ma czkawki.

Na pewno ma to jednak związek z tym pierwszym procesem ca[beeep]ących mencodera, bo bez niego efekt jest podobny jak dla ffmpeg-a. Co to może być?

Tak czy inaczej na razie nie działa... Zupdatowałem skrypty tak, aby można było używać również mencodera. Domyślnie używa ffmpeg-a ale jak się nadpisze config.xml plikiem config-mencoder.xml, to będzie leciał przez poprzedni skrypt dla mencodera.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do mencodera to mi się właściwie nie podoba tylko jedna rzecz. Skrypt czeka w pętli, aż parent skrypt (ten wołany z mediatomba) zostanie ubity:

while [ true ]; do
 PCOUNT=`ps -eo pid | grep $PARENTPID | wc -l`
 if [ $PCOUNT == 0 ]; then
   break
 fi
 sleep 3s
done

Może to dałoby się jakoś zapisać przy użyciu wait/kill, albo wymyśleć jakieś inne rozwiązanie zamiast pętli? Reszta już jest ok, tzn. ubija wszystkie procesy w których występuje nazwa FIFO mediatomba. Jakby nie było tej pętli to ten skrypt byłby również całkiem OK.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Panowie, na jakim sprzęcie (PS3, Samsung TV) testujecie te skrypty oparte o ffmpeg? Bo u mnie na Samsung C6500 na większości kanałów mam "nieobsługiwany format pliku". Na mencoder działa ok, ale pozostają wiszące procesy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja mam akurat c6000, PS3 to ... normalne PS3, a są jakieś wersje? ;)

Dużo może zależeć od indywidualnych warunków - prędkość netu, prędkość w sieci domowej. Spróbuj z opcją -D mediatomba to się uzewnętrzni z debug logiem i porównuj z logiem z rtmpdump-a może coś wypatrzysz... Co do ffmpega to u mnie działa na samsungu tylko są artefakty, pokombinowałbym u Ciebie z tą częścią ustawień ffmpeg:

-r 29.970 -minrate 10000k -maxrate 60000k -b 12000k -bufsize 36408333

Druga sprawa to nagraj sobie trochę materiału do mpeg-a ręcznie przez 'mediatomb-start' i puść to na TV przez mediatomba przy domyślnym configu, czyli bez transkodingu. Wówczas zobaczysz czy jest problem z przepływem danych (jeśli to będzie chodzić) czy z samym formatem pliku/ustawieniami video (jeśli to również nie będzie chodzić). Jeśli jest problem z przepływem, czyli TV nie dostaje oczekiwanego streamu w zadanym czasie, to możesz spróbować czy chodzi wersja buforowana.

A mencoder to nie wiem u mnie ubija poprawnie, a wypisuje Ci "Parent process XXX killed" a następnie serię logów z "KIll XXX"? Tam jest też 3 sekundowe opóźnienie zanim ubija

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zaktualizowałem skrypty (linki w pierwszym poście).

Główna zmiana to to, że używam teraz oryginalnego skryptu KSV z moimi małymi poprawkami. Poprzednio jak KSV wydał poprawkę (a na weeb.tv często coś zmieniają) to musiałem grzebać w jego skrypcie i patrzeć co się zmieniło, i aktualizować mój. Teraz używamy tego samego skryptu, poprawka jest taka że z command line zwraca teraz różne dane a skrypty od mediatomba to interpretują. Oznacza to, że można samodzielnie aktualizować sobie skrypt WeebTV.php nowymi wersjami uploadowanymi przez KSV (link do wątku KSV jest również w pierwszym poście).

Druga zmiana to, że dodaję teraz pełną nazwę kanału do pliku .mpg, żeby było wiadomo co to jest. Niestety sposób barcisa w tym podstawowym configu nie zadziała, bo faktycznie mediatomb lockuje plik bazy danych sqlite3 na czas odpalenia. Ale dodaję teraz nazwę kanału do samego pliku i później parsuję tylko to co w nawiasie.

Należy zmienić wywołanie tworzące listę kanałów w /tmp/weebtv z "/opt/weebtv" na "/opt/weebtv-prepare" - ponieważ poprzedni skrypt "/opt/weebtv" jest teraz poleceniem odpalającym skrypt KSV. Skrypt "/opt/weebtv-prepare" najlepiej sobie wrzucić w /etc/rc.local oraz do crona. Podaję jak jest u mnie.

/etc/rc.local

sysctl -w kernel.sysrq=0

exec 2> /var/log/rc.local.log  # send stderr from rc.local to a log file
exec 1>&2                      # send stdout to the same log file
set -x                         # tell sh to display commands before execution

export PATH=$PATH:/usr/local/bin
echo "Fetching media list for weebtv"
/opt/weebtv/weebtv-prepare
echo "Starting mediatomb"
mediatomb -m /opt/weebtv -f mtcfg

exit 0

Drugi exec to /etc/cron.hourly/weebtv-prepare (chmod 0755):

#!/bin/bash
/opt/weebtv/weebtv-prepare

Configi pozostają tak samo, czyli jeden dla ffmpeg a drugi dla mencoder.

Czy nikt nie podejmie pałeczki zrobienia porządnie metody ubijania mencodera ? ;) Mnie się nie udało ponownie...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeszcze jeden ciekawy pomysł. Program TV z wp.pl jako obrazki JPG przez DLNA:

#!/bin/bash
DATE=`date +"%Y-%m-%d"`
OUTDIR=/tmp/weebtv/program
PROGRAMS="TVP-1=1 TVN=17"

rm -rf $OUTDIR
mkdir $OUTDIR

for PROGRAM in $PROGRAMS; do
 PROG=`echo $PROGRAM | sed "s/=.*//"`
 ID=`echo $PROGRAM | sed "s/.*=//"`
 URL="http://tv.wp.pl/program.html?name=$PROG&stid=$ID&date=$DATE&time="
 echo "$PROG (id=$ID, url=$URL)"
 wkhtmltopdf "$URL" "$OUTDIR/$PROG.pdf"
 convert -density 300 -append "$OUTDIR/$PROG.pdf" "$OUTDIR/$PROG.jpg"
done

Na razie tylko dwa programy testowe. Trzeba zainstalować 'wkhtmltopdf' oraz 'convert'.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

witam wlacze 3 dni juz nie zadawalem pytan bo bylem zdeterminowany ale ostatni krok mnie narazie przerasta ponizej to co mi pluje po uruchomieniu ./mediatomb-start animalplanet buffer.mpg

******************************************** waiting for 2726

FFmpeg version 0.6.4-4:0.6.4-0ubuntu0.11.04.1, Copyright © 2000-2010 the Libav developers

built on Jan 4 2012 16:09:40 with gcc 4.5.2

configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static

WARNING: library configuration mismatch

libavutil configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libavcodec configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libavformat configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libavdevice configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libavfilter configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libswscale configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libpostproc configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay

libavutil 50.15. 1 / 50.15. 1

libavcodec 52.72. 2 / 52.72. 2

libavformat 52.64. 2 / 52.64. 2

libavdevice 52. 2. 0 / 52. 2. 0

libavfilter 1.19. 0 / 1.19. 0

libswscale 0.11. 0 / 0.11. 0

libpostproc 51. 2. 0 / 51. 2. 0

RTMPDump v2.4

© 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL

WARNING: You haven't specified an output file (-o filename), using stdout

Connecting ...

INFO: Connected...

Starting Live Stream

INFO: Metadata:

INFO: author

INFO: copyright

INFO: description

INFO: keywords

INFO: rating

INFO: title

INFO: presetname Custom

INFO: creationdate Fri Mar 02 16:52:58 2012

INFO: videodevice AVerMedia BDA Analog Capture Secondary

INFO: framerate 25.00

INFO: width 1280.00

INFO: height 720.00

INFO: videocodecid avc1

INFO: videodatarate 1520.00

INFO: avclevel 40.00

INFO: avcprofile 77.00

INFO: videokeyframe_frequency2.00

INFO: audiodevice AVerMedia BDA Analog Capture Secondary

INFO: audiosamplerate 48000.00

INFO: audiochannels 2.00

INFO: audioinputvolume 75.00

INFO: audiocodecid mp4a

INFO: audiodatarate 80.00

89.191 kB / 0.00 sec 0B 0:00:01 [ 0B/s] [<=> 711.186 kB / 0.44 sec 0B 0:00:02 [ 0B/s] [<=> 865.973 kB / 1.58 sec[flv @ 0x95bd420]Estimating duration from bitrate, this may be inaccurate

Input #0, flv, from 'pipe:':

Duration: N/A, start: 0.000000, bitrate: N/A

Stream #0.0: Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 25 tbr, 1k tbn, 50 tbc

Stream #0.1: Audio: aac, 48000 Hz, stereo, s16

Unknown encoder 'libmp3lame'

Caught signal: 13, cleaning up, just a second...

ERROR: Download: Failed writing, exiting!

0B 0:00:02 [ 0B/s] [<=> ]

******************************************** killing 2726

./mediatomb-start: line 13: kill: (2726) - Nie ma takiego procesu

help ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam, czy ktoś dalej z powodzeniem tego używa? Walczę od wczoraj z postawieniem tego żeby śmigało z Samsungiem UE46D5500 i już mnie coś strzela. Skrypt w php od KSV ściągnałem najnowszy z jego gita i rtmpdump wydaje się działać w porządku (testowego mpega na kompie mogę bezproblemowo obejrzeć). Test robiłem z wykorzystaniem zarówno z wykorzystaniem mediatomb-start nazwa kanalu plik (czyli z użyciem ffdshow bo tak jest standardowo w tym skrypcie) oraz z wykorzystaniem mencodera (tez z standardowym setupem czyli zresizowany mpeg2). Na kompie otwieraja się bez problemu, nawet jak z innego komputera z win7 za pomoca media playera podepne się pod streama po dlna to działa bez żadnych ścin itp. Jednak po odpaleniu na TV dowolnego programu, TV młuci młuci i pokazuje komunikat "Nieobsługiwany kodek wideo" i próbuje odpalać wszystkie klipy po kolei. Zauważyłem ze zmiana ustawień mencodera na, ktorekolwiek z zaproponowanych przez autora powoduje, że telewizor wyświetla błąd "Nieobsł. form. pliku". Próbowałem już przeróżnych bit-rateów, nawet próbowałem pozmieniać skrypty aby rozszerzenie "kanałów" było avi i potem pakować stream w kontener avi z kodekiem mpeg4 i dalej nic -> nieobsł. form. pliku.

Dodam, że spróbowałem postawić serwer dlna na podobnym configu ale z wyłączonym transcodingiem dla swojej domowej kolekcji filmów - w większości avi i mkv (tak aby sprawdzić czy to w ogóle działa z tym tv). Duży wpływ na efekty miał ustawiony w mediatombie header. Jak był ustawiony tak jak w configu dostarczonym przez autora tematu (DLNA.ORG_OP=00;DLNA.ORG_CI=1) to działały tylko pliki AVI, pliki MKV skipowały bez żadnego błędu do kolejnego avi. Jak próbowałem odtworzyć na tym configu przygotowane wcześniej próbne mpegi, to też skipowały do kolejnego avi (próbny AVI w mpeg4 zadziałał).

Następnie zmieniłem w configu jedynie header na (DLNA.ORG_OP=01;DLNA.ORG_CI=0), i magicznie na TV zaczęły działać moje MKV, a AVI też działały bez zarzutu (udało mi się otworzyć wszystkie filmy jakie miałem udostępnione a było ich około 20). Także otworzyły się mpegi w których były zapisane te kawałki streamu (zarówno kodowane przez ffmpeg jak i mencoder). Myślałem, że to rozwiąże problem więc dałem transcoding na on, wczytałem pliki z /tmp/weebtv, lecz niestety na TV "nieobsługiwany kodek wideo".

Ma ktoś jakiś pomysł czego jeszcze mogę spróbować, co sprawdzić? Co dokładnie oznaczają wartości w headerze i jak powinny być ustawione w przypadku tego streama z weebtv?

Zauważyłem też, po odpaleniu mediatomba, że po próbie podłaczenia sie do streama, nawet z laptopa (zakładając ze ustawienia akurat są takie że stream działa), wmp bardzo długo młuci zanim wyświtli obraz, a w konsoli widać, kilkukrotne ubijanie procesów mencodera i ponowne rozpoczynanie transcodingu do innych fifo w tempie. To samo dzieje się podczas "proby" podłączenia z użyciem telewizora. Czy to tak powinno być, czy jedno połączenie i od razu obraz?

Edytowane przez b1czu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...