1

Tråd: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

Den här tråden skapades av inlägg i tråden för rapporter av videor som inte kan hämtas, som passade bättre för sig själva. /Jesper

Hejsan! Ett intressant program H-VHS, likaså PiratePlayer, som har funkat bra på Svt Play.....ja, hitills alltså...
Båda programmen funkar inte så bra längre på Svt Play...får inte fram någon bitrate eller strömmar..som PiratePlayer kallar det.
Jag tar ju hem vissa intressanta program, både dokumentärer och Tecknade serier, har gått perfekt, tills för några dagar sen.
Försökte ta hem ett avsnitt utav Tinga Tinga sagor nu, men det går inte alls...det ser ut så här vid debugtexten :
http://media.svt.se/download/mcc/wp3/un … 6b261.wsrt
        videoReferences :
            0 :
                bitrate : 0
                playerType : flash
                url : http://svtplay6f-f.akamaihd.net/z/se/kr … nifest.f4m
            1 :
                bitrate : 0
                playerType : ios
                url : http://svtplay6f-f.akamaihd.net/i/se/kr … aster.m3u8
..o.s.v...

Alltså, bitrate finns inte längre på en massa olika program numera på Svt Play, tog hem så gott som allt jag ville under sommaren utan problem...
Programmen går ju att spela upp på SvtPlay,....men jag har inte hittat något program än, att spela in det uppspelande med godkänt resultat,....i princip så har inget program hittat någon "stream" att spela in....har testat både Stream Transport och Replay Media Catcher 4. Inget av dom, hittade något alls när jag spelade upp programmen på Svt Play...mycket konstigt....eller så är jag dålig på att använda sådana program...... :-)
Får hoppas på, att något program kan lyckas få ner intressanta program igen!

Dela

2

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

CinEmaS: Hej hej. Av de två strömmarna du har i ditt utklipp är flash-strömmen en HDS-ström. Jag skrev en stump om dem tidigare i dag, i den här tråden.

Den andra, dvs ios-strömmen, har jag sett att Jacques de Laval tänker låta PiratePlay hämta med ffmpeg. Han lade upp en länk till en betaversion av en ny pirateplay.se i dag, och den nya versionen hanterar visst sådana program på det sättet. (ios-strömmarna borde förresten vara apple-anpassade på något sätt, med tanke på namnet.)

Jag har visserligen haft planer på ett ffmpeg-plugin för version 0.4.x och senare, men om situationen med HDS-strömmar blir helt omöjlig innan dess blir jag kanske tvungen att skicka med ffmpeg i basinstallationen. Det vore tråkigt, eftersom ffmpeg är rätt stort...

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela

3

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

iOS Strömmarna är HTTP Live Streaming som QuickTime använder sig av. De länkar till en .m3u8 spellista som innehåller ytterliggare länkar till flera spellistor (en för varje bithastighet som skal kunna strömmas). Dessa i sin tur innehåller lika många segment av det programmet som skal strömmas. Varje segment (som slutar på .ts och inte innehåller någon header utan bara rådata) är lika långt. På detta sätt kan enheten om bandbredden ändras själv anpassa och hämta de segment från spellistan som önskas för tillfället. Om en iPhone flyttas från Wifi till 3G så märker avspelaren att det tar lång tid att hämta segment och byter från 720p spellistan till 360p spellistan, eftersom alla segment är like långa kan den växla som den vill. Användaren märker bara att kvaliteten ändras, men det blir aldrig några synkroniseringsproblem.

Testade idag med http://www.svtplay.se/video/258378/corn … -tre-damer

Det gav mig:

videoReferences : 
            0 : 
                playerType : flash
                bitrate : 0
                url : http://svtplay4s-f.akamaihd.net/z/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/manifest.f4m
            1 : 
                playerType : ios
                bitrate : 0
                url : http://svtplay4s-f.akamaihd.net/i/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/master.m3u8

m3u8 filen innehåller:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=940000,RESOLUTION=704x396
http://svtplay4s-f.akamaihd.net/i/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/index_0_av.m3u8?e=00000000&id=
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2392000,RESOLUTION=1280x720
http://svtplay4s-f.akamaihd.net/i/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/index_1_av.m3u8?e=00000000&id=
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=351000,RESOLUTION=480x270
http://svtplay4s-f.akamaihd.net/i/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/index_2_av.m3u8?e=00000000&id=
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1392000,RESOLUTION=1024x576
http://svtplay4s-f.akamaihd.net/i/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/index_3_av.m3u8?e=00000000&id=
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=94000,CODECS="mp4a.40.5"
http://svtplay4s-f.akamaihd.net/i/20120831/258378/MINNENAS_TELEVI-009A-mp4-,c,e,b,d,-v1-baeff0ff85e27f22.mp4.csmil/index_2_a.m3u8?e=00000000&id=

