Linux'taki Google Chrome'da, / tmp değilse flv nerede?


37

Video tutmayı severim çünkü

  1. Onları tamponlamayı ve medya oynatıcımda arka arkaya oynatmayı seviyorum.
  2. Tüm arabelleğe alınmış videoyu kaybetmeden tarayıcımı durdurabilir / yeniden başlatabilmek istiyorum.
  3. Flash sık sık çöküyor ve gri kutuları veriyor .

Flash videosu olan (Youtube dahil) birçok site için flv dosyasını /tmpgenellikle adında bulabilirim FlashXX.... Ancak bazı siteler bu dosyanın görünmesini önlemeyi başarır , örneğin http://blip.tv/file/3627639 . Bu, hiçbir zaman diske biriktirilmemiş olabilir, ancak, saatlerce süren videonun tamamı RAM'im dikkat çekici şekilde etkilenmeden arabelleğe alınabildiğinden şaşırtıcı olabilir.

Firefox'ta flv'yi önbellek dizininde bulabilirim. Ama bunu Chrome'da nasıl yapacağımı merak ediyorum. ~ / .Cache / google-chrome / altına bakmayı denedim ama doğru görünen hiçbir şey bulamadım. Örneğin:

$ ls -lt .cache/google-chrome/Cache/ | head
total 261492
-rw------- 1 yang yang 16621568 2010-12-05 03:41 data_1
-rw------- 1 yang yang   966656 2010-12-05 03:40 data_0
-rw------- 1 yang yang 23076864 2010-12-05 03:40 data_2
-rw------- 1 yang yang   262512 2010-12-05 03:40 index
-rw------- 1 yang yang   108412 2010-12-05 03:35 f_005603
-rw------- 1 yang yang    62607 2010-12-05 03:32 f_005602
-rw------- 1 yang yang    54998 2010-12-05 03:32 f_005601
-rw------- 1 yang yang    31127 2010-12-05 03:32 f_005600
-rw------- 1 yang yang   799389 2010-12-05 03:32 f_0055ff

$ ls -1t ~/.cache/google-chrome/Cache/* | head | xargs file
/home/yang/.cache/google-chrome/Cache/data_1:   data
/home/yang/.cache/google-chrome/Cache/data_0:   data
/home/yang/.cache/google-chrome/Cache/data_2:   data
/home/yang/.cache/google-chrome/Cache/index:    data
/home/yang/.cache/google-chrome/Cache/f_005603: GIF image data, version 89a, 600 x 471
/home/yang/.cache/google-chrome/Cache/f_005602: PNG image, 600 x 746, 8-bit colormap, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005601: PNG image, 140 x 342, 8-bit/color RGB, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005600: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055ff: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055fe: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)

Flash işlemi için açık dosyalara bakmayı denedim, ancak aşağıdaki yanıtların bir kısmının olması gerektiğini söylediği silinmiş Flash dosyalarını görmedim:

$ ps x | grep npviewer
27148 ?        Rl     0:24 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin /usr/lib/flashplugin-installer/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/27135-2
27504 pts/2    S+     0:00 grep --color=auto npviewer

$ ls -l /proc/27148/fd/
total 0
lr-x------ 1 yang yang 64 2011-02-16 13:48 0 -> /dev/null
lrwx------ 1 yang yang 64 2011-02-16 13:48 1 -> /home/yang/.xsession-errors
l-wx------ 1 yang yang 64 2011-02-16 13:48 10 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/key3.db
lrwx------ 1 yang yang 64 2011-02-16 13:48 11 -> pipe:[5500575]
lrwx------ 1 yang yang 64 2011-02-16 13:48 12 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 13 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 14 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 15 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 16 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 17 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 18 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 19 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 2 -> /home/yang/.xsession-errors
lrwx------ 1 yang yang 64 2011-02-16 13:48 20 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 21 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 22 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 23 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 24 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 25 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 26 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 27 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 28 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 29 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 3 -> socket:[5496032]
lrwx------ 1 yang yang 64 2011-02-16 13:51 30 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 31 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 32 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 33 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 34 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 35 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:53 36 -> pipe:[5500575]
lr-x------ 1 yang yang 64 2011-02-16 13:53 37 -> pipe:[5500576]
l-wx------ 1 yang yang 64 2011-02-16 13:53 38 -> pipe:[5500576]
lrwx------ 1 yang yang 64 2011-02-16 13:53 39 -> socket:[5500580]
lrwx------ 1 yang yang 64 2011-02-16 13:48 4 -> socket:[5496131]
lr-x------ 1 yang yang 64 2011-02-16 13:48 5 -> pipe:[5496139]
l-wx------ 1 yang yang 64 2011-02-16 13:48 6 -> pipe:[5496139]
lr-x------ 1 yang yang 64 2011-02-16 13:48 7 -> socket:[5496140]
l-wx------ 1 yang yang 64 2011-02-16 13:48 8 -> socket:[5496141]
lr-x------ 1 yang yang 64 2011-02-16 13:48 9 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/cert8.db

straceBir dosya yazıyormuş gibi görünen herhangi bir şey için tüm krom işlemlerini gerçekleştirmeyi denedim :

strace -p (pgrep chrome|xargs -I_ echo -p _)

fakat write/ writev/ selectçağrılara bakmak beni sadece /proc/_/fd/boru / soket olduğunu gösteren birkaç FD'ye işaret etti (muhtemelen işlemlerin birbirleriyle konuşması için). Ayrıca npviewer.binsüreçte de aynı şeyi denedim .

Ayrıca kısa süre önce değiştirilmiş olan /proc/*/fd/( herhangi bir işlemde) işaret edilen tüm dosyaları da incelemeye çalıştım , ancak flv içeren bir şey bulamadım. Ayrıca son zamanlarda değiştirilen dosyalar için de aynı kontrolü denedim ~/.cache/google-chrome/.

