Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Multimédia => Téma založeno: PavelZapletal 11 Února 2011, 17:14:31
-
Ahoj,
už dlouho jsem věděl o beta verzi flashe (10.2), ale protože moje grafická karta není,nebyla a asi ani nikdy nebude podporována pro akcelerování videa, tak mi přišel update zbytečný. Včera ale flash 10.2 přešel do z beta na stable, takže se mi zaktualizoval... nějak jsem tomu nevěnoval pozornost, ale potom jsem si všiml, že se mi nic nenahrává do /tmp... začal jsem tedy bádat proč. Narazil jsem na pár stránek, kde jsem se dočetl, že se videa už do /tmp neukládají, ale že jsou v cache složce prohlížeče. Youtube a jiná flash videa se mi tam ukládaly, ale po 100% načtení zmizely. Větší soubory mizeli už dřív, než se stihly načíst na webu úplně (zkoušel jsem i rozšířit cache prohlížeče [firefox 3.6], ale nepomohlo to). Tohle chování mě začalo silně iritovat, tak jsem hledal dál.... a našel jsem, že videa jsou stále v /tmp, ale jako "smazaná". Ověřit si to můžeme tak, že si zjistíme PID flash-pluginu a podívám se do "/proc/FLASH_PID/fd/".
takže: zjistíme si PID flashe
~$ pidof plugin-containervýstup bude jen nějaká hodnota... ta hodnota je naše ID co jsme hledali.
13021což znamená, že náš flash má PID 13021
Jak už jsem psal, tak musím do "/proc/FLASH_PID/fd/", takže v našem případě:
~$ cd /proc/13021/fd/necháme si vypsat výpis, takže:
ls -luvidíme něco jako:
l-wx------ 1 pavel pavel 64 2011-02-11 16:07 16 -> /tmp/FlashXXBHtNFs (deleted)
lrwx------ 1 pavel pavel 64 2011-02-11 16:07 17 -> /tmp/FlashXXQWwz2u (deleted)jestli jste se do této složky nalistovali graficky, můžeme kliknou na soubor (v našem případě 16 a 17)->vlastnosti->a v kolonce cíl odkazu vidíme něco podobného.
Takže jsme zjistili že odkaz nám odkazuje na něco co už je "smazané", ale jak je možné, že přehrávání na stránce nám funguje, ba dokonce že se videa stále načítají dál a dál... ? Nevím :D, ale funguje... Když si zkusíte soubor přehrát ve svém vlastní prohlížeči z umístění /proc/..., tak hraje, takže soubor "někde" existuje. Zkusil jsem tedy:
cp /proc/13021/fd/16 ~/Plocha/a soubor(y) byly na světě :-).. už jenom stačí:
mv 16 nasevideo.flv nebo: mv 17 naseHDvideo.mp4a je to :-)
Zkoušel jsem i mv z /proc/..., ale přesunout se nedají ani s právy správce, ale to nevadí... soubor si zkopírujte a po zavření tabu/okna v prohlížeči se v /proc/... sám smaže :-)
Vím že by šel celý proces mnohonásobně zjednodušit,nebo rovnou napsat nějaký script, ale tohle byl první způsob jak jsem to řešil já.
jestli se někdo na script cítíte, můžete se do toho pustit ;)
PS: nevíte jak přinutit používat flash stále stejné PID? nejen že by to zjednodušilo celý postup, ale hlavně bych si chtěl udělat spouštěč na zabití flashe (často se freezne nebo něco podobného).
-
chtěl bych jenom dodat, že o addonech typu videodownloadhelper / flashgot vím, ale někdo k ním může mít z nějakého důvodu averzi, tak mu "můj" postup možná pomůže.
PS: teď jsem narazil na jednoduchý a zajímavý skriptík, který vám flash videa bude pouštět přes "externí přehrávač" (místo interního flash přehrávače na webu. to se může hodit v případě starších/slabších počítačů a HD videa. Mně se například 720p na youtube seká... a 1080p se ani nerozjede...)
http://www.webupd8.org/2011/02/play-youtube-videos-without-flash-from.html
-
PS: nevíte jak přinutit používat flash stále stejné PID_ID?
Znáš jméno procesu, tak si PID můžeš zjistit
pidof plugin-container
-
PS: nevíte jak přinutit používat flash stále stejné PID?
Znáš jméno procesu, tak si PID můžeš zjistit
pidof plugin-container
Děkuju, tohle jsem neznal =(... v prvním příspěvku to upravím...
,ale stále to není úplně to, co jsem hledal
Jde mi o to, aby třeba ten plugin-container běžel stále pod ID 13021.. prostě rezervovat 13021 speciálně pro plugin-container... je to nějak možné?
-
PS: nevíte jak přinutit používat flash stále stejné PID_ID?
Znáš jméno procesu, tak si PID můžeš zjistit
pidof plugin-container
Děkuju, tohle jsem neznal =(... v prvním příspěvku to upravím...
,ale stále to není úplně to, co jsem hledal
Jde mi o to, aby třeba ten plugin-container běžel stále pod ID 13021.. prostě rezervovat 13021 speciálně pro plugin-container... je to nějak možné?
Řekl bych, že to nepůjde, ale jaký máš k tomuto požadavku důvod?
-
kdyz se ti flash sekne, je asi nejjednodussi napsat
killall plugin-containerk tomu pidof nepotrebujes
fixni PID IMHO nejde
-
ten "skript" by mohl vypadat (dle navodu co jsi popsal) dejme tomu takto:
cd /proc/`pidof plugin-container`/fd/ && cp `ls -l|grep Flash|tr -s " "|cut -d " " -f8` ~/Plocha/EDIT: otestovano, funguje
-
pouzivam
#! /bin/sh
PID=`pgrep -u $USER plugin-containe`
TempFile=`mktemp` || exit 1
for pid in $PID; do
lsof -p $pid | grep /tmp/FlashXX |
while read foo foo foo fd foo; do
fd=`echo $fd | grep -Eo '[0-9]+'`
filename=/proc/$pid/fd/$fd
if [ -n $fd ] && [ -r $filename ]; then
#cp $filename $HOME/tmp
gnome-mplayer $filename &
echo found > $TempFile
fi
done
done
if [ ! -s $TempFile ]; then
cache_dir=$HOME/.mozilla/firefox/*.default/Cache
for filename in $cache_dir/*; do
if file $filename | grep -q "Flash Video"; then
gnome-mplayer $filename &
echo found > $TempFile
fi
done
fi
if [ ! -s $TempFile ]; then
zenity --info --text="Sorry, no flash videos found..."
fi
rm -f $TempFile
exit 0
spusti videa pres gnome-mplayer; pokud je videi vic, je treba mit nastaveny prehravac tak, aby se otevirala jen jedna instance okna (aby se videa ukladala do playlistu)
pro kopirovani by slo pouzit misto radku s gnome-mplayercp $filename $HOME/Plocha
-
Jde mi o to, aby třeba ten plugin-container běžel stále pod ID 13021.. prostě rezervovat 13021 speciálně pro plugin-container... je to nějak možné?
Řekl bych, že to nepůjde, ale jaký máš k tomuto požadavku důvod?
Hlavní důvod by byl jednoduchost přístupu k souborům uložených v "/proc/FLASH_PID/fd/"...
Jako vedlejší důvod jsem chtěl něco jako: "kill 13021" (kde by 13021 byl flash - na pořád). Později jsem si uvědomil, díky Bohoušovi, že kutím blbost... není totiž nic jednoduššího než: "killall plugin-container"
-
pokud si nainstalujete Gnash, tak si muzete navolit do ktereho adresare chcete videa ukladat