MPlayer a záznam (uložení) video / audio streamu RealOne Player (Helix) *.rm, *.ram a Windows Media Player *.asf, *.asx do lokálního souboru v Linuxu / Ubuntu
Streamované multimediální soubory obsahují zvukový a (nebo) obrazový záznam, který se přehrává během stahování. Stačí se podívat na on-line vysílání ČT24. Podobně pracuje i IPTV.
Problém nastává, když si člověk chce takový stream uložit pro pozdější přehrávání. Ani RealPlayer, komunitní Helix, či Windows Media Player takovou volbou (patrně záměrně) nedisponují.
Uložení streamu do souboru pomocí MPlayer
Velmi mocným multimediálním multifunkčním přehrávačem je MPlayer, který se po mnoha letech aktivního vývoje blíží verzi 1.0.
A právě pro tento účel jej lze velmi dobře použít, aniž by se musel používat sharewarový program typu WM Recorder.
Instalace MPlayer a MEncoder v Ubuntu
Pokud používáte Ubuntu 6.06 Dapper nebo 6.10 Edgy Eft, je potřeba nainstalovat MPlayer a pro převod videoformátů přidružený projekt MEncoder.
-
sudo apt-get install mplayer mencoder
Poté je potřeba zjistit, odkud se streamuje zamýšlený multimediální soubor.
Meta soubory *.ram a datové soubory *.rm
Meta soubory s extenzí *.ram jsou zejména určeny pro vkládání na webové stránky, neboť obsahují nejen informací o samotných multimediální souborech formátu RM (RealMedia Streaming File), ale i další, jako parametry pro přehrávač RealOne Player či URL pro RTSP protokol. Soubor je opravdu jednoduchý, v základním ASCII napsaný a může vypadat například takto:
-
rtsp://multimedia.chovancik.cz/clips/high/rm/fun.rm
-
http://www.chovancik.cz/clips/high/rm/fun.rm
-
file:///home/pchovancik/multimedia/clips/rm/fun.rm
Důležité pro náš záměr je najít odkaz na fyzický multimediální soubor v tomto souboru, což reprezentuje každý jeden řádek, například rtsp://multimedia.chovancik.cz/clips/high/rm/fun.rm.
Meta soubory *.asx a datové soubory *.asf
Streamované, pro internet cílené, multimediální soubory vyvinuté společností Microsoft mají formát ASF (Advanced Streaming Format). Pro ně se vytvářejí meta soubory s extenzí *.asx, které zjednodušeně řešeno vytvářejí propojení mezi webovou stránkou a tímto multimediálním(i) souborem(y), v podstatě je to tzv. playlist. Jeho formát je založen na XML a může vypadat třeba takto jednoduše, byť může obsahovat velké množství dalších informací:
-
<ASX VERSION="3">
-
<ENTRY>
-
<REF HREF="mms://multimedia.chovancik.cz/clips/high/asf/fun.asf">
-
<REF HREF="http://www.chovancik.cz/clips/high/asf/fun.asf">
-
<REF HREF="file:///home/pchovancik/multimedia/clips/asf/fun.asf">
-
</ENTRY>
-
</ASX>
I zde je pro nás důležité najít odkaz na fyzický soubor v tomto XML souboru, což je URL obsažená ve značce REF HREF, zde například mms://multimedia.chovancik.cz/clips/high/asf/fun.asf.
Stažení zamýšleného multimediálního streamu
Pro tento účel využijeme MPlayer a to následujícím příkazem:
-
mplayer -dumpfile soubor.rm -dumpstream rtsp://multimedia.chovancik.cz/clips/high/rm/fun.rm
Tento příkaz zajistí, aby se stream uložil do souboru s názvem soubor.rm. Jak jednoduhé.
Převod formátu RM nebo ASF na AVI (XviD)
I když je stream uložen na lokálním disku, tak v něm nefunguje seeking (libovolné přeskakování v čase), je dobré jej převést do nějakého pro tento účel vhodnější formátu s indexem. Fajn by mohl být třeba XVid v kontejneru AVI. V praxi lze i index k ASF souboru vytvořit add post, avšak XviD mi jako otevřený formát sedí lépe.
Zde přichází na řadu MEncoder:
-
mencoder -ovc xvid -xvidencopts bitrate=500:pass=2 -oac mp3lame -lameopts mode=1:q=3 soubor.rm -o soubor.avi
A náš záměr je naplněn.
Jenom připomínám, že pro soubory ASF je nutné mít nainstalované proprietární uzavření kodeky. Pro Ubuntu je více informací na českých wiki stránkách.
Toto téma lze nalést i na českém Wiki Ubuntu.
- Převod MPEG, AVI, … na Flash Video FLV pod Linuxem (ffmpeg, mencoder)
- FBReader jako čtečka elektronických knih (e-book) Palm DOC (*.pdb) na Linuxu (Ubuntu)
- Ubuntu (Linux) a převod sekvence jpeg snímků z IP(web) kamery na video sekvenci s kontejnerem AVI s kodekem MPEG4 (jpeg2avi, jpg2avi, mencoder)
- Linux a aktualizace události onMetaTag ve video formátu FLV (flvtool2)




