HTTP-ről streamelni képes, natív FLASH-videó lejátszó kerestetik

 ( hajbazer | 2010. április 16., péntek - 21:39 )

Sziasztok!

Szeretnék megszabadulni végre attól, hogy a bloatware Adobe Flash Playerrel kelljen lejátszanom a YouTube videókat, melyek ahogy frissül a Flash, annál inkább akadoznak és több CPU-t esznek, miközben más lejátszókkal (ha letöltöm a videót vagy kibányászom a cache-ből) tök simán megy 30% alatti CPU terheléssel (mindez egy Pentium 4-es gépen, Windows XP alatt). Az ötletem az volt, hogy megszerzem valahogy a YouTube videó cache linket, ahonnan maga a flash-es lejátszó is letöltögeti a videót, ez sikerült is.

Egy ilyen direkt link így néz ki: http://v1.lscache3.c.youtube.com/videoplayback?ip=80.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1271466000&key=yt1&signature=384E3E12E7680267F8394B26619A51B9292E8381.234084324C82B9632D4B63C3063FDC324C0BD3D7&factor=1.25&id=4d1dae35a8eba0e3

Nos, ezt nyilván beteszem egy lejátszóba, nade a kérdés, hogy melyikbe.

Media Player Classic Home Cinema
Teljesen oké, jól játssza, viszont nem lehet tekerni, mert http-ről töltött videó streamekben képtelen tekerni.

MPlayer és SMPlayer
MPlayer teljesen oké, jól játssza, viszont nem lehet normálisan tekerni, mert eltelik 15 másodperc is, míg odaugrik és miután odaugrott, elcsúszik a kép és a hang, nézhetetlen. SMPlayernél nem lehet tekerni, az alsó grafikus tekerőcsúszkát hiába rakom bárhová, visszaugrik az elejére és nem teker.

Zoom Player
Két verziót is kipróbáltam, az egyik egy régi 5.00, a másik a legfrissebb 7.x. Mindkettőnél az a probléma, hogy az Open -> URL -nél az URL mezőbe kevesebb karakter fér, mint a fenti direkt link, ígyhát nem tudom neki megmondani, hogy mit játsszon. Próbáltam parancssorból átadni neki a linket, az eredmény ugyanaz (se kép, se hang) - valószínűleg értelmetlen URL-t küld a YouTube-nak és ezért nincs semmi.

GOM Player
Ugyanaz a helyzet, mint az MPC-HC-nál: Teljesen oké, jól játssza, viszont nem lehet tekerni, mert http-ről töltött videó streamekben képtelen tekerni.

Winamp
A Winamp nagyon jól tud internetes streameket lejátszani, eddig még semmi gond nem volt vele (nem úgy, mint a Windows Media Player különféle verziójival, amik szeretnek néha lefagyni - főleg ha böngészőben futnak, mint plug-in), viszont valamiért nem működik. Kipróbáltam úgy is, hogy feltöltöm magát a wget-tel letöltött .flv-t egy tárhelyre, onnan érdekesmód működik. Lehet neki is túl hosszú az URL? Bár a sávjába kifér és rendben el is küldi a YouTube szervernek a kérést, sőt, az el is kezdi visszaküldeni az FLV-t, de aztána fejléc után kicsivel megszakad, videóablak egyáltalán nem ugrik fel, hang sincs. Arra is gondoltam, hogy a fájltípus megállapítására nem a fájl belső fejlécét használja, hanem a kiterjesztését (bár elég hülye megoldás lenne), így odabiggyesztettem egy &null=.flv -t az URL végére és így is kipróbáltam, de nem ment.

ngrep for windows (Winamp kérés)

T 192.168.0.3:1948 -> 74.125.108.16:80 [AP]
  GET /videoplayback?ip=80.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Ca
  lgorithm%2Cburst%2Cfactor&algorithm=throttle-factor&itag=34&ipbits=8&burst=
  40&sver=3&expire=1271466000&key=yt1&signature=384E3E12E7680267F8394B26619A5
  1B9292E8381.234084324C82B9632D4B63C3063FDC324C0BD3D7&factor=1.25&id=4d1dae3
  5a8eba0e3 HTTP/1.0..Host:v1.lscache3.c.youtube.com..Accept-Encodi
  ng: gzip..User-Agent: Winamp/5.572....
