Portál AbcLinuxu, 30. dubna 2025 09:18

ctstream

11.5.2011 01:02 | Přečteno: 3673× | poslední úprava: 11.5.2011 01:02

Zjistil jsem, jak se dostat k adrese RTMP proudu České televize a naimplementoval jsem extraktor URL v Perlu.

Jmenuje se ctstream používá se takto:

$ ctstream http://www.ct24.cz/vysilani/
1000: rtmp://wcdn34.nacevi.cz:80/CT24?id=MTIwODAzODIwOXw2MzQ0MDY3MTk2MTk4MDIzMjA=&type=wpl/CT24-MP4_404p.stream
500: rtmp://wcdn34.nacevi.cz:80/CT24?id=MTIwODAzODIwOXw2MzQ0MDY3MTk2MTk4MDIzMjA=&type=wpl/CT24-MP4_288p.stream

$ mplayer -cache 256 'rtmp://wcdn34.nacevi.cz:80/CT24?id=MTIwODAzODIwOXw2MzQ0MDY3MTk2MTk4MDIzMjA=&type=wpl/CT24-MP4_288p.stream'
MPlayer SVN-r33094-4.4.5 (C) 2000-2011 MPlayer Team

Přehrávám rtmp://wcdn34.nacevi.cz:80/CT24?id=MTIwODAzODIwOXw2MzQ0MDY3MTk2MTk4MDIzMjA=&type=wpl/CT24-MP4_288p.stream
Naplnění cache:  0.00% (0 bajtů)   Metadata:
  author                Ceska televize
  copyright             
  description           CT24 - live
  keywords              
  rating                
  title                 
  presetname            Custom
  creationdate          Wed May 11 00:03:03 2011
  videodevice           Osprey-700 HD Video Device 1
  framerate             25.00
  width                 512.00
  height                288.00
  videocodecid          avc1
  videodatarate         500.00
  avclevel              31.00
  avcprofile            66.00
  videokeyframe_frequency2.00
  audiodevice           Osprey-700 HD Audio Device 1
  audiosamplerate       48000.00
  audiochannels         2.00
  audioinputvolume      75.00
  audiocodecid          mp4a
  audiodatarate         96.00


Detekován formát souboru libavformat.
[flv @ 0x9bbc960] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0
VIDEO:  [H264]  512x288  0bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
Cache not responding!
Cache not responding!
==========================================================================
Otevírám video dekodér: [ffmpeg] FFmpeg's libavcodec codec family
Vybrán video kodek: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Pokouším se vynutit rodinu audiokodeku -dmo...
Pokouším se vynutit rodinu audiokodeku ...
Otevírám audio dekodér: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 0.0 kbit/0.00% (ratio: 0->192000)
Vybrán audio kodek: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Začínám přehrávat...
Poměr stran obrazu filmu je 1.78:1 - škáluji na správný poměr.
VO: [xv] 512x288 => 512x288 Planar YV12 
A:   0.7 V:   0.7 A-V: -0.011 ct: -0.028   0/  0 43% 48%  2.0% 2 0 59% 

Končím... (Konec)

Případně lze druhým argumentem vybrat konkrétní tok a skript vypíše jen jeho URL:

$ ctstream http://www.ct24.cz/vysilani/ 500
rtmp://wcdn34.nacevi.cz:80/CT24?id=MTIwODAzODg1Nnw2MzQ0MDY3MjE0MzAwOTY2MTA=&type=wpl/CT24-MP4_288p.stream

Funguje mi to s ČT24, u ČT4 jsou tomu předřazené reklamy, které ale přehrát nejdou. Stejný způsob by mohl fungovat i u jednotlivých pořadů, ale zatím jsem úspěch neměl (nenašel jsem stránku s patřičným iframem nebo mplayer si vylámal zuby (Received FLV packet before play()! Ignoring.)).

       

Hodnocení: 92 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

