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[/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

 

#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 ;-)

[ Generated in 0.011 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00014 SET CHARSET latin2
0.00011 SET NAMES latin2
0.00172 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.12.147.151' WHERE u.id=1
0.00100 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.12.147.151', 1733978168)
0.00028 SELECT * FROM punbb_online WHERE logged<1733977868
0.00110 SELECT topic_id FROM punbb_posts WHERE id=133461
0.00161 SELECT id FROM punbb_posts WHERE topic_id=15499 ORDER BY posted
0.00099 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.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00067 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.00116 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15499
Total query time: 0.00884 s