#
T 74.125.108.16:80 -> 192.168.0.3:1948 [A]
  ......
#
T 74.125.108.16:80 -> 192.168.0.3:1948 [AP]
  HTTP/1.1 200 OK..Last-Modified: Thu, 15 Apr 2010 12:09:28 GMT..Content-Type
  : video/x-flv..Content-Length: 2280923..Connection: close..Expires: Sat, 17
   Apr 2010 00:55:00 GMT..Cache-Control: private,max-age=20042..Date: Fri, 16
   Apr 2010 19:20:58 GMT..Server: gvs 1.0....
#
T 74.125.108.16:80 -> 192.168.0.3:1948 [AP]
  ...
  .@~........height.@v........videodatar
  .@^........totaldatarate.@../0.yp..framerate.@=.
  lv}....bytelength.AAf.......canseekontime....sourcedata.. B4A7D6C01
##

VLC Media Player
Ugyanaz, mint MPlayer, a videót rendben játssza, de nagyon nehézkes a tekerés és a kép/hang is elcsúszik - sőt, néha elblokkosodik (kockásodik) a kép, aztán véletlenszerűen kilép. A VLC alapból nem jutott eszembe, harlequin ajánlotta, de értetlenül állok a dolog előtt, hogy egy éppen - a nevéből adódóan is - hálózati streamelésre kifejlesztett program is ennyire gyenge a http-ről streamelt tartalmakban (legalábbis YouTube-nál).

Valaki? Ötlet?

Nincs valami natív lejátszó, ami beépül a böngészőbe flash helyére (hasonlóképpen, mint egy wmplayer/silverlight plug-in) és nem bloat, natív kódú dekóderrel lejátssza a videót? Félreértések elkerülése végett: nem a teljes flash-t akarom helyettesíteni, csak a videólejátszó részét.

Köszi

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

VLC-t probaltad?

Kipróbáltam, frissítve az indító hozzászólás.

Esetleg mplayer-nek a -forceidx vagy az -autosync 30 kapcsolót próbád meg.
Vagy mentsd le és nézd meg úgy:

mplayer -ao null -vo null -dumpstream -dumpfile   
mplayer -forceidx 

Igen, de itt pont az a lényeg, hogy ne kelljen az egészet letölteni. Lementeni lehet egy szimpla böngészővel (vagy wget-tel) és aztán az előbb felsorolt médialejátszók szinte mind lejátsszák gond nélkül (tekerni is lehet benne).

Apropó, kiprobáltam az említett kapcsolókat, sajnos az eredmény ugyanaz. Most próbáltam egy HD felbontású videóval, amint benyomom az előretekerést (jobbranyíl), megáll és elkezd ilyeneket flood-olni a konzolba:

FAAD: Failed to decode frame: Maximum number of scalefactor bands exceeded
FAAD: Failed to decode frame: Channel coupling not yet implemented
FAAD: Failed to decode frame: Scalefactor out of range
FAAD: Failed to decode frame: Invalid number of channels
FAAD: Failed to decode frame: Channel coupling not yet implemented
FAAD: Failed to decode frame: Gain control not yet implemented
FAAD: Failed to decode frame: Invalid number of channels
FAAD: Failed to decode frame: Channel coupling not yet implemented
FAAD: Failed to decode frame: First SBR frame is not the same as first AAC frame

FAAD: Failed to decode frame: Channel coupling not yet implemented
FAAD: Failed to decode frame: Maximum number of scalefactor bands exceeded
FAAD: Failed to decode frame: First SBR frame is not the same as first AAC frame

FAAD: Failed to decode frame: Maximum number of scalefactor bands exceeded
FAAD: Failed to decode frame: Channel coupling not yet implemented
FAAD: Failed to decode frame: Maximum number of scalefactor bands exceeded
FAAD: Failed to decode frame: First SBR frame is not the same as first AAC frame

FAAD: Failed to decode frame: Gain control not yet implemented

