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[/quote]
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
[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]
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
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00119 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.19.202' WHERE u.id=1 |
0.00064 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.19.202', 1733969475) |
0.00045 | SELECT * FROM punbb_online WHERE logged<1733969175 |
0.00080 | DELETE FROM punbb_online WHERE ident='3.144.119.192' |
0.00030 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=15499 AND t.moved_to IS NULL |
0.00025 | SELECT search_for, replace_with FROM punbb_censoring |
0.00069 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=15499 ORDER BY p.id LIMIT 0,25 |
0.00090 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15499 |
Total query time: 0.00535 s |