37 votes

Dans Google Chrome sous Linux, où se trouve le flv si ce n'est pas dans /tmp ?

J'aime conserver les vidéos pour les raisons suivantes

  1. J'aime les mettre en mémoire tampon et les lire l'une après l'autre dans mon lecteur multimédia,
  2. Je veux pouvoir arrêter/redémarrer mon navigateur sans perdre toute la vidéo mise en mémoire tampon, et
  3. Flash se bloque fréquemment et me donne le message suivant boîtes grises .

Pour de nombreux sites contenant des vidéos Flash (y compris Youtube), je peux trouver le fichier flv à l'adresse suivante /tmp , généralement nommée FlashXX... . Mais certains sites parviennent à empêcher l'affichage de ce fichier, par exemple. http://blip.tv/file/3627639 . Il est possible que ce ne soit pas du tout envoyé sur le disque, mais cela serait surprenant puisque la vidéo d'une heure entière peut être mise en mémoire tampon sans que ma mémoire vive ne soit sensiblement affectée.

Dans Firefox, je peux trouver le flv dans son répertoire de cache. Mais je suis curieux de savoir comment faire dans Chrome. J'ai essayé de regarder sous ~/.cache/google-chrome/ mais je n'ai rien trouvé de correct. Par exemple :

$ 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)

J'ai essayé de regarder les fichiers ouverts pour le processus Flash, mais je n'ai pas vu de fichiers Flash supprimés, alors que plusieurs réponses ci-dessous indiquent qu'ils devraient exister :

$ 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

J'ai essayé strace Le logiciel de gestion de l'information de l'entreprise a été mis à l'essai dans tous les processus de chrome, à la recherche de tout ce qui pourrait ressembler à l'écriture d'un fichier :

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

mais en regardant le write / writev / select Les appels n'ont fait que m'orienter vers quelques FD qui /proc/_/fd/ ont montré qu'il s'agissait de tuyaux/sockets (vraisemblablement pour que les processus puissent se parler). J'ai également essayé la même chose sur le serveur npviewer.bin processus.

J'ai également essayé d'inspecter simplement tous les fichiers indiqués dans la rubrique /proc/*/fd/ ( tous ) qui ont été récemment modifiés, mais je n'ai rien trouvé qui ressemble à un flv. J'ai également essayé la même vérification sur les fichiers récemment modifiés sous ~/.cache/google-chrome/ .

Si cela fait une différence, j'utilise la version du canal de développement de Chrome, qui, je crois (toujours ?), utilise sa propre implémentation sécurisée de Flash. Au moment de cette mise à jour, j'utilise Chrome 10.0.648.45 dev. D'après http://www.adobe.com/software/flash/about/ J'utilise 10.2.152.27. J'ai essayé sur plusieurs boîtes Ubuntu. J'ai également essayé sur plusieurs boîtes Ubuntu, avec les mêmes résultats.

Quelqu'un d'autre veut-il tenter sa chance ?

31voto

liori Points 3178

J'ai observé que les plugins Flash récents stockent des fichiers dans /tmp, mais qu'ils utilisent une astuce consistant à les supprimer et à garder un filehandle ouvert pour les maintenir en vie. Cela signifie qu'ils sont toujours conservés sur le disque (tant que le filehandle est ouvert par le plugin Flash), mais qu'ils ne sont pas visibles dans la liste des répertoires (parce que le fichier a été supprimé).

J'ai écrit à ce sujet il y a quelque temps : récupération de vidéos flash à partir de fichiers presque effacés

Mais tout dépend de la version du plugin Flash. Il avait l'habitude de stocker les films dans /tmp ou dans le cache du navigateur également.

24voto

Emmanuel Points 21

La vérification de /proc//fd/ a fait l'affaire pour moi :

$ 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]
...

Le dossier 11 celui qui est marqué comme "(supprimé)", pointe toujours vers le fichier créé à l'origine sur /tmp/, il n'est donc pas complètement supprimé :

$ file -L 11 
11: Macromedia Flash Video

faire un :

$ mplayer 11

reproduira le fichier FLV.


Voici une ligne de commande très pratique adaptée de la procédure ci-dessus. Elle peut nécessiter des ajustements mineurs en fonction de votre distribution/installation et des processus que vous exécutez habituellement.

Vous pouvez remplacer flash con npviewer , remplacer vlc con mplayer :

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

10voto

GregB Points 1322

La plupart du temps, les flux Flash sont de simples fichiers obtenus par une requête http.

Pour votre vidéo à http://blip.tv/file/3627639

Dans Google Chrome, vous pouvez inspecter les requêtes réseau ( ctrl + shift + i ) rechercher le plus long à finir dans votre cas :

Fosslc-..
/file/get

cliquez dessus et copiez/collez l'URL du champ "Request URL" dans un nouvel onglet

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

9voto

jyap Points 249

Yang,

Oui, c'est dans ~/.cache/google-chrome/Cache (enfin, j'ai installé Chromium donc je l'ai trouvé dans ~/.cache/chromium/Cache).

Si vous regardez la vidéo et que vous la triez en fonction de l'heure :

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

Ensuite, si vous exécutez la commande file, vous verrez quels sont ceux qui sont Flash :

$ 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

J'ai installé Google Chrome pour vérifier.

Il semble que le répertoire de Google Chrome soit légèrement différent de celui de Chromium.

En utilisant les mêmes techniques (ici en spécifiant l'ID du processus du navigateur, la sortie a supprimé quelques colonnes pour plus de clarté) :

$ 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

5voto

dino Points 51

Utilisant chrome 11.0.666.0, et flash plug-in 10.2.152

La recherche de npviewer n'a pas produit de processus flash pour moi, mais la recherche de flash en produit :

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

En gros, c'est la même chose que ce que jyap a suggéré plus haut avec

lsof | grep Flash

et vous pouvez alors procéder comme indiqué ci-dessus...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X