Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-11-16 13:07:49

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Czy przy pomocy mencodera da się streamować?

Witam wszystkich - pytanie jak w temacie, czy przy wykorzystaniu mencodera da się puścić strumień po sieci/internecie podobnie jak robi to VLC? Trochę szukałem, ale jak dotąd google podają bardzo nieprecyzyjne informacje...

Po co to? Próbowałem korzystać z VLC ale prędkość kompresji... no cóż po prostu masakra w porównaniu do mencodera (przykładowo kompresja TV do MPEG2 (rozdzielczość pełna czyli 768x576): mencoder obciążenie procka (C2D E7200) ~ 10%, 0 zgubionych klatek itd. VLC - obciążenie 60% (czyli jeden rdzeń zarzyna) i gubione klatki :/).

Z tego co się orientuję czysty mencoder nie obsługuje stream'owania - ale być może da się jakoś przesłać strumień do serwera rozsyłającego zamiast do pliku?

Z góry dzięki za info.

Offline

 

#2  2009-11-16 21:41:04

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: Czy przy pomocy mencodera da się streamować?

Próbowałem korzystać z VLC ale prędkość kompresji... no cóż po prostu masakra w porównaniu do mencodera

Mencoder ma apetyt na proca również niesamowity.

Nie wierzę ze przy kodowaniu obciąża go w 10%.

Pokaż składnię polecenia dla jednego i drugiego to zobaczymy w czym jest pies pogrzebany.

Jeśli chodzi o meritum pytania to mi nic nie wiadomo o takiej możliwości ale niewykluczone ze taka możliwość istnieje choć na żadne info na ten temat dotychczas nie natrafiłem.

Chyba żeby jakoś zrzucać do pliku i potem czymś innym dalej.
Ale czym i jak to nie wiem.
Nigdy się w to nie bawiłem


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#3  2009-11-17 09:58:42

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Czy przy pomocy mencodera da się streamować?

Co do mencodera:

mencoder -fps 25 -ofps 25 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048 -oac mp3lame -of avi -o /home/james/test.avi tv://R11 -tv driver=v4l2:width=768:height=576:outfmt=yuy2:buffersize=16 -vf pp=lb

TOP:

Kod:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
3753 james     20   0 79404  28m  11m S   20  0.9   0:06.46 mencoder

Co do VLC... jak to sprawdzić? Obecnie używam GUI - ustawiam tam przyłapywanie z /dev/video0 też z pełną rozdzielczością. Transkodowanie standardowe (MPEG-TS). No i teraz jak użyję w zasadzie każdej kompresji innej niż MJPEG, obciążenie skacze do ~ 60% (znaczy się 100% na rdzeń 0, 10% an rdzeń 1) i gubi połowę klatek - oczywiście ustawienia kompresji standardowe bo nigdzie nie widzę jakiegoś konfiguratora do encodera.

Dodam jeszcze że na 100% jakość nie jest lepsza - tak realnie jest gorsza niż przy wykorzystaniu mencodera (nawet jeśli oba strumienie skompresuję za pomocą MPEG2 - mencoderowy wygląda (w tym samym bitrate) sporo lepiej).

Co do problemu z postu - połowicznie udało mi się przy wykorzystaniu VLC jako rozsyłacza. Robię tak:

Kod:

mkfifo /home/james/fifo.mpg

mencoder -fps 25 -ofps 25 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048 -oac mp3lame -of mpeg -o /home/james/fifo.mpg tv://R11 -tv driver=v4l2:width=768:height=576:outfmt=yuy2:buffersize=16

Teraz jeśli wybiorę ten potok (fifo.mpg) za pomocą VLC - i będę go rozsyłał (bez re kompresji oczywiście) to "prawie" działa... no właśnie - "prawie", niestety dźwięk i obraz się de synchronizują - gdyby nie ten defekt to w zasadzie reszta działała by bez zrzutów. Próbowałem używać innych kontenerów ale nie ma to większego wpływu na problem z synchronizacją - być może użycie jakiegoś transkodera działającego w czasie rzeczywistym by tutaj pomogło (podobno ffmpeg potrafi takie coś - ale na razie nie mam czasu sprawdzić).

EDIT:

UDAŁO SIĘ! No w 95% - wygląda na to że przy wykorzystaniu formatu zapisu z biblioteki lavf -lavfopts format=mpg i szybkim włączeniu rozsyłania (zanim dojdzie do pierwszego buffer overflow) nie występuje problem desynchronizacji :). Minusem tego rozwiązania jest brak możliwości skorzystania z MPEG4, MPEG2 działa bez zarzutu (szkoda że jakość jest niższa) - jak będę miał trochę czasu to przetestuję to dogłębniej.

Tutaj prośba do kogoś kto wie w jaki sposób wyciągnąć z VLC komendę której używa do stremowania obrazu (taką aby można jej użyć z CVLC - synchronizując uruchomienie rozsyłania ze startem nagrywania) - gdyby mógł się tą wiedzą podzielić tutaj będę wdzięczny.

Pozdrawiam.

Ostatnio edytowany przez Huk (2009-11-17 10:31:16)

Offline

 

#4  2009-11-17 15:13:00

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Czy przy pomocy mencodera da się streamować?

mozesz popatrzyc w moim skrypcie do rejestracji i transmisji wideo - http://www.opcode.eu.org/my_projects/rtv_recorder_and_transmiter/ ... tam jest skladnia command-line'owa dla streamingu vlc


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)