Dessa spellistor kan spelas i VLC och dumpas till disk om man väljer att se streamen samtidigt som man laddar hem. Varför det är så har jag inte klurat ut ännu.

Dela

4

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

beh: Väldigt intressant. Då ser det ut att vara samma upplägg som HDS-strömmarna använder.

Om .ts-filerna bara är rådata borde de ju kunna hämtas och "konkateneras". Misstänker att det inte blir jätteroligt att försöka spela upp den typen av filer, med tanke på att Apple ofta verkar försöka skapa ett parallellt universum åt sig själva, men om VLC klarar strömmarna så borde det gå att få ordning på dem utan att blanda in ffmpeg. Jag ska undersöka hur och om det kan gå att fixa redan till version 0.3.6.

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela

5

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

Jesper: I fallet Svtplay fungerar det utmäkt att ladda hem alla segment i från en av m3u8 filerna med curl och sedan konkatenera i hop dem med:

cat $(ls segment* | sort -n -t t -k2) > index.ts

Den slutgiltiga filen spelar i både VLC och QuickTime. Dock behöver den headers för att bli en mp4 fil och spela på min WD Live box. Men det tror jag inte är några problem med mp4box. Dock kompilerar inte mp4box på min dator just nu, så får testa det lite senare.

Dela

6 Senast ändrad av Jesper (2012-09-02 18:17:41)

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

beh: Provade något liknande (typ 'curl -s $PLAYLIST | grep -v '^#' | xargs curl >> temp.ts') men fick osynkat ljud. Förmodligen är det därför nya PiratePlay vill köra FFmpeg med "-bsf aac_adtstoasc".

Kände inte till MP4Box. Det håller dock inte riktigt måttet; på längre sikt är jag ju inriktad på fler plattformar än Windows, OSX och Linux, och MP4Box verkar inte vara särskilt porterat. FFmpeg är i så fall bättre, men byter syntax alldeles för ofta. MEncoder är tänkbar, men samtliga är overkill.

Vad som egentligen skulle stämma bäst överens med hur H.VHS fungerar i övrigt -- det hämtar data utan att röra den -- vore att dra ned spellistan och alla segment till en katalog, och skriva om m3u8-filen så den pekar dit i stället.

Jag lyfter förresten dina och CinEmaS inlägg till en egen tråd nu. Tänkte försöka göra videorapport-tråden mindre pratsam.

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela

7

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

Hej, Jesper!
Tack för ditt svar senast! Begriper lite mer nu om allt "strömmande", men lite för tekniskt för en "vanlig" filmälskare. :-)
Har fått gett upp nu, på att kunna få hem de avsnitten på Svt Play som använder det nyare systemet...
Lustigt ändå, att vissa utav de senaste avsnitten går att få hem på det "äldre" sättet...tog hem ikväll den tecknade serien Vampyrskolans senaste avsnitt, men samtidigt...går det inte att få hem några utav de tidigare avsnitten...synd och konstigt?
Hittade ju en webbsida, om en slags Adobe HDS Downloader...men det var tydligen något med script....fattar inte ett dugg utav sådant, lite för avancerat för en annan. :-)
Den sidan finns här, om det intresserar :
http://stream-recorder.com/forum/adobe- … e&
Men såg också, att någon annan hade hänvisat till det forumet tidigare.
Jag får väl vänta själv med att få hem vissa program, tills det kommer ett användarvänligt GUI istället för script. :-)

Dela

8

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

AdobeHDS.php är inget bra alternativ om man inte har (och kan hantera) servermjukvara på datorn. Det är rätt ovanligt i Windows-sammanhang. Men jag vill ändå åt de där strömmarna, så förr eller senare kommer det hända... fast snarare senare än förr.

Har pysslat en del med varianten som PiratePlay gör i dag, alltså att hämta iOS-strömmarna med FFmpeg i stället. Har bara stött på ett krux, och det är rätt lätt att lösa: FFmpeg bytte flaggsystem för bitstreamfilter med version 0.9, så att man fram till dess skulle köra "-absf aac_adtstoasc" på de här strömmarna för att få synkat ljud, medan "-bsf aac_adtstoasc" är vad som gäller därefter. (Visserligen ska "-absf" enligt changeloggen finnas kvar för bakåtkompatibilitet, men jag har inte kollat någon senare FFmpeg än.)

Det där påverkar i vilket fall inte Windows-användare.