Bir fark yaratırsa, Chrome'un dev kanal sürümünü kullanıyorum, (her zaman?) Kendi güvenli Flash uygulamasını kullandığına inanıyorum. Bu güncelleme sırasında Chrome 10.0.648.45 dev kullanıyorum. Http://www.adobe.com/software/flash/about/ adresine göre 10.2.152.27 kullanıyorum. Şimdi birkaç Ubuntu kutusunu denedim. Aynı sonuçları kullanarak şimdi birkaç Ubuntu kutusunu da denedim.

Başka biri bu konuda bıçaklanmak istiyor mu?


Sorun yaşadığınız bir sayfanın bağlantısını sağladıysanız yardımcı olabilir.
Sophie Alpert

@Ben: Oops, bunu yapmak istemiştim. Katma!
Yang

Yanıtlar:


31

Yeni Flash eklentilerinin dosyaları / tmp içinde sakladığını gözlemledim, ancak onları kaldırmak ve onları hayatta tutmak için açık tutmak için bir hile kullanıyorlar. Bu, hala sürücüde tutuldukları anlamına gelir (dosya tutucusu flash eklentisi tarafından açıldığı sürece), ancak dizin listesinde görünmezler (çünkü dosya silinmiştir).

Bu konuda bir süre yaş yazdım: neredeyse silinen dosyalardan flash videolar almak

Ancak hepsi Flash eklentisinin sürümüne bağlı. Filmleri / tmp içinde veya tarayıcının önbelleğinde de depolamak için kullanılır.


Çok ilginç blog gönderiniz bunu Firefox ile yapmayı açıklıyor, ancak bunu Chrome kullanarak nasıl yapacağımı merak ediyorum. Lsof ve / proc'a bakıyorum, ancak bağlantısız dosya belirtileri bulamadım. Örnek videoda başarılı oldunuz mu?
Yang

1
@Yang: Aynı şekilde krom ile de çalışıyor, en azından not defterimde - test edildi. Flash player'a web tarayıcısından daha fazla olduğunu düşünüyorum. Hangi Flash eklentisi sürümüne sahipsiniz?
liori

Göre adobe.com/software/flash/about ben Flaş (Krom 10.0.648.45 dev kullanarak) Chrome'da yerleşik olduğunu düşünüyorum 10.2.152.27, koşuyorum. Şimdi birkaç Ubuntu kutusunu denedim.
Yang,