11.5.2011 01:23 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
Bingo kluku. Takové hloubavce jako ty mám rád.
11.5.2011 01:51 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: ctstream
Jinými slovy. Mě to (aktuálně) nefunguje
11.5.2011 07:24 dnes
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
BEGIN failed--compilation aborted at ctstream-1 line 16
11.5.2011 08:38 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: ctstream
To jistě není celá hláška. Co třeba něco o modulu JSON s patřičnou verzi?
11.5.2011 07:58 radun
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
Sakra dobrá práce. Už jsem nedoufal, že bych mohl ještě někdy poslouchat ct24 jinak než přes prohlížeč.
11.5.2011 08:02 radun
Rozbalit Rozbalit vše Re: ctstream
vyzkoušeno - funguje
pek avatar 11.5.2011 08:52 pek | skóre: 20
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
ctstream-1 http://www.ct24.cz/vysilani/ 500
Type of arg 1 to each must be hash (not array dereference) at /home/pek/bin/ctstream-1 line 54, near "$ref) "
Execution of /home/pek/bin/ctstream-1 aborted due to compilation errors.
JSON - 2.51
perl - 5.10.0
Slackware
11.5.2011 09:36 Tomáš Pelc | skóre: 22 | blog: multimedialni_pc_k_LCD_TV
Rozbalit Rozbalit vše Re: ctstream
Taky mám stejnou chybu :-(
11.5.2011 09:45 radun
Rozbalit Rozbalit vše Re: ctstream
... Perl5 v. 12
11.5.2011 10:01 radun
Rozbalit Rozbalit vše Re: ctstream
Nějak se mi to nepodařilo umístit ve vláknu tam kam jsem chtěl. Má to znamenat, že mám nainstalovanou v. 12 a stou mi to funguje. To jen, abych někoho nemát.
11.5.2011 09:43 radun
Rozbalit Rozbalit vše Re: ctstream
Ja mam json 2.27. Na archu je to balík 'perl-json 2.27-1'.
11.5.2011 09:43 goliash | skóre: 12 | Ostrava
Rozbalit Rozbalit vše Re: ctstream
Stejná chyba. Kubuntu 11.04. Pro úspěšné spuštění jsem musel doinstalovat libxml-perl, libjson-perl a libxml-xpath-perl.
janick avatar 11.5.2011 09:58 janick | Moutnice
Rozbalit Rozbalit vše Re: ctstream
Po doinstalování balíků výše uvedených mi to hází tuto chybu:
janick@acer:~$ /home/janick/ctstream.sh /http://www.ct24.cz/ivysilani/
Type of arg 1 to each must be hash (not array dereference) at /home/janick/ctstream.sh line 54, near "$ref) "
Execution of /home/janick/ctstream.sh aborted due to compilation errors.
Obyčejný člověk si myslí, že jeden kilobyte má 1000 bytů a programátor si myslí, že jeden kilometr má 1024 metrů.
11.5.2011 10:02 goliash | skóre: 12 | Ostrava
Rozbalit Rozbalit vše Re: ctstream
Jsem se asi nevyjádřil správně. Skript také "úspěšně" spustím (všechny moduly mám doinstalované, zkompiluje se správně), ale háže to stejnou chybu.
11.5.2011 10:35 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: ctstream

Já mám perl-5.12.3. Teď jsem to vyzkoušel na perl-5.10.1 a tam to opravdu nefunguje, protože funkce each umí pracovat nad polem až od verze 5.12:

You can now use the "keys", "values", "each" builtin functions on arrays (previously you could only use them on hashes). See perlfunc for details. This is actually a change introduced in perl 5.12.0, but it was missed from that release's perldelta.

Něco s tím udělám. (Ach jo, a mně se ten polymorfismus tak líbil :(

janick avatar 11.5.2011 09:14 janick | Moutnice
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
Mě při spuštění vzppíše toto: Can't locate JSON.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /home/janick/ctstream.sh line 16. BEGIN failed--compilation aborted at /home/janick/ctstream.sh line 16.
Obyčejný člověk si myslí, že jeden kilobyte má 1000 bytů a programátor si myslí, že jeden kilometr má 1024 metrů.
11.5.2011 10:02 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
V stable Gentoo to chce dev-perl/XML-XPath a dev-perl/JSON.
If you hold a Unix shell up to your ear, you can you hear the C.
originalmike avatar 11.5.2011 10:28 originalmike | skóre: 2
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
Hezke, dekuji za dobrou praci;)

Fedora 14 s baliky perl-XML-XPath a perl-JSON, funguje ok
Follow me if I advance. Kill me if I retreat. Avenge me if I die. Warmaster Solon
11.5.2011 15:13 dnes
Rozbalit Rozbalit vše Re: ctstream
Ve Fedoře kupodivu z placu funguje celá řada aplikací, které jinde bez dalšího babrání nejedou.
11.5.2011 12:54 chrono
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
Funguje mi to s ČT24, u ČT4 jsou tomu předřazené reklamy, které ale přehrát nejdou. Stejný způsob by mohl fungovat i u jednotlivých pořadů, ale zatím jsem úspěch neměl (nenašel jsem stránku s patřičným iframem nebo mplayer si vylámal zuby (Received FLV packet before play()! Ignoring.)).
Na stránkach s programom je ten iframe vkladaný s parametrom autoStart=false, takže ak priamo načítaš ten iframe, nie je tam to, čo tam očakávaš. Najjednoduchšie riešenie je z url vymazať to &autoStart=false a potom tam už bude to, čo tam chceš mať (v perl sa vôbec nevyznám, ale mne fungovalo niečo ako $iframe_url =~ s/&autoStart=(?:false|true)//;).

Potom je už problém len to, že sa tam, kvôli znaku / vo video.src zle odvodí playpath, takže to tam musíš pridať ty. Pre ffplay (a mplayer) by to celé vyzeralo asi takto:
ffmpeg "$stream_url playpath=$suffix"
(a bonus je, že si tak prehráš aj tú ich reklamu :) )
pavlix avatar 11.5.2011 20:41 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
Nepokládám to za něco vyloženě nového, ale i tak díky za zadokumentování na Abclinuxu.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Petr Tomášek avatar 11.5.2011 21:41 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: ctstream
Odpovědět | Sbalit | Link | Blokovat | Admin
1) díky, super věc

2) podporu pro ČT2 neplánuješ?
multicult.fm | monokultura je zlo | welcome refugees!

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.