På svenska innebär detta att H.VHS version 0.3.6 sannolikt:

  • Kommer kunna hämta samtliga program på SVT igen, i vissa fall dock endast Apples MPEG2-tjosan (dvs ios-strömmarna) i stället för MPEG4 som Flash Video.

  • Kommer tvinga upp DOS-fönster i ansiktet på folk när det är ios-strömmarna som ska hämtas. (Det blir mindre jobb då...)

  • Kommer ha en drygt 7MB tyngre installationsfil (för det är vad en komprimerad FFmpeg väger).

  • Eventuellt kommer kunna postprocessa videor en smula, t.ex. byta containerformat.

Den där sista funktionen vill jag dock inte klistra fast på H.VHS 0.3-koden. Där går nämligen gränsen för hur mycket jag vågar bygga ut ett i grunden feltänkt koncept. I stället lutar det åt ett separat program i stil med keffmpeg.bat, fast inte i bat-format då. Med andra ord tillkommer i så fall en separat och lätt korkad frontend till FFmpeg.

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela

9 Senast ändrad av beh (2012-09-04 21:09:47)

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

Jesper: På vilket program hos SVTplay har du problem med synken på ljudet? Jag har skriptat upp hämtning av 576p / 720p HLS strömmar. Det har fungerat mycket bra: Inga hämtningar har osynkat ljud. Alla spelar i Quicktime + VLC + WDTV Live med senaste firmware om de är döpta till .ts. Det är heller inga problem att lägga till en container med mkvmerge och då blir det standard MKV filer med h264 utan re-encoding.

Apples HLS strömmar är alltid i MPEG4 part-2 (vanlig MPEG4 video) eller part-10 (AVC / H.264), för det är dessa formaten som är hw-accelererade på Apple enheter. Men det är ju inget som hindrar att HLS systemet används för alla möjliga format, då det bara är en transportmekanism. Jag tror at du blivit förvirrad av .ts ändelsen, men den betyder bara "Transport Stream" som är en container som lämpar sig för strömmning över nät, etern eller från ett optiskt medium. Denna kan i sin tur innehålla olika typer av MPEG data och felkorrigering etc.

Jag tror inte att du behöver inkludera hela FFmpeg, vad är dina krav på portabilitet? Libavcodec kan kompileras med stöd för endast de delar du faktiskt har behov av. Verkar dumt att inkludera en stor blob som inte behövs i form av en FFmpeg binär.

Dela

10

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

Vad exakt är fel med mp4box? Att remuxa till ett vettigt format för uppspelning kanske inte är Huggpunkts uppgift egentligen, men det skulle ju göra det hela mycket smidigt.

Dela

11 Senast ändrad av Jesper (2012-09-05 01:50:17)

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

beh skrev:

Jesper: På vilket program hos SVTplay har du problem med synken på ljudet? Jag har skriptat upp hämtning av 576p / 720p HLS strömmar. Det har fungerat mycket bra: Inga hämtningar har osynkat ljud. Alla spelar i Quicktime + VLC + WDTV Live med senaste firmware om de är döpta till .ts. Det är heller inga problem att lägga till en container med mkvmerge och då blir det standard MKV filer med h264 utan re-encoding.

Ljudet är faktiskt osynkat på alla HLS-strömmar jag provat. Den här t.ex: http://www.svtplay.se/video/262950/del- … tema-doden. Har dock bara provat i FFplay och MPlayer.

Det som konsekvent blir rätt är att sköta själva tankningen med FFmpeg:

$ ffmpeg -i $M3U8_URL -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4

Dessutom får man container på köpet då.

beh skrev:

Apples HLS strömmar är alltid i MPEG4 part-2 (vanlig MPEG4 video) eller part-10 (AVC / H.264), för det är dessa formaten som är hw-accelererade på Apple enheter. Men det är ju inget som hindrar att HLS systemet används för alla möjliga format, då det bara är en transportmekanism. Jag tror at du blivit förvirrad av .ts ändelsen, men den betyder bara "Transport Stream" som är en container som lämpar sig för strömmning över nät, etern eller från ett optiskt medium. Denna kan i sin tur innehålla olika typer av MPEG data och felkorrigering etc.

Osäker på vad du tänker på där. Om jag förvirrat mig så beror det förmodligen på den här artikeln:

HLS stands for HTTP Live Streaming and is Apple’s proprietary streaming format based on MPEG2-TS. It’s popular since it provides the only way to deliver advanced streaming to iOS devices. It often mistakenly gets defined as HTML5 streaming, but is not part of HTML5.

Å andra sidan verkar Apple isf ha läst samma artikel wink