(hlasováno 3x, průměr: 3,67 z max. 5)




10.Březen 2009 (Úterý) 17:42
Pomůže mi tohle všechno? RealPlayer mi stáhne ve formátu *.rm , ale je to trhané. Při přehrávání na stránce je to O.K. Bude výsledek výše vámi popsanými postupy, programy a návody lepší nebo bych marnil čas a poradí mi někdo - co s tím ?
6.Červen 2008 (Pátek) 19:49
Zdravím, též se zabývám teď touto problematikou a narazil jsem na několik problémů:
1. též mi nefunguje nahrávání až od určitého času
2. co je ale divné, že se nahrávání neukončí ani po nastaveném čase (používám kombinaci -ss a -endpos)
3. zkoušel jsem parametr -speed v bláhové naději, že by třeba proces uložení mohl probíhat rychleji. Bohužel neprobíhá, a stahování streamu v reálném čase je docela neefektivní :-/
Pokud by někdo s těmito problémy pohnul, byl bych opravdu vděčný
2.Září 2007 (Neděle) 12:21
Zdravím
díky za skvělý článek
Jen bych chtěl upozornit, že mimo MPlayer umí stream zaznamenávat i VLC media player, přitom záznam rovnou encoduje do vámi zvoleného formátu. Nastavení je jednoduché, VLC má přívětivé GUI.
15.Prosinec 2006 (Pátek) 20:26
Zdravím Vás Jiří,
u mne to bohužel MPlayer neumím (Ubuntu 6.10). Nevím, jak je to možné, ale ani když si stáhnu stream a pak použii -ss.
Takže sice nemám chybovou hlášku, ale vždy to hraje od začátku.
Ještě to prozkoumám.
15.Prosinec 2006 (Pátek) 19:51
[5] Děkuji za odpověď. K Vaší poznámce, že "si s tím současný MPlayer neporadí a začně steam přehrávat od začátku" bych chtěl říct, že můj MPlayer si s tím poradí - na webu ČT kliknu na "spustit přehrávání" a stream se začne bez problémů přehrávat od 00:41:58. Sice hodí nějako Error hlášku, ale hraje - viz screenshot
(bohužel neumím udělat screenshot i s videem)
Pořád mi to vrtá hlavou - když MPlayer umí stream přehrávat od 00:41:58, proč by ho neuměl taky ukládat?
Pro úplnost dodávám, že používám kubuntu 6.06.1 + firefox + mediaplayerconnectivity a pro formát realvideo mám nastaveno přehrávat v gmplayer.
jiří
15.Prosinec 2006 (Pátek) 09:38
[4] To stejné jsem řešil také, pokud nemá index, tak si s tím současný MPlayer neporadí a začně steam přehrávat od začátku.
Archiv ČT je v současné době dělen na cca 2 hodiny dlouhé sekvence záznamů a v metasouboru je poslán právě startovací milník. To funguje pod Windows Media Player, ale pod MPlayerem (plug-in) to začně vždy od začátku.
Tedy bohužel, zde prozatím pomoci neumím.
14.Prosinec 2006 (Čtvrtek) 19:38
Dobrý den. Rád bych se zeptal, jetli lze pomocí tohoto postupu uložit pouze střední část streamu. Našel jsem parametry −ss a −endpos, ale stále se mi nedaří. Celý kód:
mplayer -dumpfile soubor.rm -dumpstream rtsp://ct1.server.streaming.visual.cz/ct/high1/UdalostiP241106.rm -ss 00:41:58 −endpos 01:19:52Dokážete poradit? děkuji, jiří.
7.Prosinec 2006 (Čtvrtek) 17:23
Já používám plugin do Firefoxe mplayerplug-in, který umí ukládat přehrávané soubory do určeného adresáře. Stačí dát do jeho konfiguračního souboru tyto dva parametry:
dload-dir=/home/xpj/dwnldkeep-download=1
29.Listopad 2006 (Středa) 01:30
Ahoj,
jasně, díky za připomenutí. Také jej mám nainstalovaný, byť jej moc nevyžívám
27.Listopad 2006 (Pondělí) 21:59
Ahoj!
Dekuji za supr navod. Osobne jeste muzu doporucit pro najdeni adresy streamu na strance plugin do firefoxe MediaPlayerConnectivity.