2
Bir not olarak, tüm flash film oynatıcılarla çalışırken eskiden olduğu gibi görünmüyor. Bazı az bilinen sitelerle çalışıyor, ancak Youtube ile çalışmıyor. Youtube’un dosyayı dosya sisteminden uzak tutmanın bir yolunu bulduğunu tahmin edebiliyorum…
liori

1
hala benim için Chromium sürüm 33.0.1750.152-1 (Debian Jessie) ve flashplayer sürüm 11,2,202,346 ( adobe.com/software/flash/about'a göre ) ile çalışıyor
jopasserat 20:14

24

Kontrol / proc // fd / benim için hile yaptı:

$ ps x | grep npviewer
24657 ?        Sl    12:33 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin ...
$ cd /proc/24657/fd
$ ls -l
total 0
lr-x------ 1 omab omab 64 2011-02-11 02:13 0 -> /dev/null
lrwx------ 1 omab omab 64 2011-02-11 02:13 1 -> /home/omab/.xsession-errors
lr-x------ 1 omab omab 64 2011-02-11 02:13 10 -> /home/omab/.mozilla/firefox/og3emjry.default/key3.db
lrwx------ 1 omab omab 64 2011-02-11 02:13 11 -> /tmp/FlashXX0WG0J5 (deleted)
lr-x------ 1 omab omab 64 2011-02-11 02:13 12 -> pipe:[9004372]
...

"(Silindi)" olarak işaretlenen dosya 11 , hala / tmp / dizininde yaratılan dosyayı gösterir, bu yüzden tamamen silinmez:

$ file -L 11 
11: Macromedia Flash Video

bir yapıyor:

$ mplayer 11

FLV dosyasını çoğaltacaktır.


Yukarıdaki prosedürden uyarlanmış oldukça kullanışlı bir komut satırı. Dağıtımınız / kurulumunuz ve genellikle hangi işlemleri yaptığınız için küçük ayarlamalar gerektirebilir.

Sen yerini alabilir flashile npviewerdeğiştirin vlcile mplayer:

FLASHPID=\`pgrep -f flash\`; vlc /proc/$FLASHPID/fd/\`ls -l /proc/$FLASHPID/fd | grep tmp | cut -d" " -f9\`

Bu benim için işe yaramıyor - Cevabımı gördüklerimin ayrıntılarıyla güncelledim. Neden benim için işe yaramadığını biliyor musun? Şimdi birkaç makinede denedim.
Yang,

mplayer 11 -dumpstream -dumpfile outputname
Btw

8
Sadece kopyalayabilirsiniz cp 11 / ... / ...
omab

10

Flash akışları çoğu zaman basit bir dosyaya bir http isteği alır.

Adresindeki videonuz için http://blip.tv/file/3627639

Google Chrome'da ağ isteklerini inceleyebilirsiniz ( ctrl + shift + i) durumunuzda bitirmek için en uzun süreyi arayın:

Fosslc-..
/file/get

üzerine tıklayın ve 'URL İste' alanından URL'yi kopyalayıp yapıştırın

http://blip.tv/file/get/Fosslc-2...to823.flv?showplayer=20110401114509&source=1


Fantastik! Cevabınızı gerçekten benim için çalıştığı için kabul etmeye cazip geliyorum, ancak başka cevapların indirilen flv'nin yerini bulup bulmadığını görmek için biraz daha bekleyeceğim.
Yang

lütfen kabul etme, çünkü bu senin için bir hile. Flash'ın geçici video dosyalarını nerede sakladığını gerçekten bilmek istiyorum.
8'de

Heh, tamam. Ben de bilmek istiyorum. Benim önsezim, muhtemelen tarayıcıya özgü yığınlar olan data_ * dosyalarında bir yerlerde depolanıyor. Ancak, Chrome kod tabanına dalıyor olsam da, bunlardan geçebilecek bir araç bulamadım.
Yang

9

Yang,

Evet, ~ / .cache / google-chrome / Cache 'de (peki, Chromium yüklü, bu yüzden ~ / .cache / chromium / Cache' de buldum).

Videoyu izleyip zaman damgasına göre sıralarsanız:

$ ls -rt | tail
f_00003a
f_00003b
f_00003c
f_00003d
data_2
data_3
index
data_1
f_000040
data_0

Daha sonra file komutunu çalıştırırsanız hangilerinin Flash olduğunu göreceksiniz:

$ file $(ls -rt | tail)
f_00003a: Macromedia Flash data (compressed), version 9
f_00003b: Macromedia Flash data (compressed), version 9
f_00003c: Macromedia Flash data (compressed), version 10
f_00003d: PNG image data, 1024 x 768, 8-bit/color RGBA, non-interlaced
data_2:   data
data_3:   data
index:    data
data_1:   data
f_000040: Macromedia Flash Video
data_0:   data

Tamam, kontrol etmek için Google Chrome'u yükledim.

Google Chrome dizini Chromium'dan biraz farklı görünüyor.

Aynı teknikleri kullanarak (burada tarayıcının işlem kimliğini belirterek çıktı açıklık için bazı sütunlar kaldırıldı)

$ lsof -p 27922 | grep Cache
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/index
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_3
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_2
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_1
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_0
chrome  27922  71u    ~/.cache/google-chrome/Default/Cache/index
chrome  27922  72u    ~/.cache/google-chrome/Default/Cache/data_0
chrome  27922  73u    ~/.cache/google-chrome/Default/Cache/data_1
chrome  27922  74u    ~/.cache/google-chrome/Default/Cache/data_2
chrome  27922  75u    ~/.cache/google-chrome/Default/Cache/data_3
chrome  27922 111u    ~/.cache/google-chrome/Default/Cache/f_00001a

Bu ilginç, çünkü benim için işe yaramıyor. Cevabımı gördüklerimin bir parçasıyla güncelledim. Verdiğim örnek blip.tv URL adresi ile çalışıyor mu? Belki de farklı bir Chrome sürümünden kaynaklanıyordur - hangisini kullanıyorsunuz?
Yang

Evet, tam URL’nizi kullandım. Komutları çalıştırırken dosyayı mı oynuyordunuz? Önbelleğinizi temizlemeyi, dosyayı oynatmayı ve sonra komutları çalıştırmayı deneyin. Benim için işe yaradı ve dosyayı Mplayer'da çalabildiğim için benim için çalıştı!
jyap

Ne yazık ki, önbelleği temizlemek işe yaramadı. Evet, ben bu komutları çalıştırırken dosya çalıyordu. Cevabımı daha fazla bilgi ile güncellendi. Bazı cevaplayıcılar Flash işlemine bakmam gerektiğini söylüyor, diğerleri ise tarayıcı işlemlerinden birine bakmam gerektiğini söylüyor, ancak ikisini de denedim, hatta tüm işlemlere bakmayı bile. Neden benim için kırıldığına dair bir fikrin var mı? Şimdi birkaç makinede denedim.
Yang,

Google Chrome'un işlem kimliğini belirlemek ve lsof komutunu çalıştırmak için yukarıdaki cevabımı düzenledim. Bunu dene.
jyap

5

krom 11.0.666.0 ve flaş eklentisi 10.2.152’yi kullanarak

npviewer için grepping benim için herhangi bir flash işlemi üretmedi, ancak flash için grepping yapıyor:

$ ps x | grep flash
11005 ?        Rl     2:30 /usr/lib/chromium-browser/chromium-browser ... 

Yukarıda jyap ile aynı temelde önerildiği gibi

lsof | grep Flash

ve sonra yukarıdaki gibi devam edebilirsiniz ...


Bu benim için işe yaramıyor - Cevabımı gördüklerimin ayrıntılarıyla güncelledim. Neden benim için işe yaramadığını biliyor musun? Şimdi birkaç makinede denedim.
Yang,

3

Açık dosyaları listelemeyi deneyin.

lsof | grep Flash

Bu sizin için çalıştı mı? Benim için hiçbir şey ortaya çıkmıyor - tipik Flash * dosyalarının normal konumlarında görünmediği göz önüne alındığında, bunun da olacağını sanmıyorum.
Yang

3

Yeni oyuncuların bazıları, insanların bu hileleri kullanmalarını imkansız kılmaya çalışmak için bellekte ara belleğe alırlar. Bu durumda hiçbir şey elde edemezsin.


Bu yararlı bir bilgi olsa da, akılda tutarak, RAM'i nasıl arayacağımı bilmiyorum (sadece mümkün olabilir), “bir şey elde edemeyeceğinizi” kabul etmiyorum. Bir iradenin olduğu yerde, bir yol var.
user66001

3

Bu sorunu düzelttim. İşte adımlar

  1. Goto eklentileri hakkında: chrome / mozilla eklentileri
  2. Daha fazla bilgi için Detaylar'ı tıklayın. Flash Eklentisini devre dışı bırakın. Eklentinin konumu “/usr/lib/adobe-flashplugin/libflashplayer.so” olacaktır.
  3. Flash player'ın tar.gz sürümünü buradan indirin http://get.adobe.com/flashplayer/
  4. Bu dosyayı ayıklayın ve libflashplayer.so dosyasını / usr / lib / chromium-browser / plugins'e kopyalayın. Sonra bunu eklenti sayfasında etkinleştirin.
  5. Herhangi bir videoyu izlerseniz, /home//.cache/chromium/Default/Cache klasörünü indirecektir.

bir göz http://www.arulraj.net/2011/03/google-chrome-download-video.html


2

Linux'taki en son Chrome için:

  1. Chrome tarafından kullanılan Flash eklentisinin kapağını tanımlayın:

    ps ax | grep -i chrome | grep -i flash 
    

    şimdiki eklenti denir libgcflashplayer.

  2. Bu Flash eklentisi işlemi tarafından açılan Flash dosyasını tanımlayın:

    file /proc/Flash_Plugin_PID/fd/* | grep -i deleted
    

    veya

    lsof -p Flash_plugin_pid | grep -i deleted
    

    Silinen dosyaları arayın.

  3. Dosyayı kopyalama /proc/[pid]/fd/[fileno]içinrecovered_file.flv


2

Ubuntu 10.04'te 11.06 kromunu kullanıyorum. Flv dosyalarımı ~ / .cache / google-chrome / Default / Cache dizininde buldum. Bir deneyin

file * | grep Flash\ Video

2

Benden küçük bir ipucu. Bu Ubuntu 10.04'te çalışır.

#!/bin/bash
viewer=`ps x|grep npviewer|grep -v grep |awk '{print $1}'`
echo $viewer
cd /proc/${viewer}/fd
jef=(`ls -l|awk '{print $8 " " $10}'|grep Flash|awk '{print $1}'`)
echo $jef
jef1=${#jef}
ext=`date +'%d_%m_%k_%M_%S'`
i=0
while [ "$i" -lt "$jef1" ]
do 
cp ${jef[${i}]} /fun/${jef[${i}]}"(${ext})".flv
i=`expr $i + 1`
done

Şimdi bu betiği crontab ile programlayabilirsiniz. Yinelenen FLV dosyası olmaması için optimize edilebilir.


2

Kubuntu'da Firefox'u Kullanma:

export COUNT=0
export FILENAME=$1
export FILENAME=${FILENAME:=test}

PID=`ps ax | grep -i flashplugi[n] | awk '{print $1}'`
FLASH=`ls -l /proc/$PID/fd| grep Flash | awk '{print $8}'`

for N in $FLASH ; do
  COUNT=$(($COUNT+1))
  cp /proc/$PID/fd/$N ${FILENAME}_${COUNT}.flv
done

0

/ Proc içinde kurulan dosya tanımlayıcısına dayanarak bunu yapmanın başka bir yolum var (birkaç satırda modern bash kullanıyorum)

#!/bin/bash

process="flash"
filename="flash"

readlink -f /proc/$$/exe | fgrep -q bash || {
    echo >&2 "Hey dude ! You must call $0 with bash !"
    exit 2
}

. ~/.bashrc || . /etc/profile

count=1
for pid in $(pgrep -f $process); do
    fds=$(file /proc/$pid/fd/[0-9]* | fgrep Flash | cut -d: -f1)
    for fd in $fds; do
        cp -v $fd ${filename}_${count}.flv
        ((count++))
    done
done

# vim:ts=4:sw=4
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.