6. What is a .ts file?
A .ts file contains an MPEG-2 Transport Stream. This is a file format that encapsulates a series of encoded media samples—typically audio and video. The file format supports a variety of compression formats, including MP3 audio, AAC audio, H.264 video, and so on. Not all compression formats are currently supported in the Apple HTTP Live Streaming implementation, however. (For a list of currently supported formats, see “Media Encoder.”

MPEG-2 Transport Streams are containers, and should not be confused with MPEG-2 compression.

Utan att ha kollat närmare på det så verkar de ha proppat in codecs man normalt associerar med MPEG-4 i en MPEG-2-variation.

beh skrev:

Jag tror inte att du behöver inkludera hela FFmpeg, vad är dina krav på portabilitet? Libavcodec kan kompileras med stöd för endast de delar du faktiskt har behov av. Verkar dumt att inkludera en stor blob som inte behövs i form av en FFmpeg binär.

Det där är en rätt knivig fråga, men det korta svaret är att det är enklast att helt enkelt bundla FFmpeg i Windows och utnämna den till dependency i unix. Det längre (och av lathet teknopratiga) svaret följer, även om det kanske inte är så intressant.

För 0.3-versionerna av H.VHS är portabiliteten nästan mest på skoj, och vad som behövs är egentligen inte mer än att programmet går som det ska i Windows och på min egen maskin (dvs i OpenBSD-current). När 0.4 är färdig att ta över kommer hela 0.3-trädet ändå kastas på tippen. Just det där är också anledningen till att jag hellre bundlar färdiga binärer i nuläget.

Koden är dessutom ett Frankensteins spagettimonster. Alla tillbyggen gör ont. Någon direkt integrering av t.ex. libavcodec är inget jag tänker ge mig in i. Att integrera det i en separat binär är inte heller särskilt attraktivt, fast mest på grund av att miljön för Windows-bygget är rätt spartansk. Det som krävs är Qt SDK (inkl. MinGW) och OpenSSL. (Qt, inte QuickTime, alltså.)

Jag har strulat till Make-filen för librtmp så att dll-filen bygger direkt från PowerShell, för att slippa pula med MSYS eller liknande. Efter att den officiella rtmpdump.exe-binären försvann blev jag tvungen att mangla sönder även den Make-filen. (GitHub-repo här.)

Det finns även licens-skäl att göra så här. De officiella binärerna av rtmpdump och librtmp (som iofs inte finns längre) var statiskt länkade mot PolarSSL. Det innebar att den officiella librtmp-binären var GPL-sjuk och måste behandlas som smittsam. Samtidigt fungerar inte QtWebKit utan att OpenSSL finns tillhands t.ex. vid https-anslutningar, och OpenSSL/SSLeay-licenserna är inkompatibla med GPL. Därför valde jag att kasta ut GPL och rulla en egen librtmp (men är fortfarande osäker på om det egentligen var nödvändigt).

I vilket fall ska kodträdet för 0.3 pensioneras, och därför vill jag väldigt ogärna ändra i byggmiljön för att släppa in ny kod. Att bundla en statisk och officiell FFmpeg är enklare, tar minst tid och minskar risken att något blir fel. Dessutom öppnar det för en del möjligheter till omkomprimering och ompaketering av videor.

Parentetiskt kan även nämnas att H.VHS 0.4 inte har samma monolitiska hämtningsrutiner som 0.3, utan arbetar genom att flytta data från källor till mål genom noll eller fler filter. Källor, mål och filter hämtas in via QPlugins som är tänkta att distribueras via en repo på api.huggpunkt.org, vilket gör att licenskrånglet minskar en smula. Dessutom blir integrering med t.ex. libavcodec en helt annan femma. 0.4 ska gå att köra på alla desktop-plattformar som Qt fungerar på.

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela

12 Senast ändrad av Jesper (2012-09-05 01:52:40)

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

beh skrev:

Vad exakt är fel med mp4box? Att remuxa till ett vettigt format för uppspelning kanske inte är Huggpunkts uppgift egentligen, men det skulle ju göra det hela mycket smidigt.

Vet inte direkt om det är något fel på'n. Ett problem för mig personligen är att det inte finns porterat till OpenBSD, vilket även innebär att jag inte har någon direkt koll på programmet. En annan anledning är att FFmpeg gör en större bit av jobbet, och verkar vara mer inriktat på att hantera funktioner jag vet att många vill ha.

Så det är en smidighetsfråga med andra ord. Exempelvis är det lättbegripligt och lättberättat hur man gör pseudo-förlustfri hämtning och omkomprimering av de här HLS-strömmarna till jättekompatibla format:

$ ffmpeg -i $M3U8 -abfs aac_adtstoasc -target dvd -sameq film.mpg

Sedan använder jag väl egentligen MEncoder oftare än FFmpeg, men det hör förstås inte hit.

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela

13

Sv: HLS/"ios"-strömmar, t.ex. på SVT Play. (Skapad ur annan tråd.)

Se även tråden om situationen med SVT Play.

"It is a damn poor mind indeed which can't think of at least two ways to spell any word."

Webbplats

Dela