Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Multimédia => Téma založeno: Lukáš 03 Dubna 2009, 20:30:34

Název: Streaming server - více datových toků - jak?
Přispěvatel: Lukáš 03 Dubna 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
Název: Re: Streaming server - více datových toků - jak?
Přispěvatel: Martin Kiklhorn 06 Dubna 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.
Název: Re: Streaming server - více datových toků - jak?
Přispěvatel: Lukáš 09 Dubna 2009, 15:25:49
Tak děkuju.. :-) snad to nějak zvládnu...