Skript för att spela upp svtplay-strömmar i mplayer
Kategoriregler
Här ligger de utförliga instruktionerna vi kan tänkas behöva. Leta här om du tex behöver installera nåt program eller sätta upp någon funktion. Starta inte trådar utan att ha ett svar.
Här ligger de utförliga instruktionerna vi kan tänkas behöva. Leta här om du tex behöver installera nåt program eller sätta upp någon funktion. Starta inte trådar utan att ha ett svar.
Skript för att spela upp svtplay-strömmar i mplayer
Jag har hackat ihop ett litet bash-skript som förenklar att spela upp rtmpe-strömmar från svtplay via rtmpdump och mplayer. Kanske kan det vara någon till nytta:
http://acephale.eu.org/kod/svtplay-rtmpdump.txt
OBS! rtmpdump finns inte i Lucids repositorier, så det är nödvändigt att lägga till en ny programkälla. Jag använde denna PPA: "ppa:hunter-kaller/ppa".
Url till strömmarna får man genom att gå in under inställningarna bredvid svt:s flashklipp.
http://acephale.eu.org/kod/svtplay-rtmpdump.txt
OBS! rtmpdump finns inte i Lucids repositorier, så det är nödvändigt att lägga till en ny programkälla. Jag använde denna PPA: "ppa:hunter-kaller/ppa".
Url till strömmarna får man genom att gå in under inställningarna bredvid svt:s flashklipp.
Senast redigerad av 1 mattsl, redigerad totalt 11 gånger.
Re: Skript för att spela upp svtplay-strömmar i mplayer
Ser ut att vara kanon! Jag brukar hämta filen först med rtmpdump och sedan spela upp den. Passar min slöa P4:a bättre. Typ;
rtmpdump -r $url -o $filename.mp4
$url är samma som ovan, alltså från länken "inställningar" lite till höger på tv-sidan.
Enda nackdelen är att t ex vlc och smplayer har lite svårt att spola i dessa filer.
Kan klistra in hela scriptet om nån vill ha det.
rtmpdump -r $url -o $filename.mp4
$url är samma som ovan, alltså från länken "inställningar" lite till höger på tv-sidan.
Enda nackdelen är att t ex vlc och smplayer har lite svårt att spola i dessa filer.
Kan klistra in hela scriptet om nån vill ha det.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Re: Skript för att spela upp svtplay-strömmar i mplayer
Gör det. Kul att kika på!
Re: Skript för att spela upp svtplay-strömmar i mplayer
Kod: Markera allt
#!/bin/bash
echo "Download från svtplay. Du måste ha rtmpe-adressen samt ange filnamn (.mp4 eller .flv)"
echo "Ange rtmpe-adressen:"
read url
echo "$url"
echo "Ange filnamnet:"
read filename
echo "$filename"
echo "Kör download"
rtmpdump -r $url -o $filename.mp4
echo "Done! Filen här:"
ls $filename.mp4
exit 0
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Re: Skript för att spela upp svtplay-strömmar i mplayer
Det går inte så bra för mig. För det första använder SVT Play protokollet rtmp: och inte rtmpe:, för det andra krashar det direkt (hinner bara se ett mplayer-fönster öppnas och stängas). Från terminalen:
EDIT: fel av mig, de använder både rtmp och rtmpe. Testade även rtmpe://fl11.c90909.cdn.qbrick.com/90909/_definst_/kluster/20100709/PG-1134212-010A-MERLIN2-01-mp4-d-v1.mp4 men fick samma resultat
några idéer?
Kod: Markera allt
$ ./svtplay-rtmpdump rtmpe://fl11.c91005.cdn.qbrick.com/91005/_definst_/kluster/20100710/PG-1119590-006A-SVENSKMENTALITE-02-mp4-d-v1.mp4
Hittade rtmpdump ...
RTMPDump v2.2d
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
MPlayer SVN-r31042-Ubuntu-RVM (C) 2000-2010 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing -.
Reading from stdin...
Cache fill: 0.00% (0 bytes) WARNING: HandShake: Type mismatch: client sent 6, server answered 8
Cache fill: 0.00% (0 bytes) INFO: Connected...
Cache fill: 0.00% (0 bytes) Starting download at: -0.001 kB
Cache fill: 0.00% (0 bytes) INFO: Metadata:
Cache fill: 0.00% (0 bytes) INFO: duration 2602.56
Cache fill: 0.00% (0 bytes) INFO: moovPosition 28.00
Cache fill: 0.00% (0 bytes) INFO: width 1024.00
Cache fill: 0.00% (0 bytes) INFO: height 576.00
INFO: videocodecid avc1
Cache fill: 0.00% (0 bytes) INFO: audiocodecid mp4a
Cache fill: 0.00% (0 bytes) INFO: avcprofile 77.00
Cache fill: 0.00% (0 bytes) INFO: avclevel 32.00
INFO: aacaot 2.00
Cache fill: 0.00% (0 bytes) INFO: videoframerate 25.00
Cache fill: 0.00% (0 bytes) INFO: audiosamplerate 48000.00
Cache fill: 0.00% (0 bytes) INFO: audiochannels 2.00
INFO: trackinfo:
Cache fill: 0.00% (0 bytes) INFO: length 65063000.00
Cache fill: 0.00% (0 bytes) INFO: timescale 25000.00
Cache fill: 0.00% (0 bytes) INFO: language eng
INFO: sampledescription:
Cache fill: 0.00% (0 bytes) INFO: sampletype avc1
Cache fill: 0.00% (0 bytes) INFO: length 124922880.00
Cache fill: 0.00% (0 bytes) INFO: timescale 48000.00
INFO: language eng
Cache fill: 0.00% (0 bytes) INFO: sampledescription:
INFO: sampletype mp4a
Cache fill: 0.78% (65536 bytes)
Caught signal: 13, cleaning up, just a second...
ERROR: WriteN, RTMP send error 32 (42 bytes)
ERROR: RTMP_ReadPacket, failed to read RTMP packet body. len: 65774
72.249 kB / 0.24 sec (0.0%)
Download may be incomplete (downloaded about 0.00%), try resuming
Cache fill: 0.88% (73728 bytes)
libavformat file format detected.
[flv @ 0xaf487e0]Estimating duration from bitrate, this may be inaccurate
[lavf] Video stream found, -vid 0
[lavf] Audio stream found, -aid 1
VIDEO: [H264] 1024x576 0bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s)
Clip info:
duration: 2603
moovPosition: 28
width: 1024
height: 576
videocodecid: avc1
audiocodecid: mp4a
avcprofile: 77
avclevel: 32
aacaot: 2
videoframerate: 25
audiosamplerate: 48000
audiochannels: 2
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
FAAD: compressed input bitrate missing, assuming 128kbit/s!
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [pulse] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1024x576 => 1024x576 Planar YV12
A: 0.2 V: 0.2 A-V: -0.012 ct: -0.008 0/ 0 ??% ??% ??,?% 0 0 0%
Exiting... (End of file)

