Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: Streaming server - více datových toků - jak?  (Přečteno 1540 krát)

Lukáš

  • Návštěvník
  • *
  • Příspěvků: 38
  • Karma: +1/-0
    • Zobrazit profil
    • http://www.gfhacker.wz.cz/
Streaming server - více datových toků - jak?
« kdy: 03 Duben 2009, 20:30:34 »
Ahoj,

potřeboval bych streamovat video v několika odlišných datových tocích, je něco co by jste mi mohli doporučit? VLC, aspoň já jsem to tak pochopil, má možnost streamovat jenom v jednou dat. toku..

Díky
Ubuntu 6.10 (No windows, no gates ), MSI K9N SLI-2F, AMD Athlon X2 4000+ 2MB Cache, 2x512MB RAM DDR II, ATI Radeon X600 Pro, 80GB WD800 HDD.

Martin Kiklhorn

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Závislák
  • ******
  • Příspěvků: 4803
  • Karma: +508/-26
  • グーグル!ご存知ですか?
    • Zobrazit profil
    • HEJ
Re: Streaming server - více datových toků - jak?
« Odpověď #1 kdy: 06 Duben 2009, 10:49:02 »
Proč by měl umět jenom v jednom? Prostě nakombinujte moduly tak jak potřebujete.
Takhle nastreamuju video multicastem rovnou ze serveru bez grafiky (--intf dummy), a i se SAP playlistem, ve dvou různých bitratech.
Kód: [Vybrat]
vlc -vvv mvi_2322.avi --intf dummy --sout '#duplicate{dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:std{access=udp,mux=ts,dst=239.255.12.41,sap,group=tst,name=test1}",dst="transcode{vcodec=mp4v,acodec=mpga,vb=400,ab=64}:std{access=udp,mux=ts,dst=239.255.12.42,sap,group=tst,name=test2}"}' --ttl 3
Trochu zkusím osvětlit, sledujte uvozovky, zkusím to rozepsat jakoby šablonu:
Základ je modul duplicate, protože chci původní zdroj rozmnožit
'#duplicate{dst="cokloliv",dst="cokolivjiného"}'
případně můžeme pokračovat dál, chci to třikrát...
'#duplicate{dst="cokloliv",dst="cokolivjiného",dst="cokolivdalšího"}'

za cokoliv* si dosaďte zase libovolnou konstrukci, já používám nyní že to chci transkódovat, poslat ven udp protokolem a posílat i položku SAP playlistu
transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:std{access=udp,mux=ts,dst=239.255.12.41,sap,group=tst,name=test1}

klidně místo poslání do :std{}
si to můžete poslat třeba na další :duplicate{dst="cokolivčtvrtého",dst="cokolivpátého"}
a již transkódovaný tok třeba poslat různými protokoly ven.
konkrétně třeba namísto druhého :dst v úplně prvním příkladu použiji
:duplicate{dst=std{access=file,dst=prekodovano.avi},dst=std{access=http,mux=ts,dst=:8080}}

celé to tedy bude vypadat
Kód: [Vybrat]
vlc -vvv mvi_2322.avi --intf dummy --sout '#duplicate{dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:std{access=udp,mux=ts,dst=239.255.12.41,sap,group=tst,name=test1}",dst="transcode{vcodec=mp4v,acodec=mpga,vb=400,ab=64}:duplicate{dst=std{access=file,dst=prekodovano.avi},dst=std{access=http,mux=ts,dst=127.0.0.1:88}}"}' --ttl 3
tím budu tedy duplikovat původní zdroj na dva proudy
1. proud překóduji s tokem pro video=800, audio=128 a pošlu přes UDP spolu s položkou SAP multicastem ven
2. proud překóduji s tokem pro video=400, audio=64 a tento již překódovaný proud rozdělím (zduplikuji) na "podproud A" a "podproud B"
"podproud A" uložím do souboru prekodovano.avi
"podproud B" pošlu protokolem http na port :88   

Doufám že to takto stačí.
Syntaxe je jakmile ji jednou pochopíte naprosto primitivní, jen si postupně doplňujete obsah základní konstrukce.
Jsou ve vašem dotazu OPRAVDU VŠECHNY vám dostupné informace o problému?
Linux user since 2007-10-11, Registered #456007
Virtual
| Distribuce
~/slozka znamená /home/"vase jmeno"/slozka
6521 69DE 0F34 FCBC FB1D  DE76 360E 52B2 F71A B8E8

Lukáš

  • Návštěvník
  • *
  • Příspěvků: 38
  • Karma: +1/-0
    • Zobrazit profil
    • http://www.gfhacker.wz.cz/
Re: Streaming server - více datových toků - jak?
« Odpověď #2 kdy: 09 Duben 2009, 15:25:49 »
Tak děkuju.. :-) snad to nějak zvládnu...
Ubuntu 6.10 (No windows, no gates ), MSI K9N SLI-2F, AMD Athlon X2 4000+ 2MB Cache, 2x512MB RAM DDR II, ATI Radeon X600 Pro, 80GB WD800 HDD.