Ezután egyáltalán nem is indul újra a lejátszás, sőt, a billentyűparancsokra sem reagál, ki kell lőni. Verzió:

MPlayer GIT-7bc18b7-4.3.3-Kovensky-mt 20091009 (C) 2000-2009 MPlayer Team
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNowExt: 0 SSE: 1 SSE2: 1 SSSE3: 0

http://youtube.com/html5
Van még több videómegosztó oldalnak is hasonló kezdeményezése. 1-2 hete használom, fele annyi CPU-t eszik, mint a flash (Intel CoreDuo T2400, ATi Radeon Mobility X1600, 2 GB RAM).

Nos a helyzet az, hogy én Opera 9.64-et használok és eszem ágában nincs másra átállni, mivel mind a Google Chrome, mind a Firefox, mind az Opera újabb verziói (10.x) sokkal lassabban futnak, sajnos a legutóbbit, az Operát is elérte és megfertőzte az újabb = lassabb járvány, pedig eddig nem ez volt a jellemző. Mellesleg: Pentium 4 2.40 GHz (1G RAM).

wtf? chrome 5 eddig a leggyorsabb amit lattam, bar neha opera kenterbe veri. 9-es opera sehol sincs.

Na varjunk. Windows-on akarsz ilyesmit? Ketlem sokkal kevesebbet enne mivel meg GPU-t is aktivan hasznal. Legalabbis nalam rosszabbul jott ki a dolog mpc-hc -val mint flash player-el.

Csináltam egykis tesztet, ezt videót használtam:

Lejátszó            Verzió                                     Normál méret            Teljes képernyő

Adobe Flash Player  10.0.45.2                                    38-52%                    96-100%
MPlayer             GIT-7bc18b7-4.3.3-Kovensky-mt 20091009       39-47%                    39-47% (ugyanannyi)

CPU: Pentium 4 2.00GHz
Memória: 1GB
OS: Windows XP SP3
Videókártya: NVidia Geforce 7300

A teszt flashes részénél megvártam, míg letöltődik a videó, ugyanis drága Flash Playerünk egy egyszerű videóletöltés közben is már 8-10%-ot zabál, így több lenne, ha lejátszás közben is töltené. A YouTube-ot a Firefox 3.5.9 verziójával látogattam. Érdemes hozzátenni még, hogy a Firefox + Flash kombó 83134K (azaz több, mint 80 MB) memóriahasználattal volt képes lejátszani a videót, míg az mplayer-nek ehhez mindössze 13848K (kb. 13 MB) kellett.

Tehát: CPU-t kevesebbet eszik. GPU-t nem tudom mennyit eszik, egyelőre nincs olyan cuccom, amivel a GPU terhelését ki lehetne mutatni hasonlóképpen, mint a CPU-jét. Biztos vagyok benne, hogy egy középfelbontású (320x240-640x480) videó egy több, mint 10 éves technológia (Overlay videó) alapján történő képernyőre renderelése nem fog arányaiban több GPU-t enni, mint a Flash eszik CPU-t, és a post-ot is úgy indítottam, hogy a CPU terhelésen szeretnék spórolni, nem a GPU-n.

a szó amit kerestek,
FlashVideoReplacer.

Azért kár, hogy még mindig nem lehet benne tekerni, tehát nem adja ugyanazt a funkcionalitást. Érdekesnek tartom, hogy még mindig senki nem készített egy multi-platform, replacement-et a flash videózásra (mondjuk olyasmi jelleggel, mint amilyen médialejátszó az mplayer), amit széleskörben el lehet terjeszteni és nincs böngészőhöz kötve, hogy ki használhatja. Kezdem azt hinni, szándékosan eltűntették az ilyen kezdeményezéseket, hogy a Flash tovább pocsékolhassa a CPU-t világszerte és mikor kiadják a frissítést, ami még többet zabál, akkor megvetessék mindenkivel az új gépet a nagy semmiért.

A minitube-ot akartam javasolni, de aztán látom az oldalán, hogy nincs windowsos verzió. Akkor legalább Linux alatt nézd meg, hogy megfelel-e a feladatra. Hátha egy-két éven belül valaki megportolja.