Re: Skript för att spela upp svtplay-strömmar i mplayer
rtmp/rtmpe bör inte spela någon roll -- låt bara protokollet stå kvar orört, så som det är angivet i länken från svt ("rtmp://" i det här fallet).
Fredrik Lindström's program funkar finfint för mig (förutom vissa problem med synkning av ljudspåret). Det ser ut som att du har missat att sätta citat-tecken kring url -- det leder till problem när bash ska tolka kommandoraden.
Gör alltså så här...
...så ska det förhoppningvis funka bättre!
PS. Om du får problem med synkningen som jag så kan du fixa det manuellt genom att justera med +/- på tangentbordet (-100 ms funkade för mig.).
Fredrik Lindström's program funkar finfint för mig (förutom vissa problem med synkning av ljudspåret). Det ser ut som att du har missat att sätta citat-tecken kring url -- det leder till problem när bash ska tolka kommandoraden.
Gör alltså så här...
Kod: Markera allt
./svtplay-rtmpdump "rtmp://fl11.c91005.cdn.qbrick.com/91005/_definst_/kluster/20100710/PG-1119590-006A-SVENSKMENTALITE-02-mp4-d-v1.mp4"
PS. Om du får problem med synkningen som jag så kan du fixa det manuellt genom att justera med +/- på tangentbordet (-100 ms funkade för mig.).
Re: Skript för att spela upp svtplay-strömmar i mplayer
Nä... Jag har nog fel version av något program antar jag.
vilka har du?
Kod: Markera allt
$ mplayer
MPlayer SVN-r31042-Ubuntu-RVM (C) 2000-2010 MPlayer Team
$ rtmpdump
RTMPDump v2.2d
Re: Skript för att spela upp svtplay-strömmar i mplayer
Jag har samma version av rtmpdump (2.2d) -- men mplayer skiljer sig från din:
Lite märkligt, för så vitt jag vet har jag bara standardversionen som finns i Lucids repositorier. Kanske du har en annan utgåva av Ubuntu?
Kod: Markera allt
$ mplayer
MPlayer SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
Re: Skript för att spela upp svtplay-strömmar i mplayer
Hade lite tråkigt på fikarasten... att manuellt behöva leta upp rätt url verkar jobbigt.
Kod: Markera allt
#!/usr/bin/perl
# svtplay.pl
# dependencies: rtmpdump,mplayer
use strict;
use LWP::Simple;
my %shows = (
vtd => {
name => 'Vem tror du att du är?',
url => 'http://svtplay.se/t/106474/vem_tror_du_att_du_ar_',
},
ibis => {
name => 'Ingen bor i skogen',
url => 'http://svtplay.se/t/132050/ingen_bor_i_skogen',
},
hsr => {
name => 'Hemliga svenska rum',
url => 'http://svtplay.se/t/102776/hemliga_svenska_rum',
},
merlin => {
name => 'Merlin',
url => 'http://svtplay.se/t/104065/merlin',
},
vml => {
name => 'Världens modernaste land',
url => 'http://svtplay.se/t/133773/varldens_modernaste_land',
},
hh => {
name => 'Hemma hos',
url => 'http://svtplay.se/t/134698/premiar__hemma_hos_caroline_af_ugglas',
},
et => {
name => 'Engelska trädgårdar',
url => 'http://svtplay.se/t/104829/engelska_tradgardar',
},
ub => {
name => 'Undercover boss',
url => 'http://svtplay.se/t/134508/seriestart__undercover_boss',
},
fotc => {
name => 'Flight of the Conchords',
url => 'http://svtplay.se/t/103576/flight_of_the_conchords',
},
philo => {
name => 'Philofix',
url => 'http://svtplay.se/t/102709/philofix',
},
aps => {
name => 'Allsång på skansen',
url => 'http://svtplay.se/t/102897/allsang_pa_skansen',
},
fangad => {
name => 'Fångad',
url => 'http://svtplay.se/t/134122/fangad',
},
it => {
name => 'In treatment',
url => 'http://svtplay.se/t/110255/in_treatment',
},
rapport => {
name => 'Rapport',
url => 'http://svtplay.se/t/103261/rapport',
},
);
my $show = shift;
if(!$show or !defined($shows{$show})) {
usage()
}
my $mp = 'mplayer -cache 400';
my $url = $shows{$show}{url};
my @content = split(/\n/,get("$url")) or die();
my $rtmp = undef;
for(@content) {
if($_ =~ s;.+(rtmp.+\.mp4).+;;) {
$rtmp = "'$1'";
last;
}
}
sub usage {
print << "USAGE";
USAGE: $0 show
SHOWS:
USAGE
for my $shn(keys(%shows)) {
printf("\033[1m\033[33m%10s\033[0m : %s\n", $shn, $shows{$shn}{name});
}
exit(0);
}
system("rtmpdump -r $rtmp|$mp -");
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Skript för att spela upp svtplay-strömmar i mplayer
snyggt! skriptet genererar dock länkar till den lågupplösta versionerna, men det borde ju gå att fixa...
Re: Skript för att spela upp svtplay-strömmar i mplayer
Aha. Var det därför det såg ut som skit... Hur/var hittar man högsta kvalitet?
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Skript för att spela upp svtplay-strömmar i mplayer
Det som skiljer strömmarnas url åt är bokstaven mellan "mp4-" och "-v1.mp4". Kan vara antingen d,c,b eller a (tror jag); "d"=högst, "a"=lägst. Jfr nedan:
(Utklippt härifrån: http://svtplay.se/v/2053192/bergmans_hushallerska)
Kod: Markera allt
rtmp://fl11.c91005.cdn.qbrick.com/91005/_definst_/kluster/20100710/PG-1131271-001A-BERGMANSHUSHALL-01-mp4-d-v1.mp4
rtmp://fl11.c91005.cdn.qbrick.com/91005/_definst_/kluster/20100710/PG-1131271-001A-BERGMANSHUSHALL-01-mp4-c-v1.mp4
rtmp://fl11.c91005.cdn.qbrick.com/91005/_definst_/kluster/20100710/PG-1131271-001A-BERGMANSHUSHALL-01-mp4-b-v1.mp4
Re: Skript för att spela upp svtplay-strömmar i mplayer
Det blev lite bättre, tack. Jag tror att allting sänds i minst 'c-klass'; fungerar detta bättre?
Nästa steg är väl kanske att få någon uppdaterad lista över vilka program SVT sänder som är återkommande; tips?
Kod: Markera allt
#!/usr/bin/perl
# svtplay.pl
# dependencies: rtmpdump,mplayer
use strict;
use LWP::Simple;
my %shows = (
vtd => {
name => 'Vem tror du att du är?',
url => 'http://svtplay.se/t/106474/vem_tror_du_att_du_ar_',
},
ibis => {
name => 'Ingen bor i skogen',
url => 'http://svtplay.se/t/132050/ingen_bor_i_skogen',
},
hsr => {
name => 'Hemliga svenska rum',
url => 'http://svtplay.se/t/102776/hemliga_svenska_rum',
},
merlin => {
name => 'Merlin',
url => 'http://svtplay.se/t/104065/merlin',
},
vml => {
name => 'Världens modernaste land',
url => 'http://svtplay.se/t/133773/varldens_modernaste_land',
},
hh => {
name => 'Hemma hos',
url => 'http://svtplay.se/t/134698/premiar__hemma_hos_caroline_af_ugglas',
},
et => {
name => 'Engelska trädgårdar',
url => 'http://svtplay.se/t/104829/engelska_tradgardar',
},
ub => {
name => 'Undercover boss',
url => 'http://svtplay.se/t/134508/seriestart__undercover_boss',
},
fotc => {
name => 'Flight of the Conchords',
url => 'http://svtplay.se/t/103576/flight_of_the_conchords',
},
philo => {
name => 'Philofix',
url => 'http://svtplay.se/t/102709/philofix',
},
aps => {
name => 'Allsång på skansen',
url => 'http://svtplay.se/t/102897/allsang_pa_skansen',
},
fangad => {
name => 'Fångad',
url => 'http://svtplay.se/t/134122/fangad',
},
it => {
name => 'In treatment',
url => 'http://svtplay.se/t/110255/in_treatment',
},
rapport => {
name => 'Rapport',
url => 'http://svtplay.se/t/103261/rapport',
},
);
my $show = shift;
if(!$show or !defined($shows{$show})) {
usage()
}
my $mp = 'mplayer -cache 400';
my $url = $shows{$show}{url};
my @content = split(/\n/,get("$url")) or die();
my $rtmp = undef;
for(@content) {
if($_ =~ s;.+(rtmp.+mp4-d-v1\.mp4).+;;) {
$rtmp = "'$1'";
last;
}
elsif($_ =~ s;.+(rtmp.+mp4-c-v1\.mp4).+;;) {
$rtmp = "'$1'";
last;
}
}
sub usage {
print << "USAGE";
USAGE: $0 show
\033[1mSHOWS\033[0m:
USAGE
for my $shn(keys(%shows)) {
printf("\033[1m\033[33m%7s\033[0m %s\n", $shn, $shows{$shn}{name});
}
exit(0);
}
system("rtmpdump -r $rtmp|$mp -");
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Skript för att spela upp svtplay-strömmar i mplayer
Jag har en nyare version av mplayer från något ppa, tror att det ärmattsl skrev:Jag har samma version av rtmpdump (2.2d) -- men mplayer skiljer sig från din:Lite märkligt, för så vitt jag vet har jag bara standardversionen som finns i Lucids repositorier. Kanske du har en annan utgåva av Ubuntu?Kod: Markera allt
$ mplayer MPlayer SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
Kod: Markera allt
ppa:rvm/mplayer
Re: Skript för att spela upp svtplay-strömmar i mplayer
Funkar strålande.dmz skrev:Det blev lite bättre, tack. Jag tror att allting sänds i minst 'c-klass'; fungerar detta bättre?
Det finns rss-flöden, kanske skulle det gå att använda dem på nåt sätt? http://svt.se/hjalp/play/rss-podddmz skrev:Nästa steg är väl kanske att få någon uppdaterad lista över vilka program SVT sänder som är återkommande; tips?
Re: Skript för att spela upp svtplay-strömmar i mplayer
Jag kanske är usel på att söka, men de enda rss-flöden jag kan hitta är http://svt.se/svt/jsp/Crosslink.jsp?d=104149&a=1395781 , och inte heller de länkar till programmet i fråga. :/
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Skript för att spela upp svtplay-strömmar i mplayer
Jag tänkte på det här:
...men där finns bara länk till programmets "sajt" och alltså bara den första delen av rtmp-url.
Kod: Markera allt
http://feeds.svtplay.se/v1/video/list/96238?expression=full&mode=plain
Re: Skript för att spela upp svtplay-strömmar i mplayer
Inga problem, det blir fint.mattsl skrev:Jag tänkte på det här:...men där finns bara länk till programmets "sajt" och alltså bara den första delen av rtmp-url.Kod: Markera allt
http://feeds.svtplay.se/v1/video/list/96238?expression=full&mode=plain
Nu har vi en uppdaterad och aktuell lista...

Kod: Markera allt
#!/usr/bin/perl
# svtplay.pl
# dependencies: rtmpdump,mplayer
use strict;
use LWP::Simple;
use XML::Simple;
use Data::Dumper;
my $baserss =
'http://feeds.svtplay.se/v1/video/list/96238?expression=full&mode=plain';
my $foo = XMLin(get($baserss));
my %shows = ();
my $i = 0;
for(keys(%{$foo})) {
for($foo->{channel}{item}) {
for(@{$_}) {
#print Dumper $_;
$shows{$i++} = {
name => $_->{title},
uri => $_->{link},
pub => $_->{pubDate},
};
}
}
}
my $show = shift;
if(!$show || !defined($shows{$show})) {
usage()
}
my $mp = 'mplayer -cache 400';
my $url = $shows{$show}->{uri};
my @content = split(/\n/,get("$url")) or die();
my $rtmp = undef;
for(@content) {
if($_ =~ s;.+(rtmp.+mp4-d-v1\.mp4).+;;) {
$rtmp = "'$1'";
last;
}
elsif($_ =~ s;.+(rtmp.+mp4-c-v1\.mp4).+;;) {
$rtmp = "'$1'";
last;
}
}
print ">>>> $rtmp <<<<\n\n";
sub usage {
print << "USAGE";
USAGE: $0 show
\033[1mSHOWS\033[0m:
USAGE
for my $i(sort{$a <=> $b}(keys(%shows))) {
printf("[\033[1m%02d\033[0m] \033[30;1m%s\033[0m \033[33m%s\033[0m \n",$i,
$shows{$i}{pub}, $shows{$i}{name});
}
exit(0);
}
system("rtmpdump -r $rtmp|$mp -");
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Skript för att spela upp svtplay-strömmar i mplayer
Snyggt! Enormt imponerande. Ett perl-beroende kom dock till: "XML::Simple". Enkelt löst med detta kommando:
Vid ett senare tillfälle ska jag posta instruktioner för hur man associerar rtmp-länkar så att strömmen öppnas direkt från webbläsaren via det ursprungliga bash-skriptet. För den som föredrar att läsaren före terminalen.
Kod: Markera allt
sudo aptitude install libxml-simple-perl
Re: Skript för att spela upp svtplay-strömmar i mplayer
SVT kanske inte är så tokigt ändå - Pingu!
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?