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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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
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
Offline
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:
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:
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
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
Offline