Portál AbcLinuxu, 30. dubna 2025 09:07
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
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.
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 :(
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.
dev-perl/XML-XPath
a dev-perl/JSON
.
perl-XML-XPath
a perl-JSON
, funguje ok
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 :) )
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.